BAB 3 PERANCANGAN SISTEM
Alat yang akan dirancang merupakan suatu alat yang digunakan untuk membantu presentasi yang memiliki beberapa fungsi kerja mouse dan beberapa fungsi tombol pada keyboard. Perancangan alat ini meliputi tiga tahap utama yaitu: perancangan sistem secara keseluruhan, perancangan perangkat keras (hardware), dan perancangan piranti lunak (software) guna menunjang kinerja alat. Hardware terdiri dari remote transmitter dan receiver,
dimana mini stick berfungsi sebagai pergerakan pointer mouse serta
keypad yang berfungsi sebagai pengganti beberapa tombol pada keyboard. Program pada mikrokontroler berfungsi sebagai protokol dan antarmuka pemakai, serta program aplikasi yang berfungsi menterjemahkan protokol ke dalam aksi berupa pergerakan pointer selayaknya gerakan pointer mouse atau beberapa fungsi tombol keyboard yang telah ditentukan.
3.1
Gambaran Umum Sistem Sistem yang dirancang meliputi dua bagian utama yaitu: bagian hardware dan software. Hardware-nya berupa seperangkat remote transmitter dan receiver. Remote tersebut terdiri dari sebuah mini stick yang berfungsi sebagai pengganti pergerakan mouse yang dapat menggerakkan pointer dan sebuah keypad yang berfungsi untuk menggantikan fungsi klik pada mouse maupun beberapa fungsi tombol pada keyboard. Receiver terhubung ke komputer melewati komunikasi serial (COM port).
68
69 Software terdiri atas dua bagian, yaitu : program untuk mikrokontroler dan aplikasi untuk komputer. Program pada mikrokontroler berfungsi untuk mengubah atau menterjemahkan aksi pada remote dan dikonversi ke suatu protokol yang akan diterima dan dikenali oleh komputer. Aplikasi pada komputer berfungsi untuk mengubah atau menterjemahkan protokol, yang diterima melalui komunikasi serial menjadi aksi yang diinginkan pemakai. Selain itu, pada aplikasi juga terdapat sebuah fasilitas yang memungkinkan perubahan tomboltombol (baik untuk fungsi pada tombol mouse maupun keyboard) sesuai dengan keinginan dan kebutuhan pemakai (presenter).
3.2
Rancangan Perangkat Keras Perancangan perangkat keras terbagi menjadi dua bagian utama, yaitu diagram blok sistem, cara kerja sistem, beserta penjelasan komponen (modul) dari diagram blok sistem tersebut. 3.2.1
Diagram Blok Sistem Berikut ini merupakan diagram blok sistem hardware yang digambarkan secara permodul beserta jalur busnya.
Gambar 3.1. Diagram blok sistem
70 3.2.2
Cara Kerja Sistem Sistem ini merupakan perpaduan antara hardware dengan software. Sistem ini memiliki protokol yang sama agar dapat terjadi komunikasi antara komputer dengan sistem minimum. Pertama-tama remote akan menunggu input dari mini stick atau keypad. Hasil dari pergerakan (input) pada mini stick tersebut berupa sinyal analog, sehingga data yang diberikan oleh mini stick akan diubah menjadi sinyal digital melalui ADC0808. Mini stick terdiri dari dua buah output, dimana kedua output tersebut akan dipilih dengan metode multiplexer. Pertama yang dipilih adalah input 0, lalu dikonversi ke bentuk digital. Setelah dikonversi maka data tersebut disimpan ke dalam register sementara. Berikutnya yang terpilih adalah input 1 dengan pengambilan dan pengkonversian data ke bentuk digital. Data output pada ADC juga diambil dan disimpan ke dalam register lainnya. Setelah kedua input yang mewakili koordinat vertikal dan horizontal berupa sinyal digital, maka sistem akan melakukan pengecekan terhadap input pada keypad. Input pada keypad sudah berupa sinyal digital dan dapat langsung disimpan ke dalam register yang ketiga. Cara kerja keypad menggunakan teknik Walking Zero. Keypad dibagi menjadi 2 bagian fungsional, yaitu bagian pasif untuk baris dan bagian aktif untuk kolom. Dikatakan aktif karena angka nol yang berpindah adalah bagian kolom, dimana akan berpindah dari kanan ke kiri. Dikatakan pasif karena keempat bit pertama LSB (bit 0 sampai dengan bit ke 3) ini akan terpengaruh oleh sinyal low dari bagian aktif
71 (bit 4 sampai dengan bit ke 6). Untuk bit 7 akan dipergunakan untuk keperluan mendatang. Contohnya: apabila pada bit ke 4 (kolom ke 1) sedang dalam keadaan Zero atau low, dan apabila ada penekanan tombol pada baris ke-1, maka bit 0 pada LSB akan mengalami sinyal low karena pengaruh dari sinyal low dari bit ke-4. Itu menandakan bahwa tombol pada baris 1 dan kolom ke 1, yakni tombol 1 sedang ditekan. Hal ini akan menyebabkan nilai Port 0 pada mikrokontroler akan berubah, sehingga kita mengetahui dan menentukan perbedaan 12 tombol tersebut. Ketiga nilai tersebut dikonversi sesuai dengan tabel yang telah ditentukan. Hasil konversi setiap nilai pada masing-masing register akan dilakukan perhitungan logika menggunakan logika OR (ATAU). Gabungan dari ketiga register ini akan menghasilkan suatu kode yang akan dikirimkan atau ditransmisikan melalui pemancar gelombang radio. Data atau kode tersebut akan diterima oleh receiver gelombang radio. Agar dapat berkomunikasi antara komputer dengan receiver, maka digunakan RS232 sebagai antarmuka komunikasi serial yang akan dipergunakan sebagai perantara atau penerjemah kode atau data yang dikirimkan sehingga dimengerti oleh komputer. Sistem minimum hanya berperan sampai pada tahap ini saja. Langkah berikutnya adalah pengolahan data di dalam komputer. Pada komputer akan diinstall aplikasi yang berfungsi untuk menerjemahkan kode yang masuk. Kode-kode tersebut akan dicocokkan dengan tabel dan melakukan aksi sesuai dengan metode pemrograman yang telah ditentukan pada aplikasi ini. Aplikasi ini berfungsi menjalankan berbagai
72 perintah pergerakan pointer mini stick dan aksi penekanan tombol pada keypad, sebagaimana yang telah diatur sebelumnya pada bagian pengaturan (setting) pada aplikasi tersebut. Jika dilihat dari sistem itu sendiri, alat ini termasuk ke dalam jenis sistem Open Loop, dimana tidak ada feedback dari komputer ke sistem minimum. Akan tetapi, bila dilihat dari sisi keseluruhan penggunaan sistem, pemakai merupakan feedback untuk menentukan apakah yang ingin dilakukan pada komputer sudah terlaksana sesuai dengan kebutuhannya. Maka sistem penggunaan tersebut juga dapat disebut sebagai sistem Close Loop, karena penggunaan sistem ini tidak luput dari peran pemakai. Gambaran umum cara kerja sistem dapat dilihat pada gambar dibawah ini. Modul RF
Aksi yang diinginkan pada layar
Controller
Transmitter
Receiver
Computer
pemakai (user)
Gambar 3.2. Diagram blok cara kerja sistem secara umum
3.2.3
Cara Kerja Modul-Modul pada Sistem Blok-blok pada diagram blok sistem akan dibahas secara permodul. Modul remote terdiri dari mini stick, ADC, keypad, mikrokontroler, dan transmitter. Sedangkan modul penerima terdiri dari receiver dan komunikasi serial RS232. Dan yang terakhir adalah modul komputer, terdiri dari monitor dan CPU, serta proyektor ditambah layar yang merupakan opsional (sesuai kebutuhan).
73 3.2.3.1 Mini Stick Mini stick akan mengirimkan tegangan yang bervariasi karena dihasilkan oleh pergeseran potensiometer pada sisi vertikal dan horizontal dari mini stick tersebut. Setiap arah yang digerakkan menghasilkan tegangan yang berbeda. Gabungan / kombinasi dari sisi vertikal dan horizontal tersebut akan menghasilkan pergerakan delapan arah yang berlainan dalam dua dimensi. Karena terdapat dua buah potensiometer, maka outputnya memiliki dua buah nilai.
3.2.3.2 ADC Nilai-nilai yang diperoleh dari potensiometer akan menjadi input pada ADC untuk dikonversi menjadi data digital, agar dapat dibaca oleh mikrokontroler. IN0 dipergunakan untuk membaca (sebagai input) pergerakan horizontal, sedangkan IN1 dipergunakan untuk membaca (sebagai input) pergerakan vertikal. Untuk melakukan konversi, ADC membutuhkan clock untuk menghasilkan bit-bit output-nya.
3.2.3.3 Keypad Keypad yang dipergunakan adalah berupa keypad yang hanya memiliki 7 pin I/O yang terdiri dari hasil matrix baris dan kolom. Untuk menjalankan keypad ini, menggunakan Walking Zero dimana kolom dipergunakan sebagai scanner. Setiap ada
74 perubahan nilai pada baris tertentu dan saat kolom bersangkutan dalam keadaan zero (nol), maka tombol pada baris dan kolom tersebut sedang ditekan. Nilai input / output tersebut akan dibaca oleh mikrokontroler.
3.2.3.4 Mikrokontroler Mikrokontroler pada sistem sangat berperan dalam membantu pembacaan input yang diperoleh dari ADC dan keypad. Setelah input tersebut terbaca, mikrokontroler melakukan konversi sesuai dengan tabel yang telah ditentukan. Tabel tersebut merupakan protokol untuk berkomunikasi dengan komputer. Selain mengatur konversi ke protokol, mikrokontroler juga mengirimkan hasil konversi ke komputer melalui RS232 dalam bentuk komunikasi serial.
3.2.3.5 Transmitter Transmitter
atau
modulator
ini
berfungsi
untuk
mengirimkan sinyal digital melalui gelombang radio. Pada transmitter menggunakan modul YTWS-433 untuk mengirimkan gelombang radio berupa sinyal analog, yang termodulasi dalam bentuk modulasi digital ASK dengan frekuensi 433,92 Mhz. Sinyal gelombang radio inilah yang membawa data atau kode dari mikrokontroler ke receiver, untuk pengiriman ke komputer.
75 3.2.3.6 Receiver Receiver atau demodulator berfungsi untuk menerima sinyal gelombang radio yang membawa data dari transmitter. Agar dapat berkomunikasi atau dapat menerima data yang dikirimkan transmitter, receiver menggunakan modul YRWS-433 yang mana memiliki frekuensi carrier (433,92 Mhz) yang sama dengan transmitter. Receiver akan mendemodulasi (demodulation) sinyal analog menjadi data digital kembali sesuai dengan yang diproses pertama kali oleh transmitter. Kemudian data digital tersebut akan dikirimkan ke RS232, yang mana berfungsi untuk menterjemahkan data yang akan disampaikan ke komputer.
3.2.3.7 RS232 Suatu sistem minimum dapat berkomunikasi dengan komputer melalui sebuah penterjemah. Hal ini diperlukan karena adanya perbedaan tegangan antara komputer (logic low = -12 volt dan logic high = +12 volt) dengan sistem minimum (logic low = 0 dan logic high = 5 volt) tersebut. Salah satu cara dan yang umum dipergunakan adalah dengan menggunakan RS232, yang mana dapat menyampaikan informasi dari mikrokontroler ke komputer. Mikrokontroler mengirimkan data serial dan dikonversi sesuai dengan tegangan pada komputer, sehingga komputer bisa membaca data tersebut sesuai dengan yang dikirimkan.
76 3.2.3.8 CPU Peran komputer umumnya didominasi oleh CPU (Central Processing Unit). CPU yang dimaksud adalah keseluruhan dari komputer yakni minimal terdiri dari mikroprosesor, memori, dan I/O. Melalui port serial dari CPU sebagai input dengan dukungan dari aplikasi yang dibuat, data yang terkirim lewat komunikasi serial akan dibaca dan diterjemahkan ke dalam aksi-aksi yang sesuai dengan protokol. Aksi-aksi tersebut akan dikirim dan ditampilkan pada monitor maupun pada proyektor.
3.2.3.9 Monitor Monitor hanya berfungsi sebagai media tampilan guna menampilkan aplikasi dan aksi-aksi dari pergerakan pointer mini stick dan hasil penekanan tombol pada keypad.
3.2.3.10 Proyektor dan Layar Dilihat dari sisi keefektifan visualisasi, proyektor dan layar lebar merupakan suatu media presentasi yang sangat membantu. Dengan penggunaan layar lebar, presentasi dapat disaksikan oleh banyak orang. Pemakaian proyektor juga mempermudah presenter untuk menampilkan informasi, data, maupun demo yang akan dipertunjukkan pada saat melakukan presentasi.
77 3.3
Skematik Rangkaian Berikut ini adalah gambar skematik rangkaian dari alat remote transmitter dan receiver. pergerakan kiri kanan Vcc
Pergerakan atas bawah
Mini Stick
V baterai = 9V
1k
7805 100uF
Vcc
Vcc
Vcc = 5 Volt
10k 10k 10k 330
Clock
Clock output
1k 455 kHz 1k
Vcc
Vcc
1/6 U?
IN1 LSB-Bit8 IN0 Bit7 Vref(+) Bit6 Vref(-) Bit5 Bit4 Bit3 Clock Bit2 MSB-bit1 Out En ADD B ADD C Vcc GND EOC Start ADD A ALE
Vcc
1k
Vcc TWS 433 Vcc Vcc GND GND RF Output Code Input
1uF
P1.0
Vcc
P1.1
P0.0
P1.2
P0.1
P1.3
P0.2
P1.4
P0.3
P1.5
P0.4
P1.6
P0.5
P1.7
P0.6
P3.3 RST
P0.7
P3.1/TXD
33 pF 11 MHz
33 pF
VPP
Prog/ale P3.2 / INTR0 Psen P3.4 P2.7 P3.5 P2.6
Matrix Keypad Vcc
P2.5 P2.4 P2.3
XTAL2
P2.2
XTAL1
P2.1
Gnd
P2.0
Sinyal dikirim keluar oleh TWS433
Gambar 3.3. Skematik Rangkaian Remote Transmitter
78
Gambar 3.4. Skematik Rangkaian Receiver
3.4
Rancangan Piranti Lunak Rancangan piranti lunak terdiri dari dua bagian, yaitu program untuk mikrokontroler dan aplikasi pada komputer untuk Alat Presentasi.
3.4.1
Perancangan Program Mikrokontroler Dalam komunikasi antara mikrokontroler dengan program aplikasi di PC diperlukan suatu kode atau bahasa yang dapat dapat diterjemahkan dengan benar, agar apa yang disampaikan sesuai dengan yang dilakukan. Pengkodean dibagi menjadi dua bagian dalam satu byte. 4 bit MSB dipergunakan untuk pengkodean inputan yang diberikan oleh
79 keypad, dan 4 bit LSB untuk inputan hasil konversi ADC dari Mini Stick. Berikut ini adalah tabel rancangan kodenya.
Tabel 3.1. Kode untuk pergerakan Mini stick Pergerakan Mini stick posisi diam atas kiri bawah kanan atas kiri atas kanan bawah kiri bawah kanan
binary hexadesimal desimal P1 = IN0 00000000 00h 0 xxxxxxxx 00000001 01h 1 xxxxxxxx 00000010 02h 2 000xxxxx 00000100 04h 4 xxxxxxxx 00001000 08h 8 111xxxxx 00000011 03h 3 000xxxxx 00001001 09h 9 111xxxxx 00000110 06h 6 000xxxxx 00001100 0Ch 12 111xxxxx
P1 = IN1 xxxxxxxx 111xxxxx xxxxxxxx 000xxxxx xxxxxxxx 111xxxxx 111xxxxx 000xxxxx 000xxxxx
Tabel 3.2. Kode dan logic port 0 mikrokontroler untuk keypad Tombol Binary hexadesimal Keypad Tombol 1 00010000 10h Tombol 2 00100000 20h Tombol 3 00110000 30h Tombol 4 01000000 40h Tombol 5 01010000 50h Tombol 6 01100000 60h Tombol 7 01110000 70h Tombol 8 10000000 80h Tombol 9 10010000 90h Tombol 10 10100000 A0h Tombol 11 10110000 B0h Tombol 12 11000000 C0h Keterangan: x = Don’t Care
desimal 16 32 48 64 80 96 112 128 144 160 176 192
P0 pada Mikrokontroler x1101110 x1011110 x0111110 x1101101 x1011101 x0111101 x1101011 x1011011 x0111011 x1100111 x1010111 x0110111
80 Pada tabel 3.1. dan tabel 3.2 untuk bagian desimal akan dipergunakan untuk pengkodean pada program aplikasi dan untuk heksadesimal dipergunakan oleh mikrokontroler. Tabel 3.1 pada kolom P1 = IN0 menunjukkan bahwa, data hasil konversi sinyal analog dihasilkan mini stick pada saat digerakkan ke kiri dan ke kanan (input 0) melalui ADC diambil oleh Port 1 pada mikrokontroler dan 5 bit dari LSB dilakukan operasi logika AND dengan 0 sehingga menghasilkan data yang tidak memperhitungkan kelima bit tersebut. Demikian pula dengan P1 = IN1 yang diambil saat mini stick digerakkan ke atas dan ke bawah (input 1). Tujuan peletakan Don’t Care tersebut agar dapat memperoleh nilai toleransi tegangan output sebesar 640 mV pada mini stick (Vcc = 5 Volt). Nilai tersebut diperoleh dari hasil perkalian antara total kombinasi 5 bit dikalikan dengan perubahan tegangan per satu kenaikan bit. Untuk
tabel
3.2
terdapat
kolom
“P0
pada
Mikrokontroler“ berfungsi untuk menentukan tombol yang ditekan pada program. Bit pertama MSB diberi Don’t Care karena pada keypad hanya terdapat 7 pin dan ditempatkan pada P0.0 sampai dengan P0.6.
3.4.2
Diagram Alir Program pada Mikrokontroler Salah satu cara untuk menjelaskan cara kerja program pada mikrokontroler adalah dengan menggunakan flowchart. Dengan demikian, gambaran keseluruhan kinerja program dapat dimengerti dengan mudah
81 dan lebih jelas. Selain itu tidak terikat dengan perbedaan sintaks, bila digunakan pada kompiler lain. Start
P0 = FFh P1 = FFh P3 = FFh Input 0 ADC
D
A = R2 A = A (AND) E0 h R2 = A
Yes R2 = E0h?
R2 = 08h
No R2 = 00h?
Yes
R2 = 02h
No R2 = 00h Input 1 ADC A = R3 A = A (AND) E0 h R3 = A
Yes R2 = E0h?
R3 = 01h
No R2 = 00h?
Yes
R3 = 04h
No R3 = 00h A
Gambar 3.5. Flowchart program utama mikrokontroler (1)
82 A P0 = 6F h Yes P0.0 = 0?
R4 = 10h
No Yes P0.1 = 0?
R4 = 40h
No Yes P0.2= 0?
R4 =70h
No Yes P0.3= 0?
R4 = A0h
No P0 = 5F h Yes P0.0 = 0?
R4 = 20h
No Yes P0.1 = 0?
R4 = 50h
No Yes P0.2= 0?
R4 =80h
No Yes P0.3= 0?
R4 =B0h
No P0 = 3F h Yes P0.0 = 0?
R4 =30h
No Yes P0.1 = 0?
R4 = 60h
No Yes P0.2= 0?
R4 =90h
No Yes P0.3= 0?
R4 = C0h
No B
C
Gambar 3.6. Flowchart program utama mikrokontroler (2)
83 B
C
R4 = 00h A = R2 A = A (OR) R3 A = A (OR) R4 R5 = A D A= Address 70h? No
Yes
Yes R5 = 00h?
Address 70h = 00h
No Serial
End
Gambar 3.7. Flowchart program utama mikrokontroler (3)
84 Serial TMOD = 20h SCON = 50h TH1 = E8h TL1 = E8h
TR1 = 1 EA = 1 ES = 1 A = R5 ES = 0 TI = 0 SBUF = A
TI = 1 No TI = 0
Yes
A = R5 A = A (AND) F0h Address 70h = A
Return
Gambar 3.8. Flowchart subrutin transmisi serial mikrokontroler
85 Input 0 ADC
Input 1 ADC
ADD A = 0
ADD A = 1
Start & Ale = 1
Start & Ale = 1
Start & Ale = 0
Start & Ale = 0 No
EOC = 1? Yes OE = 1
No EOC = 1? Yes OE = 1
R2 = dataADC
R3 = dataADC
A=1
A=1
Delay
Delay
OE = 0
OE = 0
Return
Return
Gambar 3.9. Flowchart subrutin mikrokontroler untuk hasil konversi input 0 ADC (kiri) dan input 1 ADC (kanan)
86 Delay
R0 = A R1 = A R1 - 1 = 0?
No
Yes R0 - 1 = 0? Yes
No
Return
Gambar 3.10. Flowchart subrutin delay pada mikrokontroler
3.4.3
Perancangan Program Aplikasi Pada perancangan aplikasi akan dibahas secara bertahap, yakni mengenai: konsep fungsi aplikasi pada windows, cara kerja dan modul / procedure di dalam program, rancangan layarnya, beserta diagram alir aplikasi.
3.4.3.1 Konsep Fungsi Aplikasi pada Windows Seperti yang telah dijelaskan pada bab 2 diatas, bahwa pada dasarnya windows bekerja dalam bentuk pengiriman message. Setiap pemakai yang melakukan input (event), event tersebut akan terkirim berupa message ke system message queue
87 pada windows. Aplikasi-aplikasi windows yang aktif akan mengambil event message tersebut pada system message queue, sehingga respon tersebut akan menampilkan hasil input dari pemakai pada layar monitor.
Gambar 3.11. Diagram blok sistem kerja message pada windows Akan tetapi, aplikasi yang akan dirancang adalah suatu program yang akan menjadi perantara dari semua event message yang berasal dari input pemakai. Aplikasi tersebut akan mengendalikan dan mengirim event message ke system message queue pada windows, dan kemudian aplikasi–aplikasi windows yang aktif dapat mengambil message tersebut pada system message queue. Sehingga, aplikasi ini memungkinkan alat presentasi untuk menggantikan fungsi kerja mouse dan keyboard pada komputer.
Gambar 3.12. Diagram blok fungsi kerja aplikasi
Bahasa pemrograman yang digunakan adalah Microsoft Visual Basic 6.0 Enterprise Edition. Metode pemrograman yang akan diterapkan adalah: pengunaan dan pendeklarasian fungsi API
88 dari Win32 API beserta pendeklarasian konstantanya di dalam modul API, cara kerja aplikasi, modul-modul atau procedure yang terdapat dalam aplikasi, rancangan layar aplikasi, serta hasil tampilan output aplikasi.
3.4.3.2 Modul dan Deklarasi Fungsi API dari Windows API Fungsi API dari Win32 API yang digunakan pada aplikasi adalah:
keybd_event,
mouse_event,
SetCursorPos,
dan
GetCursorPos yang terdapat pada Dynamic Link Library (user32.dll).
Pendeklarasiannya
sangat
mudah,
yaitu
menggunakan fasilitas API Text Viewer yaitu program pembantu yang biasanya ada dalam directory tools Visual basic. Cara kerja program ini cukup sederhana yaitu dengan menyalin dan memindahkan nama fungsi, konstanta, dan tipe data yang sudah sesuai dengan aturan sintaks ke dalam kode program aplikasi yang akan dibuat (dapat dijalankan pada menu Add-In pada IDE Visual basic). Fungsi-fungsi API yang terpilih akan diletakkan pada modul API (*.BAS) pada Visual basic, yaitu suatu modul yang memungkinkan pemanggilan berulang kali (reusable) oleh berbagai procedure yang memerlukan fungsi API tersebut. Perintah Declare diawali dengan kata Private atau Public untuk mendefinisikan jangkauan fungsi dalam kode program. Pada aplikasi ini menggunakan kata Public agar fungsi dapat dijangkau
89 secara global dalam lingkungan program. Pendeklarasiannya adalah sebagai berikut: Public Declare Function GetCursorPos Lib "user32" (lpPoint As Pointapi) As Long. Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long. Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long). Public Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long).
Dalam modul API juga akan dideklarasikan beberapa virtual
key
yang
digunakan
sebagai
konstanta
untuk
melaksanakan event message dari fungsi API mouse dan keyboard, yaitu: Public Const MOUSEEVENTF_LEFTDOWN = &H2, Public Const MOUSEEVENTF_RIGHTDOWN = &H8, Public Const
MOUSEEVENTF_LEFTUP
MOUSEEVENTF_RIGHTUP
=
=
&H4,
&H10,
Public Public
Const Const
KEYEVENTF_KEYUP = &H2, Public Const VK_0 = &H30, Public Const VK_1 = &H31, Public Const VK_2 = &H32, Public Const VK_3 = &H33, Public Const VK_4 = &H34, Public Const
90 VK_5 = &H35, Public Const VK_6 = &H36, Public Const VK_7 = &H37, Public Const VK_8 = &H38, Public Const VK_9 = &H39, Public Const VK_A = &H41, Public Const VK_ADD = &H6B, Public Const VK_APPS = &H5D, Public Const VK_ATTN = &HF6, Public Const VK_B = &H42, Public Const VK_BACK = &H8, Public Const VK_C = &H43, Public Const VK_CANCEL = &H3, Public Const VK_CAPITAL = &H14, Public Const VK_CLEAR = &HC, Public Const VK_CONTROL = &H11, Public Const VK_CRSEL = &HF7, Public Const VK_D = &H44, Public Const VK_DECIMAL = &H6E, Public Const VK_DELETE = &H2E, Public Const VK_DIVIDE = &H6F, Public Const VK_DOWN = &H28, Public Const VK_E = &H45, Public Const VK_END = &H23, Public Const VK_EREOF = &HF9, Public Const VK_ESCAPE = &H1B, Public Const VK_EXECUTE = &H2B, Public Const VK_EXSEL = &HF8, Public Const VK_F = &H46, Public Const VK_F1 = &H70, Public Const VK_F10 = &H79, Public Const VK_F11 = &H7A, Public Const VK_F12 = &H7B, Public Const VK_F13 = &H7C, Public Const VK_F14 = &H7D, Public Const VK_F15 = &H7E, Public Const VK_F16 = &H7F, Public Const VK_F17 = &H80, Public Const VK_F18 = &H81, Public Const VK_F19 = &H82, Public Const VK_F2 = &H71, Public Const VK_F20 = &H83, Public Const VK_F21 = &H84, Public Const VK_F22 = &H85, Public Const VK_F23 = &H86, Public Const VK_F24 = &H87,
91 Public Const VK_F3 = &H72, Public Const VK_F4 = &H73, Public Const VK_F5 = &H74, Public Const VK_F6 = &H75, Public Const VK_F7 = &H76, Public Const VK_F8 = &H77, Public Const VK_F9 = &H78, Public Const VK_G = &H47, Public Const VK_H = &H48, Public Const VK_HELP = &H2F, Public Const VK_HOME = &H24, Public Const VK_I = &H49, Public Const VK_INSERT = &H2D, Public Const VK_J = &H4A, Public Const VK_K = &H4B, Public Const VK_L = &H4C, Public
Const
VK_LBUTTON
=
&H1,
Public
Const
VK_LCONTROL = &HA2, Public Const VK_LEFT = &H25, Public Const VK_LMENU = &HA4, Public Const VK_LSHIFT = &HA0, Public Const VK_LWIN = &H5B, Public Const VK_M = &H4D, Public Const VK_MBUTTON = &H4, Public Const VK_MENU = &H12, Public Const VK_MULTIPLY = &H6A, Public Const VK_N = &H4E, Public Const VK_NEXT = &H22, Public
Const
VK_NONAME
=
&HFC,
Public
Const
VK_NUMPAD0 = &H60, Public Const VK_NUMPAD1 = &H61, Public
Const
VK_NUMPAD2
=
&H62,
Public
Const
VK_NUMPAD3 = &H63, Public Const VK_NUMPAD4 = &H64, Public
Const
VK_NUMPAD5
=
&H65,
Public
Const
VK_NUMPAD6 = &H66, Public Const VK_NUMPAD7 = &H67, Public
Const
VK_NUMPAD8
=
&H68,
Public
Const
VK_NUMPAD9 = &H69, Public Const VK_NUMLOCK = &H90,
Public
Const
VK_O
=
&H4F,
Public
Const
92 VK_OEM_CLEAR = &HFE, Public Const VK_P = &H50, Public Const VK_PA1 = &HFD, Public Const VK_PAUSE = &H13, Public Const VK_PLAY = &HFA, Public Const VK_PRINT = &H2A, Public Const VK_PRIOR = &H21, Public Const VK_PROCESSKEY = &HE5, Public Const VK_Q = &H51,
Public
Const
VK_R
=
&H52,
Public
Const
VK_RBUTTON = &H2, Public Const VK_RCONTROL = &HA3, Public Const VK_RETURN = &HD, Public Const VK_RIGHT = &H27, Public Const VK_RMENU = &HA5, Public Const VK_RSHIFT = &HA1, Public Const VK_RWIN = &H5C, Public Const VK_S = &H53, Public Const VK_SCROLL = &H91, Public Const VK_SELECT = &H29, Public Const VK_SEPARATOR = &H6C, Public Const VK_SHIFT = &H10, Public
Const
VK_SNAPSHOT
=
&H2C,
Public
Const
VK_SPACE = &H20, Public Const VK_SUBTRACT = &H6D, Public Const VK_T = &H54, Public Const VK_TAB = &H9, Public Const VK_U = &H55, Public Const VK_UP = &H26, Public Const VK_V = &H56, Public Const VK_W = &H57, Public Const VK_X = &H58, Public Const VK_Y = &H59, Public Const VK_Z = &H5A, Public Const VK_ZOOM = &HFB.
93 3.4.3.3 Tipe Data untuk Fungsi API Tipe data yang juga dideklarasikan dalam modul API pada aplikasi ini adalah Pointapi, yaitu tipe data yang terkait dengan fungsi GetCursorPos, dengan sintaks seperti berikut: Public Type Pointapi x As Long y As Long End Type Tipe data Pointapi mendefinisikan koordinat x-axis dan yaxis dari nilai koordinat posisi kursor.
3.4.3.4 Cara Kerja Aplikasi Algoritma spesifikasi proses cara kerja aplikasi akan dijelaskan sebagai berikut: 1. Jalankan program aplikasi. 2. Pendeklarasian fungsi API (GetCursorPos, SetCursorPos, mouse_event, keybd_event) dari Win32 API (user32.dll), semua konstanta, dan tipe data Pointapi pada modul API. 3. Pilih salah satu Tab pada Tampilan Layar Utama: 4. Pada Tab “Komunikasi“: Tekan tombol “Connect” untuk membuka COM port yang akan dipakai (COM1 / COM2 / COM3 / COM4). Jika COM port belum dipilih maka: •
Tampilkan pesan “Port belum dipilih”.
94 •
Tekan tombol “OK“ untuk kembali Tab Komunikasi.
Tekan
tombol
“Disconnect“
untuk
memutuskan
komunikasi. 5. Pada Tab “Tombol“: Tekan tombol “Tes Kinerja“ untuk mengetahui kinerja tombol. Tekan tombol “Tes Konektivitas“ untuk mengetahui kelancaran hubungan komunikasi antar tombol. Jika konektivitas baik maka tombol yang ditekan akan berubah menjadi warna hijau. Jika konektivitas tidak terjadi maka tombol tidak berubah warna. 5. Pada Tab “Setting“: Klik daftar item pada 12 combo box bila ingin mengubah semua pengaturan tombol keypad satu persatu. Tekan tombol “Default” untuk menampilkan tombol secara default (pada saat aplikasi dijalankan tombol sudah dapat digunakan secara default). 6. Klik Tab “Cara Kerja“ untuk melihat cara kerja aplikasi 7. Klik Tab “About" untuk melihat jurusan dan nama anggota kelompok penulis 8. Untuk keluar dari program aplikasi: Tekan tombol “Disconnect” untuk pemutusan koneksi pada Tab Komunikasi.
95 Klik tombol “X” (sudut kanan atas windows) untuk keluar dari aplikasi.
3.4.3.5 Diagram Alir Program Aplikasi Berikut ini adalah diagram alir dari program aplikasi yang dirancang dengan menggunakan diagram transisi (STD). Alat permodelan jenis ini memberikan penjelasan mengenai perubahan dari setiap keadaan (state) dari modul di dalam program aplikasi.
Gambar 3.13. STD Diagram Program Aplikasi
3.4.3.6 Tab-Tab Pilihan pada Aplikasi Aplikasi yang dibuat hanya menggunakan sebuah form sebagai parent dari berbagai kontrol (objek) yang diletakkan pada
96 atasnya. Form utama yaitu frmMain yang dibuat sebagai navigasi menu utama guna menjelajahi program lebih lanjut. Form ini menampilkan lima pilihan dalam bentuk tab-tab, yaitu:
Tab Komunikasi Tab
“Komunikasi“
berfungsi
untuk
pengaturan
komunikasi. Pengontrolan komunikasi serial COM port (pengiriman dan penerimaan data) antara aplikasi dengan peralatan eksternal diatur dengan menggunakan MSComm32 ActiveX Communications Control (file MSComm32.OCX) yang tersedia pada komponen dalam Visual basic 6.0. Pengaturan penghubungan atau pemutusan komunikasi pada COM port menggunakan PortOpen property dari MSComm control yang dinyatakan dengan True untuk membuka port dan False untuk menutup port. Input property digunakan untuk membaca data yang datang ke port sedangkan
Output
property
tidak
digunakan
pada
pemrograman aplikasi karena menggunakan komunikasi simplex. Pengaturan parameter komunikasi COM port pada umumnya di set secara default dalam bentuk: 9600,n,8,1. Akan tetapi pada penelitian, agar kecepatan trasmisi data lebih cepat maka parameter komunikasi COM port yang digunakan
97 adalah: 1200,n,8,1 (disesuaikan dengan modul YTWS-433 dan YRWS-433). Tab Tombol Tab “Tombol“ berfungsi untuk pengecekan tombol. Pada tab “Tombol“ terdapat 12 macam tombol yang digunakan untuk melakukan “Tes Kinerja“ keaktifan tombol dan “Tes Konektivitas“ dari pengiriman data bagi setiap tombol. Tab Setting Tab “Setting“ berfungsi untuk mengatur tombol sesuai keinginan pemakai, yaitu dengan cara mengklik daftar item pada masing-masing combo box (hanya jika ingin mengubah satu, beberapa atau semua pengaturan tombol pada keypad). Jika user ingin menggunakan fungsi secara default, pada tab tersedia tombol “Default“ untuk memunculkan pengaturan tombol secara default. Tab Cara Kerja Tab “Cara kerja“ hanya berfungsi untuk menampilkan cara kerja dari aplikasi. Tab About Tab “About" hanya berfungsi untuk menampilkan jurusan, nama dan NIM kelompok penulis skripsi.
98 3.4.3.7 Modul / Procedure pada Aplikasi Rancangan aplikasi menggunakan beberapa modul untuk menyelesaikan suatu tugas tertentu. Modul Form_Load() Modul ini merupakan modul utama dari program yang berfungsi sebagai parent untuk meletakkan berbagai kontrol pada visual basic. Ketika modul ini aktif pertama kali saat aplikasi dijalankan, tombol “Disconnect” telah diset supatya tidak aktif. Modul ini langsung mengatur agar semua tombol aktif secara default (sesuai dengan modul default diatas), sehingga pemakai tidak perlu lagi melakukan pengaturan tombol secara manual maupun mengklik tombol “Default”. Modul SSTab1_Click(PreviousTab As Integer) Modul ini merupakan modul dari kontrol tab pada visual basic. Kode-kode yang tertulis pada modul ini akan aktif untuk semua tab pilihan. Ketika aktif, modul ini akan mengaktifkan tombol “Tes Kinerja” dan tombol “Tes Konektivitas” pada tab “Tombol”. Modul Timer1_Timer() Modul ini merupakan modul dari kontrol timer yang berfungsi untuk menghitung waktu pada visual basic. Modul pada kontrol ini digunakan untuk mengendalikan dan memicu event-event atau aksi yang akan dijalankan pada waktu-waktu tertentu berdasarkan jam internal yang terdapat pada komputer.
99 Pada modul ini dideklarasikan variabel untuk tipe data Pointapi, variabel untuk koordinat kursor mouse, dan sebuah variabel string. Pada modul ini juga terdapat penyeleksian bagi port yang sudah terbuka koneksinya, guna menampung data yang telah tiba pada COM port (MSComm.input). Data tersebut akan
ditampung
di
dalam
variabel
VarData
yang
dideklarasikan secara global pada bagian general visual basic. Jika nilai pada variabel VarData tidak null maka kode protokol yang tiba akan dikonversi ke dalam kode ASCII lalu akan ditampung ke dalam variabel string. Nilai kode ASCII tersebut akan dikonversi kembali menjadi nilai desimal guna pemakaian dalam kode pemrograman visual basic. Hasil konversi akan ditampung kembali ke variabel VarData. Kemudian modul akan menggunakan fungsi GetCursorPos dari library windows untuk mendeklarasikan variabel point guna menginisialisasi nilai untuk pengambilan koordinat posisi pergerakan kursor mouse. Jika tombol konektivitas dan kinerja aktif serta variabel VarData tidak null maka tampilkan nilai variabel VarData di dalam kotak teks DisplayKode pada tab “Komunikasi”. Lalu penyeleksian aturan protokol ke dalam variabel VarData untuk mengatur pergerakan koordinat mouse dan penekanan tombol keypad (yang akan memasukkan nilai
100 terpilih dari combo box tombol dan memanggil modul Button seperti yang dijelaskan pada modul Btn_Click()). Setiap pergerakan koordinat mouse dan penekanan tombol yang sesuai dengan protokol tersebut akan ditampilkan di dalam kotak teks DisplayFungsi pada tab “Komunikasi”. Setiap pergerakan kursor oleh mini stick, modul akan memanggil fungsi SetCursorPos dari library windows untuk mengatur koordinat posisi kursor mouse. Dalam modul
ini
juga
terdapat
metode
yang
menunjukkan hasil dari aksi penekanan tombol berupa perubahan warna tombol menjadi warna hijau (111111), saat pengujian konektivitas pada tab ”Tombol” berlangsung. Modul Button() Modul ini berfungsi untuk menyeleksi tombol yang terpilih pada tab “Setting”, lalu setelah tombol yang terpilih diketahui akan dilakukan pengiriman konstanta berdasarkan fungsi API yang digunakan, yaitu: •
mouse_event untuk mengirim konstanta fungsi penekanan tombol mouse. Contohnya: If Status = "Left Click" Then mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
•
Keybd_event untuk mengirim konstanta fungsi penekanan tombol keyboard. Contohnya:
101 ElseIf Status = "Esc" Then keybd_event VK_ESCAPE, 0, 0, 0 keybd_event VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0 Modul Btn_Click() Modul Btn_Click() ini merupakan modul dari tombol perintah. Terdapat 12 modul Btn_Click() yaitu mulai dari modul Btn1_Click() sampai modul Btn12_Click(). Modul ini berfungsi untuk memasukkan nilai text (baik secara default atau manual) dari combo box yang terpilih pada tab “Setting” ke dalam variabel tombol (variabel tombol 1 sampai 12 untuk masing-masing modul Btn1_Click() sampai Btn12_Click()) yang dideklarasi secara global pada bagian general dalam visual basic. Lalu nilai pada variabel tersebut akan dikirimkan ke modul Button untuk penyeleksian dan pengiriman konstanta tombol. Modul btnConnect_Click() Modul btnConnect_Click() adalah modul dari kontrol tombol perintah yang berfungsi untuk melakukan koneksi komunikasi serial. Untuk melakukan koneksi, pemakai harus memilih port (port 1-4) terlebih dahulu. Modul ini akan menyeleksi dan membuka port yang akan digunakan dan menampilkan pesan ke pemakai apabila port belum terpilih. Tombol ini tidak bisa diklik lagi selama terjadi komunikasi
102 Modul BtnDefault_Click() Modul ini merupakan modul tombol perintah yang berfungsi untuk melakukan penetapan pilihan tombol pada tab “Setting” sesuai dengan kebutuhan presenter pada umumnya. Yaitu: •
Combo box 1: tombol klik kiri pada mouse.
•
Combo box 2: tombol penahanan klik kiri pada mouse (biasanya untuk fungsi drag (membawa satu ikon)).
•
Combo box 3: tombol klik kanan pada mouse.
•
Combo box 4: tombol "F5" pada keyboard.
•
Combo box 5: tombol pelepasan klik kiri pada mouse (biasanya untuk melepas ikon yang di drag).
•
Combo box 6: tombol "F6" pada keyboard.
•
Combo box 7: tombol "Esc" pada keyboard.
•
Combo box 8: tombol panah atas pada keyboard.
•
Combo box 9: tombol "Enter" pada keyboard.
•
Combo box 10: tombol panah kiri pada keyboard.
•
Combo box 11: tombol panah bawah pada keyboard.
•
Combo box 12: tombol oanah kanan pada keyboard.
Modul BtnDisconnect_Click() Modul BtnDisconnect_Click() adalah modul dari kontrol tombol perintah yang berfungsi untuk melakukan pemutusan koneksi komunikasi serial. Untuk memutuskan
103 koneksi, pemakai harus mengklik tombol “disconnect”, lalu modul ini akan menutup port yang digunakan. Tombol ini tidak akan bisa diklik jika tidak terjadi komunikasi. Modul BtnKinerja_Click() Modul ini merupakan modul dari kontrol tombol perintah yang berfungsi untuk pengujian kinerja dari keaktifan tombol. Tombol ini menjadi tidak aktif selama pengujian kinerja. Modul BtnKonektivitas_Click() Modul ini merupakan modul dari kontrol tombol perintah yang berfungsi untuk pengujian konektivitas dari pengiriman komunikasi serial untuk masing-masing tombol. Tombol ini dan ke-12 tombol perintah keypad menjadi tidak aktif selama pengujian konektivitas. Jika tombol “Connect” pada tab komunikasi belum diklik maka akan muncul pesan ke pemakai bahwa koneksi pada port serial belum diaktifkan. Modul Combo_Change() dan cPortSerial_Change() Modul–modul ini merupakan modul dari kontrol kotak combo (combo box). Modul ini hanya menghasilkan tempat untuk pemilihan daftar tombol bagi pemakai. Terdapat 12 modul Combo_Change() yaitu mulai dari Combo1_Change() sampai
modul
cPortSerial_Change() komunikasi.
Combo12_Change(), untuk
pemilihan
dan port
modul pada
tab
104 3.4.3.8 Pseudocode Modul API Deklarasi Publik Fungsi GetCursorPos Library dari user32.dll (Variabel lpPoint Sebagai tipe data Pointapi) Sebagai tipe data Long
Deklarasi Publik Fungsi SetCursorPos Library dari user32.dll (Nilai Variabel x Sebagai tipe data Long, Nilai Variabel y Sebagai tipe data Long) Sebagai tipe data Long
Tipe Struktur Data Pointapi Variabel x Sebagai tipe data Long Variabel y Sebagai tipe data Long Akhir Tipe
Deklarasi Publik Sub mouse_event Library dari user32.dll (Nilai Variabel dwFlags Sebagai tipe data Long, Nilai Variabel dx Sebagai tipe data Long, Nilai Variabel dy Sebagai tipe data Long, Nilai Variabel cButtons Sebagai tipe data Long, Nilai Variabel dwExtraInfo Sebagai tipe data Long) Sebagai tipe data Long
Deklarasi Konstanta Publik MOUSEEVENTF_LEFTDOWN = &H2
105 Deklarasi Konstanta Publik MOUSEEVENTF_LEFTUP = &H4 Deklarasi Konstanta Publik MOUSEEVENTF_RIGHTDOWN = &H8 Deklarasi Konstanta Publik MOUSEEVENTF_RIGHTUP = &H10
Deklarasi Publik Sub keybd_event Library dari user32.dll (Nilai Variabel bVk Sebagai tipe data Byte, Nilai Variabel bScan Sebagai tipe data Byte, Nilai Variabel dwFlags Sebagai tipe data Long, Nilai Variabel dwExtraInfo Sebagai tipe data Long)
Deklarasi Konstanta Publik KEYEVENTF_KEYUP = &H2 Deklarasi Konstanta Publik VK_0 = &H30 Deklarasi Konstanta Publik VK_1 = &H31 Deklarasi Konstanta Publik VK_2 = &H32 Deklarasi Konstanta Publik VK_3 = &H33 Deklarasi Konstanta Publik VK_4 = &H34 Deklarasi Konstanta Publik VK_5 = &H35 Deklarasi Konstanta Publik VK_6 = &H36 Deklarasi Konstanta Publik VK_7 = &H37 Deklarasi Konstanta Publik VK_8 = &H38 Deklarasi Konstanta Publik VK_9 = &H39
106 Deklarasi Konstanta Publik VK_A = &H41 Deklarasi Konstanta Publik VK_ADD = &H6B Deklarasi Konstanta Publik VK_APPS = &H5D Deklarasi Konstanta Publik VK_ATTN = &HF6 Deklarasi Konstanta Publik VK_B = &H42 Deklarasi Konstanta Publik VK_BACK = &H8 Deklarasi Konstanta Publik VK_C = &H43 Deklarasi Konstanta Publik VK_CANCEL = &H3 Deklarasi Konstanta Publik VK_CAPITAL = &H14 Deklarasi Konstanta Publik VK_CLEAR = &HC Deklarasi Konstanta Publik VK_CONTROL = &H11 Deklarasi Konstanta Publik VK_CRSEL = &HF7 Deklarasi Konstanta Publik VK_D = &H44 Deklarasi Konstanta Publik VK_DECIMAL = &H6E Deklarasi Konstanta Publik VK_DELETE = &H2E Deklarasi Konstanta Publik VK_DIVIDE = &H6F Deklarasi Konstanta Publik VK_DOWN = &H28 Deklarasi Konstanta Publik VK_E = &H45 Deklarasi Konstanta Publik VK_END = &H23 Deklarasi Konstanta Publik VK_EREOF = &HF9 Deklarasi Konstanta Publik VK_ESCAPE = &H1B Deklarasi Konstanta Publik VK_EXECUTE = &H2B Deklarasi Konstanta Publik VK_EXSEL = &HF8 Deklarasi Konstanta Publik VK_F = &H46
107 Deklarasi Konstanta Publik VK_F1 = &H70 Deklarasi Konstanta Publik VK_F10 = &H79 Deklarasi Konstanta Publik VK_F11 = &H7A Deklarasi Konstanta Publik VK_F12 = &H7B Deklarasi Konstanta Publik VK_F13 = &H7C Deklarasi Konstanta Publik VK_F14 = &H7D Deklarasi Konstanta Publik VK_F15 = &H7E Deklarasi Konstanta Publik VK_F16 = &H7F Deklarasi Konstanta Publik VK_F17 = &H80 Deklarasi Konstanta Publik VK_F18 = &H81 Deklarasi Konstanta Publik VK_F19 = &H82 Deklarasi Konstanta Publik VK_F2 = &H71 Deklarasi Konstanta Publik VK_F20 = &H83 Deklarasi Konstanta Publik VK_F21 = &H84 Deklarasi Konstanta Publik VK_F22 = &H85 Deklarasi Konstanta Publik VK_F23 = &H86 Deklarasi Konstanta Publik VK_F24 = &H87 Deklarasi Konstanta Publik VK_F3 = &H72 Deklarasi Konstanta Publik VK_F4 = &H73 Deklarasi Konstanta Publik VK_F5 = &H74 Deklarasi Konstanta Publik VK_F6 = &H75 Deklarasi Konstanta Publik VK_F7 = &H76 Deklarasi Konstanta Publik VK_F8 = &H77 Deklarasi Konstanta Publik VK_F9 = &H78
108 Deklarasi Konstanta Publik VK_G = &H47 Deklarasi Konstanta Publik VK_H = &H48 Deklarasi Konstanta Publik VK_HELP = &H2F Deklarasi Konstanta Publik VK_HOME = &H24 Deklarasi Konstanta Publik VK_I = &H49 Deklarasi Konstanta Publik VK_INSERT = &H2D Deklarasi Konstanta Publik VK_J = &H4A Deklarasi Konstanta Publik VK_K = &H4B Deklarasi Konstanta Publik VK_L = &H4C Deklarasi Konstanta Publik VK_LBUTTON = &H1 Deklarasi Konstanta Publik VK_LCONTROL = &HA2 Deklarasi Konstanta Publik VK_LEFT = &H25 Deklarasi Konstanta Publik VK_LMENU = &HA4 Deklarasi Konstanta Publik VK_LSHIFT = &HA0 Deklarasi Konstanta Publik VK_LWIN = &H5B Deklarasi Konstanta Publik VK_M = &H4D Deklarasi Konstanta Publik VK_MBUTTON = &H4 Deklarasi Konstanta Publik VK_MENU = &H12 Deklarasi Konstanta Publik VK_MULTIPLY = &H6A Deklarasi Konstanta Publik VK_N = &H4E Deklarasi Konstanta Publik VK_NEXT = &H22 Deklarasi Konstanta Publik VK_NONAME = &HFC Deklarasi Konstanta Publik VK_NUMPAD0 = &H60 Deklarasi Konstanta Publik VK_NUMPAD1 = &H61
109 Deklarasi Konstanta Publik VK_NUMPAD2 = &H62 Deklarasi Konstanta Publik VK_NUMPAD3 = &H63 Deklarasi Konstanta Publik VK_NUMPAD4 = &H64 Deklarasi Konstanta Publik VK_NUMPAD5 = &H65 Deklarasi Konstanta Publik VK_NUMPAD6 = &H66 Deklarasi Konstanta Publik VK_NUMPAD7 = &H67 Deklarasi Konstanta Publik VK_NUMPAD8 = &H68 Deklarasi Konstanta Publik VK_NUMPAD9 = &H69 Deklarasi Konstanta Publik VK_NUMLOCK = &H90 Deklarasi Konstanta Publik VK_O = &H4F Deklarasi Konstanta Publik VK_OEM_CLEAR = &HFE Deklarasi Konstanta Publik VK_P = &H50 Deklarasi Konstanta Publik VK_PA1 = &HFD Deklarasi Konstanta Publik VK_PAUSE = &H13 Deklarasi Konstanta Publik VK_PLAY = &HFA Deklarasi Konstanta Publik VK_PRINT = &H2A Deklarasi Konstanta Publik VK_PRIOR = &H21 Deklarasi Konstanta Publik VK_PROCESSKEY = &HE5 Deklarasi Konstanta Publik VK_Q = &H51 Deklarasi Konstanta Publik VK_R = &H52 Deklarasi Konstanta Publik VK_RBUTTON = &H2 Deklarasi Konstanta Publik VK_RCONTROL = &HA3 Deklarasi Konstanta Publik VK_RETURN = &HD Deklarasi Konstanta Publik VK_RIGHT = &H27
110 Deklarasi Konstanta Publik VK_RMENU = &HA5 Deklarasi Konstanta Publik VK_RSHIFT = &HA1 Deklarasi Konstanta Publik VK_RWIN = &H5C Deklarasi Konstanta Publik VK_S = &H53 Deklarasi Konstanta Publik VK_SCROLL = &H91 Deklarasi Konstanta Publik VK_SELECT = &H29 Deklarasi Konstanta Publik VK_SEPARATOR = &H6C Deklarasi Konstanta Publik VK_SHIFT = &H10 Deklarasi Konstanta Publik VK_SNAPSHOT = &H2C Deklarasi Konstanta Publik VK_SPACE = &H20 Deklarasi Konstanta Publik VK_SUBTRACT = &H6D Deklarasi Konstanta Publik VK_T = &H54 Deklarasi Konstanta Publik VK_TAB = &H9 Deklarasi Konstanta Publik VK_U = &H55 Deklarasi Konstanta Publik VK_UP = &H26 Deklarasi Konstanta Publik VK_V = &H56 Deklarasi Konstanta Publik VK_W = &H57 Deklarasi Konstanta Publik VK_X = &H58 Deklarasi Konstanta Publik VK_Y = &H59 Deklarasi Konstanta Publik VK_Z = &H5A Deklarasi Konstanta Publik VK_ZOOM = &HFB
3.4.3.9 Pseudocode Program Aplikasi Deklarasi Variabel VarData Sebagai tipe data Variant
111 Deklarasi tombol4,
Variabel-Variabel tombol5,
tombol6,
tombol1, tombol2, tombol3, tombol7,
tombol8,
tombol9,
tombol10, tombol11, tombol12 Sebagai tipe data String
Modul Button(Status Sebagai tipe data String) Jika Status = "Left Click" Maka mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 Selain Itu Jika Status = "Mouse Left Down" Maka mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 Selain Itu Jika Status = "Mouse Left Up" Maka mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 Selain Itu Jika Status = "Right Click" Maka mouse_event MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0 mouse_event MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 Selain Itu Jika Status = "Esc" Maka keybd_event VK_ESCAPE, 0, 0, 0 keybd_event VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "F1" Maka keybd_event VK_F1, 0, 0, 0 keybd_event VK_F1, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "F2" Maka keybd_event VK_F2, 0, 0, 0 keybd_event VK_F2, 0, KEYEVENTF_KEYUP, 0
112 Selain Itu Jika Status = "F3" Maka keybd_event VK_F3, 0, 0, 0 keybd_event VK_F3, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "F4" Maka keybd_event VK_F4, 0, 0, 0 keybd_event VK_F4, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "F5" Maka keybd_event VK_F5, 0, 0, 0 keybd_event VK_F5, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "F6" Maka keybd_event VK_F6, 0, 0, 0 keybd_event VK_F6, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "F7" Maka keybd_event VK_F7, 0, 0, 0 keybd_event VK_F7, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "F8" Maka keybd_event VK_F8, 0, 0, 0 keybd_event VK_F8, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "F9" Maka keybd_event VK_F9, 0, 0, 0 keybd_event VK_F9, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "F10" Maka keybd_event VK_F10, 0, 0, 0 keybd_event VK_F10, 0, KEYEVENTF_KEYUP, 0
113 Selain Itu Jika Status = "F11" Maka keybd_event VK_F11, 0, 0, 0 keybd_event VK_F11, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "F12" Maka keybd_event VK_F12, 0, 0, 0 keybd_event VK_F12, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Print Screen" Maka keybd_event VK_SNAPSHOT, 0, 0, 0 keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "ScrollLock" Maka keybd_event VK_SCROLL, 0, 0, 0 keybd_event VK_SCROLL, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Pause" Maka keybd_event VK_PAUSE, 0, 0, 0 keybd_event VK_PAUSE, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "1" Maka keybd_event VK_1, 0, 0, 0 keybd_event VK_1, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "2" Maka keybd_event VK_2, 0, 0, 0 keybd_event VK_2, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "3" Maka keybd_event VK_3, 0, 0, 0 keybd_event VK_3, 0, KEYEVENTF_KEYUP, 0
114 Selain Itu Jika Status = "4" Maka keybd_event VK_4, 0, 0, 0 keybd_event VK_4, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "5" Maka keybd_event VK_5, 0, 0, 0 keybd_event VK_5, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "6" Maka keybd_event VK_6, 0, 0, 0 keybd_event VK_6, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "7" Maka keybd_event VK_7, 0, 0, 0 keybd_event VK_7, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "8" Maka keybd_event VK_8, 0, 0, 0 keybd_event VK_8, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "9" Maka keybd_event VK_9, 0, 0, 0 keybd_event VK_9, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "0" Maka keybd_event VK_0, 0, 0, 0 keybd_event VK_0, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Backspace" Maka keybd_event VK_BACK, 0, 0, 0 keybd_event VK_BACK, 0, KEYEVENTF_KEYUP, 0
115 Selain Itu Jika Status = "Insert" Maka keybd_event VK_INSERT, 0, 0, 0 keybd_event VK_INSERT, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Home" Maka keybd_event VK_HOME, 0, 0, 0 keybd_event VK_HOME, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Page Up" Maka keybd_event VK_PRIOR, 0, 0, 0 keybd_event VK_PRIOR, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Tab" Maka keybd_event VK_TAB, 0, 0, 0 keybd_event VK_TAB, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Q" Maka keybd_event VK_Q, 0, 0, 0 keybd_event VK_Q, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "W" Maka keybd_event VK_W, 0, 0, 0 keybd_event VK_W, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "E" Maka keybd_event VK_E, 0, 0, 0 keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "R" Maka keybd_event VK_R, 0, 0, 0 keybd_event VK_R, 0, KEYEVENTF_KEYUP, 0
116 Selain Itu Jika Status = "T" Maka keybd_event VK_T, 0, 0, 0 keybd_event VK_T, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Y" Maka keybd_event VK_Y, 0, 0, 0 keybd_event VK_Y, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "U" Maka keybd_event VK_U, 0, 0, 0 keybd_event VK_U, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "I" Maka keybd_event VK_I, 0, 0, 0 keybd_event VK_I, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "O" Maka keybd_event VK_O, 0, 0, 0 keybd_event VK_O, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "P" Maka keybd_event VK_P, 0, 0, 0 keybd_event VK_P, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Delete" Maka keybd_event VK_DELETE, 0, 0, 0 keybd_event VK_DELETE, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "End" Maka keybd_event VK_END, 0, 0, 0 keybd_event VK_END, 0, KEYEVENTF_KEYUP, 0
117 Selain Itu Jika Status = "Page Down" Maka keybd_event VK_NEXT, 0, 0, 0 keybd_event VK_NEXT, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "CapsLock" Maka keybd_event VK_CAPITAL, 0, 0, 0 keybd_event VK_CAPITAL, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "A" Maka keybd_event VK_A, 0, 0, 0 keybd_event VK_A, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "S" Maka keybd_event VK_S, 0, 0, 0 keybd_event VK_S, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "D" Maka keybd_event VK_D, 0, 0, 0 keybd_event VK_D, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "F" Maka keybd_event VK_F, 0, 0, 0 keybd_event VK_F, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "G" Maka keybd_event VK_G, 0, 0, 0 keybd_event VK_G, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "H" Maka keybd_event VK_H, 0, 0, 0 keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0
118 Selain Itu Jika Status = "J" Maka keybd_event VK_J, 0, 0, 0 keybd_event VK_J, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "K" Maka keybd_event VK_K, 0, 0, 0 keybd_event VK_K, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "L" Maka keybd_event VK_L, 0, 0, 0 keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Enter" Maka keybd_event VK_RETURN, 0, 0, 0 keybd_event VK_RETURN, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Z" Maka keybd_event VK_Z, 0, 0, 0 keybd_event VK_Z, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "X" Maka keybd_event VK_X, 0, 0, 0 keybd_event VK_X, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "C" Maka keybd_event VK_C, 0, 0, 0 keybd_event VK_C, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "V" Maka keybd_event VK_V, 0, 0, 0 keybd_event VK_V, 0, KEYEVENTF_KEYUP, 0
119 Selain Itu Jika Status = "B" Maka keybd_event VK_B, 0, 0, 0 keybd_event VK_B, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "N" Maka keybd_event VK_N, 0, 0, 0 keybd_event VK_N, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "M" Maka keybd_event VK_M, 0, 0, 0 keybd_event VK_M, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Spacebar" Maka keybd_event VK_SPACE, 0, 0, 0 keybd_event VK_SPACE, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Shift Down" Maka keybd_event VK_SHIFT, 0, 0, 0 Selain Itu Jika Status = "Shift Up" Maka keybd_event VK_SHIFT, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Ctrl Down" Maka keybd_event VK_CONTROL, 0, 0, 0 Selain Itu Jika Status = "Ctrl Up" Maka keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Alt Down" Maka keybd_event VK_MENU, 0, 0, 0 Selain Itu Jika Status = "Alt Up" Maka keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
120 Selain Itu Jika Status = "WinButton Down" Maka keybd_event VK_LWIN, 0, 0, 0 Selain Itu Jika Status = "WinButton Up" Maka keybd_event VK_DIVIDE, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Up Button" Maka keybd_event VK_UP, 0, 0, 0 keybd_event VK_UP, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Down Button" Maka keybd_event VK_DOWN, 0, 0, 0 keybd_event VK_DOWN, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Left Button" Maka keybd_event VK_LEFT, 0, 0, 0 keybd_event VK_LEFT, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Right Button" Maka keybd_event VK_RIGHT, 0, 0, 0 keybd_event VK_RIGHT, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "NumLock" Maka keybd_event VK_NUMLOCK, 0, 0, 0 keybd_event VK_NUMLOCK, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "/" Maka keybd_event VK_DIVIDE, 0, 0, 0 keybd_event VK_DIVIDE, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "*" Maka keybd_event VK_MULTIPLY, 0, 0, 0
121 keybd_event VK_MULTIPLY, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "-" Maka keybd_event VK_SUBTRACT, 0, 0, 0 keybd_event VK_SUBTRACT, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "+" Maka keybd_event VK_ADD, 0, 0, 0 keybd_event VK_ADD, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "." Maka keybd_event VK_DECIMAL, 0, 0, 0 keybd_event VK_DECIMAL, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Numpad 0" Maka keybd_event VK_NUMPAD0, 0, 0, 0 keybd_event VK_NUMPAD0, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Numpad 1" Maka keybd_event VK_NUMPAD1, 0, 0, 0 keybd_event VK_NUMPAD1, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Numpad 2" Maka keybd_event VK_NUMPAD2, 0, 0, 0 keybd_event VK_NUMPAD2, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Numpad 3" Maka keybd_event VK_NUMPAD3, 0, 0, 0 keybd_event VK_NUMPAD3, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Numpad 4" Maka keybd_event VK_NUMPAD4, 0, 0, 0
122 keybd_event VK_NUMPAD4, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Numpad 5" Maka keybd_event VK_NUMPAD5, 0, 0, 0 keybd_event VK_NUMPAD5, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Numpad 6" Maka keybd_event VK_NUMPAD6, 0, 0, 0 keybd_event VK_NUMPAD6, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Numpad 7" Maka keybd_event VK_NUMPAD7, 0, 0, 0 keybd_event VK_NUMPAD7, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Numpad 8" Maka keybd_event VK_NUMPAD8, 0, 0, 0 keybd_event VK_NUMPAD8, 0, KEYEVENTF_KEYUP, 0 Selain Itu Jika Status = "Numpad 9" Maka keybd_event VK_NUMPAD9, 0, 0, 0 keybd_event VK_NUMPAD9, 0, KEYEVENTF_KEYUP, 0 Akhir Jika Akhir Modul
Modul Btn1_Click() tombol1 =Teks pada Combo1 Button (tombol1) Akhir Modul
123 Modul Btn2_Click() tombol2 =Teks pada Combo2 Button (tombol2) Akhir Modul
Modul Btn3_Click() tombol3 = Teks pada Combo3 Button (tombol3) Akhir Modul
Modul Btn4_Click() tombol4 = Teks pada Combo4 Button (tombol4) Akhir Modul
Modul Btn5_Click() tombol5 = Teks pada Combo5 Button (tombol5) Akhir Modul
Modul Btn6_Click() tombol6 = Teks pada Combo6 Button (tombol6) Akhir Modul
124 Modul Btn7_Click() tombol7 = Teks pada Combo7 Button (tombol7) Akhir Modul
Modul Btn8_Click() tombol8 = Teks pada Combo8 Button (tombol8) Akhir Modul
Modul Btn9_Click() tombol9 = Teks pada Combo9 Button (tombol9) Akhir Modul
Modul Btn10_Click() tombol10 = Teks pada Combo10 Button (tombol10) Akhir Modul
Modul Btn11_Click() tombol11 = Teks pada Combo11 Button (tombol11) Akhir Modul
125 Modul Btn12_Click() tombol12 = Teks pada Combo12 Button (tombol12) Akhir Modul
Modul BtnDefault_Click() Teks pada Combo1 = "Left Click" Teks pada Combo2 = "Mouse Left Down" Teks pada Combo3 = "Right Click" Teks pada Combo4 = "F5" Teks pada Combo5 = "Mouse Left Up" Teks pada Combo6 = "F6" Teks pada Combo7 = "Esc" Teks pada Combo8 = "Up Button" Teks pada Combo9 = "Enter" Teks pada Combo10 = "Left Button" Teks pada Combo11 = "Down Button" Teks pada Combo12 = "Right Button" Akhir Modul
Modul BtnDisconnect_Click() BtnDisconnect.Bisa digunakan= False btnConnect.Bisa digunakan = True Jika Buka Port MSComm1 = True Maka
126 Buka Port MSComm1 = False Selain Itu JikaBuka Port MSComm2 = True Maka Buka Port MSComm2 = False Selain Itu JikaBuka Port MSComm3 = True Maka Buka Port MSComm3. = False Selain Itu JikaBuka Port MSComm4. = True Maka Buka Port MSComm4 = False Akhir Jika Akhir Modul
Modul BtnKinerja_Click() BtnKinerja.Bisa digunakan = False Btn1.Bisa digunakan = True Btn2.Bisa digunakan = True Btn3.Bisa digunakan = True Btn4.Bisa digunakan = True Btn5.Bisa digunakan = True Btn6.Bisa digunakan = True Btn7.Bisa digunakan = True Btn8.Bisa digunakan = True Btn9.Bisa digunakan = True Btn10.Bisa digunakan = True Btn11.Bisa digunakan = True Btn12.Bisa digunakan = True
127 BtnKonektivitas.Bisa digunakan = True Akhir Modul
Modul BtnKonektivitas_Click() Jika btnConnect.Bisa digunakan = True Maka Tampilkan
Pesan
"Koneksi
pada
diaktifkan!" Selain itu BtnKonektivitas.Bisa digunakan = False Btn1.Bisa digunakan = False Btn2.Bisa digunakan = False Btn3.Bisa digunakan = False Btn4.Bisa digunakan = False Btn5.Bisa digunakan = False Btn6.Bisa digunakan = False Btn7.Bisa digunakan = False Btn8.Bisa digunakan = False Btn9.Bisa digunakan = False Btn10.Bisa digunakan = False Btn11.Bisa digunakan = False Btn12.Bisa digunakan = False BtnKinerja.Bisa digunakan = True Akhir Jika Akhir Modul
Port
serial
belum
128 Modul btnConnect_Click() BtnDisconnect.Bisa digunakan = True btnConnect.Bisa digunakan = False Jika Teks pada cPortSerial = "Port 1" Dan Buka Port MSComm1 = False Maka Buka Port MSComm1 = True Selain Itu Jika Teks pada cPortSerial = "Port 2" Dan Buka Port MSComm2 = False Maka Buka Port MSComm2. = True Selain Itu Jika Teks pada cPortSerial = "Port 3" Dan Buka Port MSComm3 = False Maka Buka Port MSComm3 = True Selain Itu Jika Teks pada cPortSerial. = "Port 4" Dan Buka Port MSComm4 = False Maka Buka Port MSComm4 = True Selain itu Tampilkan Pesan "Port belum dipilih" BtnDisconnect.Bisa digunakan = False btnConnect.Bisa digunakan = True Akhir Jika Akhir Modul
Modul Form_Load() BtnDisconnect.Bisa digunakan = False
129 Teks pada Combo1 = "Left Click" Teks pada Combo2 = "Mouse Left Down" Teks pada Combo3 = "Right Click" Teks pada Combo4 = "F5" Teks pada Combo5 = "Mouse Left Up" Teks pada Combo6 = "F6" Teks pada Combo7 = "Esc" Teks pada Combo8 = "Up Button" Teks pada Combo9 = "Enter" Teks pada Combo10 = "Left Button" Teks pada Combo11 = "Down Button" Teks pada Combo12 = "Right Button" Akhir Modul
Modul SSTab1_Click(PreviousTab sebagai tipe data Integer) BtnKinerja.Bisa digunakan = True BtnKonektivitas.Bisa digunakan = True Btn1.Bisa digunakan = False Btn2.Bisa digunakan = False Btn3.Bisa digunakan = False Btn4.Bisa digunakan = False Btn5.Bisa digunakan = False Btn6.Bisa digunakan = False Btn7.Bisa digunakan = False
130 Btn8.Bisa digunakan = False Btn9.Bisa digunakan = False Btn10.Bisa digunakan = False Btn11.Bisa digunakan = False Btn12.Bisa digunakan = False Akhir Modul
Modul Timer1_Timer() Deklarasi Variabel point Sebagai tipe data Pointapi Deklarasi Variabel A Sebagai tipe data Long, B Sebagai tipe data Long Deklarasi Variabel Kode Sebagai tipe data String
Jika Buka Port MSComm1 = True Maka VarData = Input dari port MSComm1 Selain Itu Jika Buka Port MSComm2. = True Maka VarData = Input dari port MSComm2 Selain Itu Jika Buka Port MSComm3 = True Maka VarData = Input dari port MSComm3 Selain Itu Jika Buka Port MSComm4 = True Maka VarData = Input dari port MSComm4 Akhir Jika
131 Jika VarData Tidak Sama Dengan "" Maka Kode = Konversi nilai variabel VarData ke bilangan ASCII VarData = Konversi nilai variabel Kode ke Desimal Akhir Jika
Deklarasi Objek GetCursorPos point A = point kusor x axis B = point.kursor y axis
Jika
BtnKonektivitas.Bisa
digunakan
=
True
Dan
BtnKinerja.Bisa digunakan = True Maka Jika VarData Tidak Sama Dengan "" Maka Tampilkan Tulisan DisplayKode = VarData Jika VarData = 1 Maka B=B-2 Tampilkan Tulisan pada DisplayFungsi = "Mouse ke Atas" Selain Itu Jika VarData = 9 Maka B=B-2 A=A+2 Tampilkan Tulisan pada DisplayFungsi = "Mouse ke Kanan Atas" Selain Itu Jika VarData = 8 Maka A=A+2
132 Tampilkan Tulisan pada DisplayFungsi = "Mouse ke Kanan" Selain Itu Jika VarData = 12 Maka A=A+2 B=B+2 Tampilkan Tulisan pada DisplayFungsi = "Mouse ke Kanan Bawah" Selain Itu Jika VarData = 4 Maka B=B+2 Tampilkan Tulisan pada DisplayFungsi "Mouse ke Bawah" Selain Itu Jika VarData = 6 Maka B=B+2 A=A-2 Tampilkan Tulisan pada DisplayFungsi = "Mouse ke Kiri Bawah" Selain Itu Jika VarData = 2 Maka A=A-2 Tampilkan Tulisan pada DisplayFungsi = "Mouse ke Kiri" Selain Itu Jika VarData = 3 Maka A=A-2 B=B-2
133 Tampilkan Tulisan pada DisplayFungsi = "Mouse ke Kiri Atas" Selain Itu Jika VarData = 16 Maka tombol1 = Teks pada Combo1 Button (tombol1) Tampilkan Tulisan pada DisplayFungsi = tombol1 Selain Itu Jika VarData = 32 Maka tombol2 = Teks pada Combo2 Button (tombol2) Tampilkan Tulisan pada DisplayFungsi = tombol2 Selain Itu Jika VarData = 48 Maka tombol3 = Teks pada Combo3 Button (tombol3) Tampilkan Tulisan pada DisplayFungsi = tombol3 Selain Itu Jika VarData = 64 Maka tombol4 = Teks pada Combo4 Button (tombol4) Tampilkan Tulisan pada DisplayFungsi = tombol4 Selain Itu Jika VarData = 80 Maka tombol5 = Teks pada Combo5 Button (tombol5) Tampilkan Tulisan pada DisplayFungsi = tombol5 Selain Itu Jika VarData = 96 Maka tombol6 = Teks pada Combo6
134 Button (tombol6) Tampilkan Tulisan pada DisplayFungsi = tombol6 Selain Itu Jika VarData = 112 Maka tombol7 = Teks pada Combo7 Button (tombol7) Tampilkan Tulisan pada DisplayFungsi = tombol7 Selain Itu Jika VarData = 128 Maka tombol8 = Teks pada Combo8 Button (tombol8) Tampilkan Tulisan pada DisplayFungsi = tombol8 Selain Itu Jika VarData = 144 Maka tombol9 = Teks pada Combo9 Button (tombol9) Tampilkan Tulisan pada DisplayFungsi = tombol9 Selain Itu Jika VarData = 160 Maka tombol10 = Teks pada Combo10 Button (tombol10) Tampilkan Tulisan pada DisplayFungsi = tombol10 Selain Itu Jika VarData = 176 Maka tombol11 = Teks pada Combo11 Button (tombol11) Tampilkan Tulisan pada DisplayFungsi = tombol11 Selain Itu Jika VarData = 192 Maka tombol12 = Teks pada Combo12
135 Button (tombol12) Tampilkan Tulisan pada DisplayFungsi = tombol12 Akhir Jika Atur posisi kursor dengan Fungsi SetCursorPos Variabel A dan B Akhir Jika Akhir Jika
Jika
BtnKonektivitas.Bisa
digunakan
=
BtnKinerja.Bisa digunakan = True Maka Jika VarData Tidak Sama Dengan "" Maka Btn1 Berwarna Latar Belakang Windows Btn2 Berwarna Latar Belakang Windows Btn3 Berwarna Latar Belakang Windows Btn4 Berwarna Latar Belakang Windows Btn5 Berwarna Latar Belakang Windows Btn6 Berwarna Latar Belakang Windows Btn7 Berwarna Latar Belakang Windows Btn8 Berwarna Latar Belakang Windows Btn9 Berwarna Latar Belakang Windows Btn10 Berwarna Latar Belakang Windows Btn11 Berwarna Latar Belakang Windows Btn12 Berwarna Latar Belakang Windows Jika VarData = 16 Maka
False
Dan
136 Warna Latar Belakang Btn1 berubah menjadi warna HIJAU Selain Itu Jika VarData = 32 Maka Warna Latar Belakang Btn2 berubah menjadi warna HIJAU Selain Itu Jika VarData = 48 Maka Warna Latar Belakang Btn3 berubah menjadi warna HIJAU Selain Itu Jika VarData = 64 Maka Warna Latar Belakang Btn4 berubah menjadi warna HIJAU Selain Itu Jika VarData = 80 Maka Warna Latar Belakang Btn5 berubah menjadi warna HIJAU Selain Itu Jika VarData = 96 Maka Warna Latar Belakang Btn6 berubah menjadi warna HIJAU Selain Itu Jika VarData = 112 Maka Warna Latar Belakang Btn7 berubah menjadi warna HIJAU Selain Itu Jika VarData = 128 Maka Warna Latar Belakang Btn8 berubah menjadi warna HIJAU
137 Selain Itu Jika VarData = 144 Maka Warna Latar Belakang Btn9 berubah menjadi warna HIJAU Selain Itu Jika VarData = 160 Maka Warna Latar Belakang Btn10 berubah menjadi warna HIJAU Selain Itu Jika VarData = 176 Maka Warna Latar Belakang Btn11 berubah menjadi warna HIJAU Selain Itu Jika VarData = 192 Maka Warna Latar Belakang Btn12 berubah menjadi warna HIJAU Akhir Jika Akhir Jika Akhir Jika Variabel VarData = "" Akhir Modul
3.4.3.10 Rancangan Layar Berikut ini adalah rancangan layar dari kelima tab yang menjadi bagian utama dari aplikasi, yaitu:
138
Gambar 3.14. Rancangan layar tab “Komunikasi“
Gambar 3.15. Rancangan layar tab “Tombol“
139
Gambar 3.16. Rancangan layar tab “Setting”
Gambar 3.17. Rancangan layar tab “Cara Kerja”
140
Gambar 3.18. Rancangan layar tab “About”
3.4.3.11 Hasil Tampilan Aplikasi pada Layar
Gambar 3.19. Tampilan tab “Komunikasi”
141
Gambar 3.20. Tampilan tab “Tombol”
Gambar 3.21. Tampilan tab “Setting”
142
Gambar 3.22. Tampilan tab “Cara Kerja”
Gambar 3.23. Tampilan tab “About”
143 3.5
Rancang Bangun Alat Presentasi Bentuk rancangan dari alat presentasi dilihat dari permukaan atas dan samping adalah sebagai berikut:
Gambar 3.24. Rancangan permukaan depan alat
Gambar 3.25. Rancangan permukaan samping alat