Bab 13
Penanganan Keyboard
13.1. Mengenal Event Keyboard
Event keyboard merupakan salah satu elemen utama dari interaksi antara user dengan program yang kita
buat. Event keyboard terjadi saat user menekan (pressed) ataupun melepas (released) tombol pada
keyboard.
Menangani event keyboard dapat dilakukan pada 2 (dua) level, yaitu :
1. Pada level kontrol (low-level) – menangani event keyboard yang terjadi pada sebuah kontrol,
misalnya ketika user mengetik pada sebuah TextBox. Tidak semua kontrol mempunyai event
keyboard. Hanya kontrol yang bisa mendapatkan focus (dicirikan dengan property TabIndex dan
TabStop) saja yang mempunyai event keyboard.
2. Pada level form (hight-level) – menangani event keyboard yang terjadi pada lingkup sebuah form.
Artinya form akan lebih dulu merespon event keyboard daripada kontrol-kontrol yang ada di
dalamnya. Agar form selalu lebih dulu merespon event keyboard maka property KeyPreview pada
form tersebut harus diset menjadi True.
Cepat Mahir Visual Basic 6.0
Krisna D. Octovhiana
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat
tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang
disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,
kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
1
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
13.2. Jenis-jenis Event Keyboard
VB6 menyediakan 3 (tiga) jenis event pada form dan pada beberapa kontrol yang bisa menerima input
dari user melalui keyboard, yaitu :
1. Event KeyPress – terjadi ketika tombol-tombol yang mempunyai kode ASCII pada keyboard
ditekan. ASCII (American Standard Code for Information Interchange) adalah kode dari
sekumpulan karakter pada tombol keyboard yang terdiri dari : abjad, angka dan beberapa karakter
khusus (Enter, Escape, Tab, Backspace).
2. Event KeyDown – terjadi ketika setiap tombol pada keyboard ditekan.
3. Event KeyUp – terjadi ketika setiap tombol pada keyboard dilepas.
Perbedaan antara event KeyPress dengan KeyDown adalah :
Event KeyPress hanya berlaku untuk tombol-tombol yang mempunyai kode ASCII saja. Tomboltombol
tertentu - seperti : tombol fungsi (F1 s/d F12), tombol panah, tombol keypad – tidak
mempunyai kode ASCII.
Event KeyPress tidak bisa merespon penekanan tombol yang di kombinasi dengan Shift, Ctrl dan
Alt.
Bila event KeyPress terjadi maka event tersebut akan mengembalikan nilai dari argumen KeyAscii yaitu
kode ASCII dari tombol keyboard yang ditekan. Contoh :
Private Sub Form1_KeyPress (KeyAscii As Integer)
MsgBox “Kode ASCII tombol yang ditekan : “ & KeyAscii
End Sub
Sedangkan event KeyDown dan KeyUp akan mengembalikan nilai dari argumen KeyCode dan Shift.
Argumen KeyCode berisi kode tombol keyboard yang ditekan dan argumen Shift berisi kode penekanan
tombol Shift, Ctrl dan Alt. Konstanta nilai untuk kedua argumen tersebut dapat dilihat melalui jendela
Object Browser. Contoh :
Private Sub Form1_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox “Kode tombol yang ditekan : “ & KeyCode
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
MsgBox “Kode tombol yang dilepas : “ & KeyCode
End if
13.3. Contoh Program : “Demo Event Keyboard”
(1) Aktifkan IDE VB6.
(2) Bukalah kembali file project Latihan.vbp.
(3) Tambahkan Form baru ke dalam project.
(4) Pada Jendela Form buatlah UI seperti ini :
(Gunakan kontrol PictureBox)
Cepat Mahir Visual Basic 6.0
Krisna D. Octovhiana
2
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Pengaturan property setiap object-nya adalah sebagai berikut :
Object Properties Value
Form12 BackColor
Caption
KeyPreview
ScaleMode
StartUpPosition
Palette: <putih>
Demo Event Keyboard
True
3 – Pixel
2 – Center Screen
Picture1 Name
AutoSize
BackColor
BorderStyle
Picture
ScaleMode
picRoket
True
Palette: <putih>
0 – None
Roket.ico
3 – Pixel
Buka Jendela Code, lalu pada bagian Code Editor ketikkan kode programnya sebagai berikut :
‘Deklarasi variabel global
Dim xpos As Single, ypos As Single
Private Sub Form_Load()
‘Pindahkan posisi roket ke tengah form
xpos = (Me.ScaleWidth - picRoket.Width) / 2
ypos = (Me.ScaleHeight - picRoket.Height) / 2
picRoket.Move xpos, ypos
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
‘Cek tombol keyboard yang ditekan
Select Case KeyCode
Case vbKeyLeft ‘Tombol panah kiri
Call RoketKeKiri
Case vbKeyRight ‘Tombol panah kanan
Call RoketKeKanan
End Select
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
‘Cek tombol keyboard yang dilepas
Select Case KeyCode
Case vbKeyUp ‘Tombol panah atas
Call RoketKeAtas
Case vbKeyDown ‘Tombol panah bawah
Cepat Mahir Visual Basic 6.0
Krisna D. Octovhiana
3
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Call RoketKeBawah
End Select
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
‘Cek tombol keyboard yang ditekan
If KeyAscii = vbKeyEscape Then ‘Tombol Escape
If MsgBox("Tutup program ?", vbQuestion + vbYesNo, _
Me.Caption) = vbYes Then Unload Me
End If
End Sub
Private Sub RoketKeKiri()
xpos = xpos – 10 ‘Geser ke kiri 10 pixel
If xpos < 0 Then ‘Cek bila melewati batas kiri
xpos = 0
End If
picRoket.Move xpos ‘Pindahkan posisi roket
End Sub
Private Sub RoketKeKanan()
xpos = xpos + 10
‘Geser ke kanan 10 pixel
If xpos > Me.ScaleWidth - picRoket.Width Then ‘Cek bila melewati batas
kanan
xpos = Me.ScaleWidth - picRoket.Width
End If
picRoket.Move xpos
‘Pindahkan posisi roket
End Sub
Private Sub RoketKeAtas()
ypos = ypos – 10 ‘Geser ke atas 10 pixel
If ypos < 0 Then ‘Cek bila melewati batas atas
ypos = 0
End If
picRoket.Move xpos, ypos ‘Pindahkan posisi roket
End Sub
Private Sub RoketKeBawah()
ypos = ypos + 10
‘Geser ke bawah 10 pixel
If ypos > Me.ScaleHeight - picRoket.Height Then ‘Cek bila melewati batas
bawah
ypos = Me.ScaleHeight - picRoket.Height
End If
picRoket.Move xpos, ypos
‘Pindahkan posisi roket
End Sub
Simpan Form12 (nama file : Lat12.frm).
Catatan : Anda bisa men-download file Lat1-12.zip.
Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi
Form12.
Coba jalankan Project1 :
Copyright © 2003 IlmuKomputer.Com
Saat form muncul posisi roket ada di tengah form.
Coba gerakkan roket menggunakan tombol-tombol panah pada keyboard.
P erhatikan : roket akan bergerak ke kiri/kanan saat tombol ditekan dan roket akan bergerak ke
atas/bawah saat tombol dilepas.
Untuk menutup form, tekan tombol Esc(ape).
Melihat nilai konstanta (dari argumen KeyAscii atau KeyCode) untuk tombol-tombol pada keyboard :
1. Klik menu View – Object Browser
atau tekan tombol F2 pada keyboard.
2. Cari KeyCodeConstants pada bagian
Classes.
3. Lihat daftar pada bagian Member of
‘KeyCodeConstants’, inilah
kumpulan konstanta untuk setiap
tombol pada keyboard.
4. Klik nama konstanta dan lihat pada
bagian Description untuk mengetahui
tombol apa yang ‘diwakilinya’.
5. Klik tombol Copy untuk menyalin
konstanta ke dalam kode program.
Agar bisa merespon kombinasi tombol Ctrl, modifikasi kode program sebagai berikut :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
‘Cek tombol keyboard yang ditekan
Select Case KeyCode
Case vbKeyLeft ‘Tombol panah kiri
If Shift = vbCtrlMask Then ‘Kombinasi dgn tombol Ctrl
Call RoketKeSisiKiri
Else
Call RoketKeKiri
End If
Case vbKeyRight ‘Tombol panah kanan
If Shift = vbCtrlMask Then ‘Kombinasi dgn tombol Ctrl
Call RoketKeSisiKanan
Else
Call RoketKeKanan
End If
End Select
End Sub
Private Sub RoketKeSisiKiri()
xpos = 0 ‘Geser ke sisi kiri
picRoket.Move xpos, ypos ‘Pindahkan posisi roket
End Sub
Cepat Mahir Visual Basic 6.0
Krisna D. Octovhiana
5
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Private Sub RoketKeSisiKanan()
xpos = Me.ScaleWidth - picRoket.Width ‘Geser ke sisi kanan
picRoket.Move xpos, ypos ‘Pindahkan posisi roket
End Sub
Nilai konstanta (dari argumen Shift) untuk kombinasi tombol-tombol Shift, Ctrl dan Alt :
vbShiftMask : kombinasi dengan tombol Shift.
vbCtrlMask : kombinasi dengan tombol Ctrl.
vbAltMask : kombinasi dengan tombol Alt.
***
Penanganan Keyboard
13.1. Mengenal Event Keyboard
Event keyboard merupakan salah satu elemen utama dari interaksi antara user dengan program yang kita
buat. Event keyboard terjadi saat user menekan (pressed) ataupun melepas (released) tombol pada
keyboard.
Menangani event keyboard dapat dilakukan pada 2 (dua) level, yaitu :
1. Pada level kontrol (low-level) – menangani event keyboard yang terjadi pada sebuah kontrol,
misalnya ketika user mengetik pada sebuah TextBox. Tidak semua kontrol mempunyai event
keyboard. Hanya kontrol yang bisa mendapatkan focus (dicirikan dengan property TabIndex dan
TabStop) saja yang mempunyai event keyboard.
2. Pada level form (hight-level) – menangani event keyboard yang terjadi pada lingkup sebuah form.
Artinya form akan lebih dulu merespon event keyboard daripada kontrol-kontrol yang ada di
dalamnya. Agar form selalu lebih dulu merespon event keyboard maka property KeyPreview pada
form tersebut harus diset menjadi True.
Cepat Mahir Visual Basic 6.0
Krisna D. Octovhiana
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat
tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang
disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,
kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
1
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
13.2. Jenis-jenis Event Keyboard
VB6 menyediakan 3 (tiga) jenis event pada form dan pada beberapa kontrol yang bisa menerima input
dari user melalui keyboard, yaitu :
1. Event KeyPress – terjadi ketika tombol-tombol yang mempunyai kode ASCII pada keyboard
ditekan. ASCII (American Standard Code for Information Interchange) adalah kode dari
sekumpulan karakter pada tombol keyboard yang terdiri dari : abjad, angka dan beberapa karakter
khusus (Enter, Escape, Tab, Backspace).
2. Event KeyDown – terjadi ketika setiap tombol pada keyboard ditekan.
3. Event KeyUp – terjadi ketika setiap tombol pada keyboard dilepas.
Perbedaan antara event KeyPress dengan KeyDown adalah :
Event KeyPress hanya berlaku untuk tombol-tombol yang mempunyai kode ASCII saja. Tomboltombol
tertentu - seperti : tombol fungsi (F1 s/d F12), tombol panah, tombol keypad – tidak
mempunyai kode ASCII.
Event KeyPress tidak bisa merespon penekanan tombol yang di kombinasi dengan Shift, Ctrl dan
Alt.
Bila event KeyPress terjadi maka event tersebut akan mengembalikan nilai dari argumen KeyAscii yaitu
kode ASCII dari tombol keyboard yang ditekan. Contoh :
Private Sub Form1_KeyPress (KeyAscii As Integer)
MsgBox “Kode ASCII tombol yang ditekan : “ & KeyAscii
End Sub
Sedangkan event KeyDown dan KeyUp akan mengembalikan nilai dari argumen KeyCode dan Shift.
Argumen KeyCode berisi kode tombol keyboard yang ditekan dan argumen Shift berisi kode penekanan
tombol Shift, Ctrl dan Alt. Konstanta nilai untuk kedua argumen tersebut dapat dilihat melalui jendela
Object Browser. Contoh :
Private Sub Form1_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox “Kode tombol yang ditekan : “ & KeyCode
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
MsgBox “Kode tombol yang dilepas : “ & KeyCode
End if
13.3. Contoh Program : “Demo Event Keyboard”
(1) Aktifkan IDE VB6.
(2) Bukalah kembali file project Latihan.vbp.
(3) Tambahkan Form baru ke dalam project.
(4) Pada Jendela Form buatlah UI seperti ini :
(Gunakan kontrol PictureBox)
Cepat Mahir Visual Basic 6.0
Krisna D. Octovhiana
2
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Pengaturan property setiap object-nya adalah sebagai berikut :
Object Properties Value
Form12 BackColor
Caption
KeyPreview
ScaleMode
StartUpPosition
Palette: <putih>
Demo Event Keyboard
True
3 – Pixel
2 – Center Screen
Picture1 Name
AutoSize
BackColor
BorderStyle
Picture
ScaleMode
picRoket
True
Palette: <putih>
0 – None
Roket.ico
3 – Pixel
Buka Jendela Code, lalu pada bagian Code Editor ketikkan kode programnya sebagai berikut :
‘Deklarasi variabel global
Dim xpos As Single, ypos As Single
Private Sub Form_Load()
‘Pindahkan posisi roket ke tengah form
xpos = (Me.ScaleWidth - picRoket.Width) / 2
ypos = (Me.ScaleHeight - picRoket.Height) / 2
picRoket.Move xpos, ypos
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
‘Cek tombol keyboard yang ditekan
Select Case KeyCode
Case vbKeyLeft ‘Tombol panah kiri
Call RoketKeKiri
Case vbKeyRight ‘Tombol panah kanan
Call RoketKeKanan
End Select
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
‘Cek tombol keyboard yang dilepas
Select Case KeyCode
Case vbKeyUp ‘Tombol panah atas
Call RoketKeAtas
Case vbKeyDown ‘Tombol panah bawah
Cepat Mahir Visual Basic 6.0
Krisna D. Octovhiana
3
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Call RoketKeBawah
End Select
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
‘Cek tombol keyboard yang ditekan
If KeyAscii = vbKeyEscape Then ‘Tombol Escape
If MsgBox("Tutup program ?", vbQuestion + vbYesNo, _
Me.Caption) = vbYes Then Unload Me
End If
End Sub
Private Sub RoketKeKiri()
xpos = xpos – 10 ‘Geser ke kiri 10 pixel
If xpos < 0 Then ‘Cek bila melewati batas kiri
xpos = 0
End If
picRoket.Move xpos ‘Pindahkan posisi roket
End Sub
Private Sub RoketKeKanan()
xpos = xpos + 10
‘Geser ke kanan 10 pixel
If xpos > Me.ScaleWidth - picRoket.Width Then ‘Cek bila melewati batas
kanan
xpos = Me.ScaleWidth - picRoket.Width
End If
picRoket.Move xpos
‘Pindahkan posisi roket
End Sub
Private Sub RoketKeAtas()
ypos = ypos – 10 ‘Geser ke atas 10 pixel
If ypos < 0 Then ‘Cek bila melewati batas atas
ypos = 0
End If
picRoket.Move xpos, ypos ‘Pindahkan posisi roket
End Sub
Private Sub RoketKeBawah()
ypos = ypos + 10
‘Geser ke bawah 10 pixel
If ypos > Me.ScaleHeight - picRoket.Height Then ‘Cek bila melewati batas
bawah
ypos = Me.ScaleHeight - picRoket.Height
End If
picRoket.Move xpos, ypos
‘Pindahkan posisi roket
End Sub
Simpan Form12 (nama file : Lat12.frm).
Catatan : Anda bisa men-download file Lat1-12.zip.
Klik menu Project > Project1 Properties lalu klik tab General. Gantilah Startup Object-nya menjadi
Form12.
Coba jalankan Project1 :
Copyright © 2003 IlmuKomputer.Com
Saat form muncul posisi roket ada di tengah form.
Coba gerakkan roket menggunakan tombol-tombol panah pada keyboard.
P erhatikan : roket akan bergerak ke kiri/kanan saat tombol ditekan dan roket akan bergerak ke
atas/bawah saat tombol dilepas.
Untuk menutup form, tekan tombol Esc(ape).
Melihat nilai konstanta (dari argumen KeyAscii atau KeyCode) untuk tombol-tombol pada keyboard :
1. Klik menu View – Object Browser
atau tekan tombol F2 pada keyboard.
2. Cari KeyCodeConstants pada bagian
Classes.
3. Lihat daftar pada bagian Member of
‘KeyCodeConstants’, inilah
kumpulan konstanta untuk setiap
tombol pada keyboard.
4. Klik nama konstanta dan lihat pada
bagian Description untuk mengetahui
tombol apa yang ‘diwakilinya’.
5. Klik tombol Copy untuk menyalin
konstanta ke dalam kode program.
Agar bisa merespon kombinasi tombol Ctrl, modifikasi kode program sebagai berikut :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
‘Cek tombol keyboard yang ditekan
Select Case KeyCode
Case vbKeyLeft ‘Tombol panah kiri
If Shift = vbCtrlMask Then ‘Kombinasi dgn tombol Ctrl
Call RoketKeSisiKiri
Else
Call RoketKeKiri
End If
Case vbKeyRight ‘Tombol panah kanan
If Shift = vbCtrlMask Then ‘Kombinasi dgn tombol Ctrl
Call RoketKeSisiKanan
Else
Call RoketKeKanan
End If
End Select
End Sub
Private Sub RoketKeSisiKiri()
xpos = 0 ‘Geser ke sisi kiri
picRoket.Move xpos, ypos ‘Pindahkan posisi roket
End Sub
Cepat Mahir Visual Basic 6.0
Krisna D. Octovhiana
5
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Private Sub RoketKeSisiKanan()
xpos = Me.ScaleWidth - picRoket.Width ‘Geser ke sisi kanan
picRoket.Move xpos, ypos ‘Pindahkan posisi roket
End Sub
Nilai konstanta (dari argumen Shift) untuk kombinasi tombol-tombol Shift, Ctrl dan Alt :
vbShiftMask : kombinasi dengan tombol Shift.
vbCtrlMask : kombinasi dengan tombol Ctrl.
vbAltMask : kombinasi dengan tombol Alt.
***