BAB 2 LANDASAN TEORI
2.1
Teori-Teori Umum Merupakan teori-teori yang bersifat umum dan berhubungan dengan perancangan alat presentasi.
2.1.1
Sejarah Komunikasi Data Menurut Lukas (2000, p1), sebenarnya sistem komunikasi data sudah ada sejak dahulu kala, walaupun pada saat itu belum terdapat fasilitas-fasilitas
yang
sama
seperti
pada
zaman
sekarang
ini.
Pengembangan daripada sistem penyampaian terjadi bersamaan dengan industri perkereta-apian, di mana jaringan-jaringan kereta api yang dibuat memasuki berbagai tempat terpencil dengan tujuan untuk mengadakan transportasi bahan-bahan baku dan keperluan sehari-hari. Dengan adanya jaringan perkereta-apian, maka secara otomatis harus juga dibentuk jaringan komunikasi untuk tujuan pengaturan perjalanan kereta api tersebut. Jaringan komunikasi ini kelak digunakan juga sebagai jaringan komunikasi data yang menggunakan sistem telegrafi, di mana informasi dikirim dalam bentuk “DOT” dan “DASH”. Pada tahun 1940 sampai 1959, komputer mulai digunakan pada sistem komunikasi data untuk keperluan telemetri dan militer. Jadi sebagai contoh, data-data radar yang diterima oleh stasiun radar diubah menjadi bentuk digital dan dikirim ke pusat komputer untuk diolah, 10
11 sehingga dengan demikian dapat mempercepat proses pengenalan target radar tersebut. Setelah diolah maka hasil pengolahan tersebut akan dikirimkan ke stasiun radar tersebut. Proses seperti ini akan mempercepat operator stasiun radar tersebut dalam mengenali berbagai benda yang tertangkap pada layar radar tersebut. Sejalan dengan perkembangan komputer, sejak tahun 1960 jaringan komunikasi data mulai digunakan untuk tujuan-tujuan komersial. Data-data dari suatu “REMOTE STATION” dikirim ke pusat komputer untuk diolah dan dibuat laporan tertulisnya, sehingga dapat diadakan penghematan baik dari segi biaya maupun waktu. Mulai dari tahun 1970 sampai dengan sekarang ini, jaringan komunikasi data bukan hanya digunakan antara suatu remote station dengan
pusat
komputer
lainnya.
Sebagai
contoh
badan
polisi
internasional “INTERPOL”, dalam menyebarkan informasi mengenai seorang buronan, akan menggunakan jaringan komunikasi data ke negara-negara anggota INTERPOL untuk menyampaikan data-data buronan tersebut.
2.1.2
Konsep Dasar Komunikasi Data Komunikasi adalah suatu proses penyampaian informasi dari suatu tempat yang disebut sebagai sumber ke tempat lain yang disebut tujuan, dengan menggunakan suatu media transmisi tertentu. Maka komunikasi data merupakan satu bagian dari ilmu komunikasi yang mengkhususkan diri pada penyampaian informasi yang berupa text dan
12 gambar (Lukas, 2000, p2). Dari kenyataan di atas, maka persyaratan minimal sistem komunikasi data adalah: 1. Sumber (Transmitter) 2. Media Transmisi 3. Tujuan (Receiver) 4. Informasi yang berupa data.
2.1.3 Informasi, Data dan Sinyal Menurut Lukas (2000, p8), informasi merupakan kenyataan atau fakta penting yang dimengerti oleh manusia dan mempunyai arti yang unik. Data adalah kenyataan atau fakta penting yang tercatat / terekam yang dapat diproses atau diinterpretasikan oleh komputer maupun manusia dan mempunyai arti yang bermacam-macam. Sinyal didefinisikan sebagai data atau informasi yang telah mengalami suatu proses sedemikian rupa sehingga dapat bergerak di dalam
saluran
transmisi.
Sinyal
dapat
merambat
dan
besaran
amplitudonya bervariasi terhadap fungsi waktu, sedangkan data tidak. Sinyal terbagi menjadi dua jenis yaitu: sinyal analog (musik yang terdengar, suara yang terucapkan keluar dan terdengar oleh telinga) dan sinyal digital (gelombang pulsa). Data juga terbagi menjadi dua jenis yaitu: data analog (musik yang terekam di kaset, grafik dan video yang terekam, dll) dan data digital (bit 0,1 yang terekam di harddisk, memori).
13 2.1.4
Ukuran dan Kecepatan Transmisi Data Berdasarkan pengalaman Lukas (2000, p9), banyak orang tidak mengerti mengenai secara tepat mengenai istiah Data rate dan Baud rate, sehingga dalam pemakaiannya kedua istilah tersebut sering dicampuradukkan. Baud adalah satuan signaling rate atau modulation rate yaitu suatu ukuran yang menyatakan berapa cepat suatu elemen sinyal dapat dikirimkan melalui suatu saluran transmisi. Dalam prakteknya, karena signaling rate ini mempunyai satuan Baud maka sering juga disebut sebagai Baud rate. Sedangkan Data rate adalah suatu ukuran yang menyatakan banyaknya data (dalam bit) yang dapat dikirim per satuan waktu. Secara umum data rate memiliki satuan bit per second (bps), namun dalam pengembangannya dapat diturunkan satuan-satuan lain, misalnya: character per second, word per second, word per minute,dll. Hubungan antara data rate dan baud rate dapat dilihat pada rumus berikut: (2-1) dimana:
C = Data rate. R = Baud rate atau Signaling rate. L = Jumlah keadaan logika yang mungkin pada suatu elemen sinyal.
14 2.1.5
Arah Transmisi Data Pada sistem komunikasi data, aliran data dapat dibedakan menjadi tiga jenis metode, yaitu: Simplex, Half Duplex dan Full Duplex.
2.1.5.1 Simplex Metode pengiriman data satu arah (Tanutama, 1995, pp23pp30). Data hanya dikirimkan ke satu arah dari pengirim (pemancar) ke penerima. Jika terjadi kesalahan pengiriman data, penerima tidak dapat memberitahukan kepada pengirim mengenai kesalahan tersebut.
Gambar 2.1. Simplex 2.1.5.2 Half Duplex (HDX) Metode pengiriman data ke dua arah secara bergantian (Tanutama, 1995, pp23-pp30). Jika salah satu menjadi pengirim, maka yang lain menjadi penerima, begitu pula sebaliknya secara bergantian. Metode komunikasi data ini umumnya digunakan pada telepon radio CB walkie-talkie.
Gambar 2.2. Half Duplex
15 2.1.5.3 Full Duplex Metode
pengiriman
data
dimana
pengiriman
dan
penerimaan data secara bersamaan (Tanutama, 1995, pp23-pp30). Pada sistem Full Duplex ini, penerima dapat menjadi pengirim tanpa harus bergantian, karena disediakan dua jalur berbeda untuk pengiriman dan penerimaan data.
Gambar 2.3. Full Duplex
2.1.6
Modus Transmisi Modus transmisi (transmission mode) pada komunikasi data terbagi menjadi dua macam cara pengiriman data, yaitu: modus transmisi paralel dan modus transmisi serial.
2.1.6.1 Modus Transmisi Paralel Modus pengiriman data secara paralel. Data dikirimkan sekaligus secara bersamaan / serentak, misalnya 8 bit data melalui 8 saluran komunikasi. Transmisi ini digunakan untuk pengiriman data dengan kecepatan tinggi (Tanutama, 1995, pp23-pp30). Menurut Lukas(2000, p20), jika karakter (data) akan dikirimkan secara paralel maka dibutuhkan sejumlah saluran yang banyaknya harus sama dengan jumlah bit per karakter tersebut.
16 Cara ini biasanya hanya digunakan untuk pengiriman data pada jarak yang sangat dekat. Untuk pengiriman jarak jauh, sistem paralel ini akan sulit dilaksanakan, mengingat banyaknya saluran yang dibutuhkan dan juga masing-masing saluran tersebut harus sinkron satu dengan lainnya.
Ganbar 2.4. Transmisi Paralel
2.1.6.2 Modus Transmisi Serial Modus pengiriman data bit per bit secara serial, dimana bit dikirimkan satu demi satu melalui satu saluran komunikasi yang telah dipilih, misalnya: data dikirimkan dalam bentuk ASCII dengan 7 bit untuk tiap karakter (Tanutama, 1995, pp23-pp30). Karena data yang dikirimkan bit per bit secara serial, maka harus ada penyesuaian (sinkronisasi) antara pengirim dan penerima dalam hal kecepatan transmisi, pariti dan jumlah bit pada tiap karakter agar supaya penerima menafsirkan secara benar data yang terkirim (Lukas, 2000, pp21-pp22).
17
Gambar 2.5. Transmisi Serial Pada bagian pengiriman data secara serial ini terdapat dua jenis modus transmisi berdasarkan cara berkomunikasinya, yaitu: Komunikasi Sinkron Komunikasi data serial secara sinkron merupakan bentuk komunikasi data serial yang memerlukan sinyal clock untuk sinkronisasi (Nalwan, 2003, p40).
Gambar 2.6. Komunikasi Sinkron Sinyal clock tersebut akan tersulut pada setiap bit pengiriman data. Data akan dikirimkan bit per bit dalam bentuk satu blok data secara bersamaan. Komunikasi sinkron ini digunakan untuk transmisi berkecepatan tinggi. Pada komunikasi ini tidak memerlukan bit start dan bit stop. Komunikasi Asinkron Komunikasi ini menggunakan 1 bit start dan 1 bit stop untuk menandakan awal dan akhir dari pengiriman 1 byte (8 bit) data sehingga sinkronisasi dapat dilakukan. Pada
18 komunikasi ini tidak memerlukan sinyal clock sebagai sinkronisasi (Nalwan, 2003, p42).
Gambar 2.7. Komunikasi Asinkron Penerima hanya perlu mendeteksi adanya start bit sebagai awal pengiriman data, lalu akan terjadi pengiriman 8 bit data. Setelah 8 bit data diterima, penerima akan menunggu adanya stop bit sebagai tanda bahwa 1 byte data telah terkirim dan penerima dapat siap untuk menunggu pengiriman data berikutnya. Komunikasi asinkron inilah yang selalu digunakan untuk mengakses port serial pada komputer atau port serial mikrokontroler lainnya.
2.1.7
Modulasi Digital ASK Menurut Lukas (2000, p26), modulasi adalah proses membawa sinyal digital maupun sinyal analog dengan cara menumpangkan sinyal tersebut ke dalam sinyal analog lainnya yang mempunyai sinyal frekuensi yang lebih tinggi. Sinyal pembawanya disebut carrier. Teknik modulasi yang dipergunakan pada penelitian ini adalah modulasi digital, yaitu: sinyal digital yang dibawa oleh carrier sinyal analog. Ada tiga jenis modulasi digital, yaitu: Amplitude Shift Keying (ASK), Frekuensi Shift
19 Keying (FSK) dan Phase Shift Keying (PSK). Pada penelitian ini menggunakan modulasi digital Amplitude Shift Keying. Teknik modulasi digital Amplitude Shift Keying ini kadangkadang disebut juga sebagai On-Off Keying (OOK), dilakukan dengan mengubah amplitudo gelombang pembawa sesuai dengan data digital yang akan dikirimkan (Lukas, 2000, p33). Teknik modulasi ini merupakan teknik yang paling sederhana.
Gambar 2.8. Amplitude Shift Keying Tingkat
keandalannya
rendah,
karena
data
digital
akan
ditumpangkan pada amplitudo dari gelombang pembawa. Seperti yang telah diketahui bahwa data yang terletak pada amplitudo akan lebih mudah untuk mendapat gangguan dibandingkan dengan data yang terletak pada frekuensi atau phasa.
2.1.8
Gelombang Elektromagnetik Gelombang elektromagnetik pada umumnya dipakai dalam transmisi dan penerimaan sinyal yang berdasarkan pada skala frekuensi dengan satuan Hertz (Hz). Frekuensi adalah jumlah getaran / gelombang yang dihasilkan dalam satu detik. Jadi semakin tinggi frekuensinya (f) maka semakin banyak getaran / gelombang yang dihasilkan dalam satu detik. Panjang
20 gelombang juga ditentukan oleh frekuensi dimana semakin besar frekuensi maka semakin pendek panjang gelombang elektromagnetik tersebut. Hal ini dapat dihitung dengan rumus:
λ= dimana:
c f
(2-2)
c = cepat rambat cahaya (idealnya = 3 x 108 m/s) f = frekuensi (satuan Hz) λ = panjang gelombang (satuan meter)
Gelombang elektromagnetik tidak hanya berupa gelombang radio, tetapi juga termasuk infrared, cahaya tampak, ultraviolet, sinar-X, dan sinar gamma (lihat gambar 2.9).
Gambar 2.9. Spektrum elektromagnetik (http://www.lbl.gov/MicroWorlds/ALSTool/EMSpec/EMSpec2.html) Gelombang elektromagnetik dihasilkan oleh pergerakan partikel secara elektrik dan juga disebut dengan radiasi elektromagnetik.
21 Gelombang tersebut dapat merambat pada ruang hampa maupun melalui zat-zat lainnya. Untuk gelombang radio memiliki frekuensi sekitar dari 30 Hz sampai dengan 300 GHz yang mencakup Extremely Low Frequency (ELF: 30-300 Hz), Very Low Frequency (VLF: 300-3000Hz), Low Frequency (LF: 30-300 kHz), Medium Wave atau Medium Frequency (MF: 3003000 kHz), High Frequency atau Short Wave (HF: 3-30 MHz), Very High Frequency (VHF:30-300 MHz), Ultra High Frequency (UHF: 300-3000 MHz), Super High Frequency (SHF: 3-30 GHz) and Extremely High Frequency (EHF: 3-30 GHz). (http: // www.argospress.com/ Resources/ CommunicationsSystems/ radifreque.htm). Frequency Modulated (FM) termasuk dalam VHF. Sedangkan Amplitude Modulated (AM) terletak antara LF dan MF (540-1630 kHz). (Carr, 1996, p2). Faktor
umum
yang
menentukan
jangkauan
perambatan
gelombang radio adalah barrier, suhu, cahaya matahari, dan penguatan dari rangkaian transmitter itu sendiri. Gelombang radio sifatnya dapat dipantulkan dan bahkan diserap oleh zat-zat tertentu dan sifatnya dapat memancar ke segala arah. Hal inilah yang menambah keunggulan dari gelombang radio dibandingkan dengan infra merah, dimana transmisi data melalui infra merah pada umumnya lemah terhadap barrier. Tetapi gelombang radio dapat mengatasi barrier yang tergantung pada kuat transmisi serta besar atau kecilnya frekuensi yang dipakai. Untuk lebih jelasnya dapat disederhanakan sifat-sifat gelombang elektromagnetik adalah sebagai berikut:
22 1. Dapat merambat di dalam ruang hampa. 2. Merupakan gelombang transversal (arah getar tegak lurus arah rambat), jadi dapat mengalami polarisasi. 3. Dapat mengalami refleksi, refraksi, interferensi dan difraksi. 4. Tidak dibelokkan dalam medan listrik maupun medan magnet. (http://bebas.vlsm.org/v12/sponsor/SponsorPendamping/Praweda/Fisika/ 0339%20Fis-3-4c.htm)
2.1.9
Media Transmisi Data Setiap transmisi data menggunakan saluran yang berfungsi sebagai media komunikasi bagi sinyal-sinyal yang akan dikirimkan ataupun yang akan diterima. Media transmisi merupakan suatu media yang digunakan sebagai jalur untuk membawa data dari pengirim data ke penerima data. Media transmisi data dapat diklasifikasikan menurut bentuk fisiknya yaitu: media guided dan media unguided. Media guided merupakan jenis media transmisi dimana data dikirimkan melalui media kabel (tembaga, twisted pair, kabel koaksial, dan kabel serat optik). Penggunaan kabel tembaga, merupakan media transmisi yang paling banyak digunakan saat ini karena biayanya yang murah dan lebih tahan terhadap gangguan (noise). Penelitian ini menggunakan media unguided karena alat yang dirancang memerlukan mobilitas yang tinggi. Penggunaan media unguided mulai banyak dipergunakan karena memberikan keuntungan mobilitas dan fleksibilitas yang tinggi dibandingkan dengan penggunaan
23 media kabel. Media unguided merupakan jenis media transmisi dimana data dikirimkan melalui media udara (nirkabel). Terdapat beragam jenis media udara antara lain yaitu: Infrared (infra merah) Media transmisi yang menggunakan media cahaya yang tidak tampak untuk menyampaikan data. Infra merah menggunakan cahaya untuk merambat melalui udara. Media ini membutuhkan sensor khusus yang berfungsi untuk mengirimkan sinar infra merah dan sensor lainnya yang berfungsi untuk membaca sinar tersebut. Media ini umumnya digunakan untuk komunikasi jarak dekat (contohnya: remote untuk TV dan VCR). Menurut Tanenbaum (1997, p74), gelombang-gelombang ini relatif direksional, murah dan mudah dibuatnya. Sinar ini tidak dapat menembus benda-benda padat, sehingga tidak akan mengganggu sistem inframerah lain yang aktif (pada ruangan yang sama). Radio Frequency (Frekuensi Radio) Media
transmisi
yang
menggunakan
gelombang
elektromagnetik (radio) sebagai media untuk menyalurkan data dari pengirim ke penerima. Menurut Tanenbaum (1997, p71), gelombang radio mudah sekali dibuat, dapat menjalar pada jarak yang jauh. Karena itu gelombang radio digunakan baik untuk komunikasi di dalam ruangan maupun di luar ruangan. Gelombang radio dapat menjalar secara omnidirectional, artinya gelombang tersebut dapat
24 menyebar ke berbagai arah. Karena itu posisi fisik transmitter dan receiver-nya tidak perlu diatur dengan teliti. Digunakannya radio sebagai sarana komunikasi karena biaya penarikan kabel praktis tidak ada, hanya membutuhkan peralatan radio. Untuk media ini perlu diperhatikan jalur frekuensi yang dipakai. Agar tidak terjadi kesimpangsiuran pemakaian radio komunikasi, maka pemakaian frekuensi perlu mendapat persetujuan dari pemerintah (Lukas, 2000, p54). Yang perlu diperhatikan adalah kekuatan pancarannya agar tidak menjadi sumber gangguan lainnya, dan jalur frekuensi yang dipakai harus benar-benar sesuai agar tidak mengganggu gelombang radio yang aktif (pada ruangan yang sama).
2.1.10 Transmitter Transmitter merupakan komponen dari transmisi nirkabel yang berfungsi untuk mengirimkan data dari sumber ke penerima. Transmitter akan mengambil input dalam bentuk data digital, lalu akan dimodulasi menjadi sinyal analog. Kemudian sinyal yang telah dimodulasi (modulation) tersebut akan dikirimkan secara merambat di udara. Semua frekuensi carrier yang dikirim melalui sinyal RF berupa sinyal analog.
2.1.11 Receiver Receiver merupakan bagian transmisi nirkabel yang berfungsi untuk menerima data yang dikirimkan oleh pengirim data. Receiver
25 berfungsi sebagai demodulator, yaitu: proses untuk mengambil data yang telah termodulasi dengan cara membuang sinyal carrier yang membungkus data tersebut. Receiver akan memproses sinyal termodulasi (demodulation) menjadi data digital kembali sesuai dengan yang diproses pertama kali oleh transmitter. Kemudian receiver akan mengirimkan data tersebut ke antarmuka komunikasi serial untuk pengiriman ke komputer. (http://www.infoplease.com/ce6/sci/A0833554.html)
2.1.12 Port & IRQ Demi kejelasan mengenai cara komunikasi antara program aplikasi dengan hardware, maka perlu dicantumkan sedikit penjelasan mengenai port dan IRQ pada komputer. Bagaimana program berkomunikasi dengan hardware? Program berkomunikasi dengan hardware melalui interrupt, IRQ, dan port. Port adalah gerbang (one-byte-wide gateways) untuk melakukan respon dengan instruksi in dan out dari CPU jenis 80x86. Setiap IRQ (Interrupt ReQuest) adalah satu dari 15 saluran khusus (dedicated line) yang dapat diatur melalui hardware yang bersangkutan. Ketika line-nya di set, IRQ memberitahukan CPU bahwa Interrupt ReQuest masih tidak dapat digunakan sampai proses setting selesai. Ketika selesai, CPU memberitahukan tentang permintaan (request) ini, kemudian chip prosesor memanggil PIC (Programmable Interrupt Controller) untuk memasukkan perintah interrupt (int) ke dalam rangkaian instruksi yang di baca oleh CPU.
26 2.1.13 System Development Life Cycle Menurut Dix, dkk (1997, pp179-pp183), System Development Life Cycle (SDLC) merupakan kerangka kerja keseluruhan proses yang menggambarkan aktivitas yang terjadi secara bertahap, mulai dari proses inisialisasi konsep sistem sampai akhir dari sistem. Dix, dkk (1997, pp180-pp183) mengemukakan bahwa di dalam model SDLC waterfall terdapat beberapa tahapan penting, yaitu sebagai berikut: Spesifikasi Kebutuhan (Requirement Specification) Pada tahap ini, perancang dan klien mencoba merumuskan uraian dari tujuan yang ingin dicapai pada akhir pembuatan sistem. Tahapan ini melibatkan pertukaran informasi dari klien tentang lingkungan kerja sistem, dan fungsi pada akhir produk. Analisa kebutuhan di mulai pada awal pengembangan produk. Meskipun kebutuhan berasal dari pihak klien, tetapi mereka diharapkan dapat menyesuaikan dengan sistem yang telah dirumuskan sehingga dapat diimplementasikan oleh perancang. Perancangan Arsitektur (Architectural Design) Tahapan ini berfokus pada bagaimana sistem yang sedang dikembangkan Aktivitas
dapat
pertama
menyediakan dari
spesifikasi
layanan
yang
arsitektur
diharapkan. (architectural
specification) adalah proses dekomposisi pada level yang tinggi. Proses ini tidak hanya berurusan dengan dekomposisi fungsional sistem
dan
penentuan
komponen
pendukung,
tetapi
juga
27 menggambarkan saling ketergantungan di antara komponen yang terpisah dan pembagian sumber daya antar komponen. Perancangan Terinci (Detailed Design) Setelah proses dekomposisi, komponen-komponen yang terpisah tersebut harus disatukan kembali menjadi bagian yang utuh. Bagi komponen yang belum dapat disatukan, perancang harus menyediakan
penjelasan
terinci
secukupnya
sehingga
dapat
diimplementasikan. Perancangan terinci adalah perbaikan dari penjelasan komponen yang tersedia pada perancangan arsitektur. Secara khusus, akan ada lebih dari satu proses perbaikan dari komponen sehingga akan menghasilkan sistem yang memuaskan. Pengkodean dan Pengujian Unit (Coding dan Unit Testing) Perancangan yang sudah dikerjakan harus diterjemahkan ke dalam bentuk bahasa pemograman yang dapat dieksekusi. Setelah proses pengkodean, komponen-komponen tersebut harus diuji untuk membuktikan bahwa komponen-komponen tersebut telah bekerja dengan benar berdasarkan beberapa kriteria tes yang ditentukan. Pengujian Integritas (Integration Testing) Setelah implementasi dan pengujian komponen, komponenkomponen tersebut harus disatukan kembali. Tes selanjutnya dilakukan guna memastikan hasil yang tepat dan dapat menggunakan sumber yang tersedia. Setelah tes selesai, maka produk yang lulus uji tersebut diberikan kepada klien.
28 Pemeliharaan Sistem (Maintenance) Setelah produk diberikan kepada klien, maka tahap terakhir adalah pemeliharaan sistem. Sebagai konsekuensi, mayoritas dari SDLC dihabiskan pada bagian pemeliharaan sistem. Pemeliharaan sistem juga mencakup perbaikan terhadap berbagai kesalahan yang diperoleh dari hasil penerapan sistem setelah diberikan pada klien. Bila masih terdapat kesalahan pada sistem, maka perlu pengkajian ulang pada tahap-tahap sebelumnya, sehingga sistem versi revisi dapat diberikan pada klien. Gambar dari model SDLC waterfall diatas adalah sebagai berikut (Tanenbaum, 1996, p183):
Gambar 2.10. Model SDLC Waterfall
2.1.14 Alat-Alat Permodelan (Modeling Tools) Untuk merancang diagram alir proses aplikasi diperlukan modeling tools atau alat-alat permodelan, antara lain: Flow of Diagram
29 (menggambarkan diagram alir proses program pada mikrokontroler) dan State Transition Diagram (menggambarkan diagram alir berdasarkan keterkaitan keadaan (state) modul di dalam aplikasi).
2.1.14.1 Flow of Diagram (FOD) Flow of Diagram (Flowchart) atau diagram alir adalah sebuah bagan yang menggambarkan cara kerja / proses program yang baik. Ada sembilan jenis simbol yang digunakan, antara lain:
Gambar 2.11. Bagan-bagan pada Flowchart Keterangan: Arrow: arah panah yang menggambarkan hubungan dan arah proses antar simbol. Start / Stop: menggambarkan awal dan akhir dari aplikasi. Proses: menggambarkan proses pada aplikasi. Procedure: menggambarkan procedure / modul dari aplikasi. Kondisi: menggambarkan operasi logika dan ekspresi aritmatika. Input / Output: menggambarkan masuk dan keluar (I/O) dari data. Inisialisasi: mengambarkan inisialisasi.
30 Off-Page Connector: menggambarkan penghubung bagi halaman yang berbeda / terpisah. Connector: menggambarkan penghubung bagi halaman yang sama.
2.1.14.2 State Transition Diagram (STD) Menurut Kowal (1988, p329), diagram transisi adalah sebuah bagan yang menggambarkan hasil perubahan dari sebuah keadaan selama pemrosesan dari sebuah finite state process. Menurut Yourdon (1989, pp265-268), STD (State Transition Diagram) merupakan suatu modeling tools yang menggambarkan sifat ketergantungan pada waktu dari suatu sistem. Notasi yang digunakan pada STD adalah: State Perubahan State Setiap STD memiliki initial dan final state. Initial state harus berjumlah satu dalam setiap STD, tetapi final state tidak harus satu (bisa beberapa state). Selain itu untuk melengkapi STD diperlukan dua hal lagi, yaitu: 1. Condition, yaitu suatu event pada external environment yang dapat dideteksi oleh sistem, contoh: Penekanan tombol dari pemakai, input dari pemakai, dsb. 2. Action, yaitu aksi yang dilakukan oleh sistem bila terjadi perubahan state atau merupakan reaksi terhadap condition.
31 Action akan menghasilkan output, tampilan pesan pada layar, menghasilkan kalkulasi, dan sebagainya. Pada umumnya sistem analis akan langsung berhadapan dengan pemakai ketika menggambarkan STD, setidaknya pada waktu pertama kali membuat STD, kemudian dilakukan koreksi terhadap procedure atau flow yang keliru. Terdapat dua cara atau pendekatan untuk membuat STD: 1. Identifikasi setiap kemungkinan state dari sistem dan gambarkan masing-masing state pada sebuah kotak. Lalu buatlah hubungan antara state tersebut. 2. Kita mulai dengan state pertama dan kemudian dilanjutkan state-state berikutnya sesuai dengan flow yang diinginkan.
Gambar 2.12. Komponen Dasar Diagram
2.1.15 Pseudocode Menurut Kowal (1988, p97), Pseudocode adalah pernyataan logika mendetil yang mendefinisikan bagaimana data masukan ditransformasikan menjadi data keluaran.
32 Pseudocode harus mengandung semua bahasa yang digunakan untuk mengekspresikan logika secara jelas dan tidak mengandung lebih dari satu arti, tetapi tidak sekompleks bahasa pemrograman. Pseudocode digunakan dalam pembuatan spesifikasi proses sebagai jembatan untuk melangkah ke pemrograman yang sesungguhnya. Contoh: Pseudocode, bahasa Inggris terstruktur, bahasa Indonesia terstruktur, dsb.
2.1.16 Rumus Fisika Pada bagian evaluasi akan digunakan beberapa rumus untuk penghitungan pergerakan pointer mouse dengan menggunakan teori kecepatan serta analisa konsumsi daya dengan menggunakan teori daya (Power).
2.1.16.1 Teori Kecepatan Kecepatan partikel adalah laju (rate) perubahan posisi terhadap waktu. Dalam penelitian ini, partikel diibaratkan posisi ke berapa dari ujung kursor mouse pada pixel tertentu. Rumus kecepatan dari buku fisika karangan Halliday dan Resnick (1991, p45) adalah: v=
∆r pergeseran(vektor ) = ∆t selang waktu (skalar)
(2-3)
Karena kecepatan yang dimaksud adalah dalam bentuk skalar, maka arah diabaikan dan pergeseran yang biasa disebut dengan jarak dalam bentuk bilangan positif.
33 2.1.16.2 Teori Daya Pada bagian analisis dan evaluasi hasil percobaan akan membahas tentang konsumsi daya dari rangkaian hardware, sehingga memerlukan rumus daya. Arus yang mengalir melalui alat akan menyebabkan kehilangan energi dan energi yang hilang tersebut akan berubah menjadi energi panas. Rumus daya menurut Bueche (1996, p404), menyatakan bahwa : (2-4) dimana :
P = Daya / Power (Watt). V = Tegangan (volt). I = Kuat Arus (Ampere).
2.2
Teori-Teori Khusus Merupakan teori-teori khusus berhubungan langsung dengan komponenkomponen alat presentasi beserta program aplikasi yang akan dirancang.
2.2.1
Mikrokontroler AT89C51 Perbedaan mikrokontroler dengan mikroprosesor adalah terletak pada memori dan I/0 interface-nya. Mikrokontroler merupakan gabungan mikroprosesor, RAM (Random Access Memory), ROM (Read Only Memory) dan I/O (Input / Output) yang sudah dipaketkan dalam satu IC (Integrated Circuit). Mikrokontroler dapat dikatakan sebagai IC yang dapat
membantu
mengerjakan task
(tugas)
yang
membutuhkan
penanganan tingkat menengah. Sedangkan task yang membutuhkan
34 pemrosesan (processing) dan memori serta I/O yang sangat besar maka dibutuhkan mikroprosesor dengan RAM-ROM beserta I/O interface yang terpisah (diluar IC). Mikrokontroler yang dipakai dalam penelitian ini adalah MCS-51 atau MCS-52 keluaran Atmel Corporation dengan menggunakan teknologi Intel. Penulisan program dapat dilakukan pada program aplikasi Word Processor. Pada umumnya dilakukan di Notepad ataupun Textpad. Penulisannya menggunakan bahasa mikrokontroler Assembler Intel dan memiliki ciri khas pada headernya yaitu: $Mod51 atau $Mod52 yang menunjukkan
jenis
mikrokontroler
yang
digunakan.
Kemudian
dilanjutkan dengan $OBJECT serta ORG
yang akan menunjukkan alamat awal program ditulis. Program tersebut disimpan dalam file berextensi “.asm”. Mikrokontroler juga memiliki kelebihan yakni dapat melakukan komunikasi serial maupun paralel, mendukung DAC (Digital to Analog Converter) dan ADC (Analog to Digital Converter), terdapat dua pin untuk external interrupt, serta dapat membuat timer maupun counter.
35
Gambar 2.13. IC Mikrokontroler MCS-51/52 Pada gambar diatas menunjukkan tipe MCS-51/52 yang memiliki 40 pin. Seperti IC pada umumnya, mikrokontroler ini memiliki pin untuk sumber Vcc dan sebuah pin untuk ground. Karena mikrokontroler membutuhkan clock, maka terdapat 2 pin untuk dipasangkan kristal seperti pada gambar 2.2. Port yang dimiliki MCS-51/52 untuk I/O adalah sebanyak 4 port, antara lain P0, P1, P2, dan P3 dimana masing-masing port terdiri dari 8 pin (8 bit). Khusus pin pada port 3 untuk melakukan sharing dengan interrupt dan fungsi-fungsi lain, antara lain: RxD (komunikasi serial pin yang berperan sebagai penerima data atau input) pada pin P3.0, TxD (untuk komunikasi serial yang berperan sebagai transmit data atau output) pada P3.1, Int 0 (interrupt eksternal dengan index 0) pada P3.2, Int 1 (interrupt eksternal 1) pada P3.3, T0 (input
36 interrupt timer 0) pada P3.4, T1 (input interrupt timer 1) pada P3.5, WR (external data memory write strobe) pada P3.6, dan RD (ekternal data memory read strobe) pada P3.7. Untuk int 1 dan int 0 serta WR dan RD akan aktif apabila diberi tegangan logic low. Untuk mengaktifkan interrupt yang ada pada port 3 dilakukan dengan cara pemrograman, yaitu dengan mengaktifkan register Interrupt Enable (IE) yang terdiri dari:
dimana : EA= IE.7 = mengaktifkan maupun menonaktifkan semua interrupt. ET2 = IE.5 = enable/disable interrupt timer 2 (untuk seri 8052) ES = IE.4 = enable/disable interrupt serial port ET1 = IE.3 = enable/disable interrupt timer 1 EX1 = IE.2 = enable/disable external interrupt 1 ET0 = IE.1 = enable/disable interrupt timer 0 EX0 = IE.0 = enable/disable external interrupt 0.
Selain itu pin-pin diatas, terdapat pin-pin khusus antara lain pin RST (reset), VPP untuk logic high atau EA untuk logic low, PROG (logic low) atau ALE (logic high), dan PSEN (aktif low). Pin reset berfungsi untuk mereset semua aktivitas ROM dan kembali ke alamat ROM semula yaitu alamat 0000H. ALE (Address Latch Enable) menghasilkan pulsa untuk men-latch alamat bit rendah selama mengakses memori eksternal.
37 Pin ini juga sebagai input pulsa program (PROG) saat terjadi pemrograman EPROM. PSEN (Program Store Enable) adalah strobe untuk membaca memori program eksternal. EA (External Access) adalah untuk eksekusi program internal dan eksternal. Apabila pin tersebut mendapat logic high maka memori yang diakses adalah memori internal, akan tetapi apabila pin tersebut mendapat logic low, maka memori eksternal yang akan diakses. Pada MCS-51 memiliki 4 jenis addressing mode dasar, antara lain: 1. Immediate Constants Immediate Constants adalah memberikan nilai konstanta dengan diawali tanda #. Contoh:
MOV A, #100h
2. Direct Addressing Direct Addressing adalah memberikan alamat secara langsung yang merupakan alamat 8 bit. Pengalamat direct hanya dapat dilakukan pada RAM dari alamat 00 – 7Fh. Contoh:
MOV A, 40h
Contoh lain:
MOV 40h,#20h
3. Indirect Addressing Indirect Addressing adalah pengalamatan secara tidak langsung (tampung di register terlebih dahulu), bisa dilakukan di semua RAM Eksternal maupun Internal. Contoh:
MOV R0,#90h MOV @R0,#0FFh
38 Contoh lain:
MOV A,@R0
4. Register Addressing Register Addressing adalah pengalamatan yang melibatkan register (R0 s.d. R7). Contoh:
ADD A, R6
Selain itu mikrokontroler memiliki instruksi-instruksi yang berperan dalam pengalamatan khusus, antara lain: 1. Register Specific Instruction Register yang dipergunakan adalah Accumulator, data pointer, dan sejenisnya dimana tidak diperlukan byte penunjuk alamat. Contoh:
RR A
2. Indexed Addressing Dalam index addressing, hanya untuk membaca ROM. Pengalamatan ini menggunakan register 16 bit yaitu DPTR atau Program Counter. Selain itu juga dipergunakan dalam instruksi “case jump”. Contoh:
MOVC A,@A+DPTR
3. Stack Oriented addressing Stack Oriented addressing adalah memasukkan nilai dalam suatu register ke dalam stack. Contoh:
PUSH Acc POP SP
39 4. Logical Instruction Logical Instruction yaitu instruksi logic (AND, OR, XOR, NOT) yang menunjukkan operasi boolean. Contoh:
ANL A,#0Fh
5. Arithmetic Instruction Arithmetic Instruction adalah instruksi yang dipergunakan untuk mengoperasikan
proses
aritmatika
seperti
penjumlahan
dan
pengurangan. Contoh:
ADD A,#06h
6. Bit Addressing Bit Addressing adalah pengalamatan yang dilakukan per bit. Contoh:
2.2.2
SETB P0.1
ADC0808 ADC (Analog to Digital Converter) adalah suatu pengkonversi (converter) yang mengubah sinyal analog menjadi sinyal digital. ADC yang dipakai pada penelitian ini adalah ADC0808 (memiliki karakteristik yang sama dengan ADC0809). ADC ini memiliki 8 input yang dapat dipilih dan memiliki resolusi 8 bit output hasil konversi dari analog ke digital. ADC0808 / ADC0809 memiliki kecepatan konversi dan keakuratan yang tinggi, meminimalkan pengaruh suhu, serta konsumsi daya yang sedikit. Error yang tidak dapat diatur berkisar kurang lebih 1/2 LSB atau 1 LSB. Waktu konversi yang dibutuhkan adalah selama 100 µs.
40 Untuk memilih channel menggunakan Address Line, dimana A sebagai LSB dan C sebagai MSB-nya. Channel input dapat dipilih dari 0 sampai dengan 7 dan dipilih berdasarkan nilai address yang diberikan pada Address Line. Dalam melakukan konversi, ADC membutuhkan clock atau Osilator. Dengan adanya clock maka control dan timing pada ADC dapat dilakukan. Osilator / clock dapat dihasilkan dengan banyak cara. Yang digunakan pada rancangan mengambil contoh dari buku karangan Nalwan (2003, p139). Setelah itu, gerbang yang dipakai akan diubah menjadi gerbang NOT, karena secara ideal, fungsi digitalnya sama dengan gerbang NOR pada gambar. Berikut adalah gambar rangkaiannya. Vcc
330
Clock Clock output
1k 455 kHz 1k
1/6 U?
Gambar 2.14. Rangkaian Osilator penghasil clock untuk ADC
2.2.3
Gerbang Not 74LS04 Gerbang Not adalah suatu fungsi digital yang bertugas melakukan inversi atau membalikkan input yang diberikan. Tabel logikanya adalah sebagai berikut:
41 Tabel 2.1. Tabel Logika Gerbang Not
Gambar 2.15. Lambang Gerbang Not Seperti gerbang-gerbang lainnya, gerbang not dibuat dalam bentuk Integrated Circuit (IC). IC yang dipakai dalam rangkaian ini menggunakan tipe 74LS04 dimana dalam satu IC terdapat 6 buah gerbang Not dan sebuah ground dan Vcc. Masing-masing gerbang Not memiliki sebuah input (A) dan sebuah output (Y). Jadi total kaki yang ada pada IC 74LS04 sebanyak 14 pin.
Gambar 2.16. IC 74LS04
2.2.4
RS232 Data yang dikirim oleh mikrokontroler tidak dapat secara langsung berkomunikasi dengan komputer (PC) karena tegangan pada komputer sekitar ±12 Volt DC, sedangkan tegangan pada mikrokontroler
42 hanya 5 Volt DC. Jika hal ini dilakukan secara langsung, kemungkinan besar mikrokontroler akan mengalami kerusakan / terbakar karena kelebihan tegangan yang mengalir dari PC. Oleh karena itu diperlukan RS232 guna menjadi perantara komunikasi antara mikrokontroler dan PC. RS232 merupakan IC yang mendukung komunikasi serial, yang mana memiliki hubungan atau dapat dikatakan sebagai partner serial port interface pada komputer. RS232 yang akan dipergunakan adalah buatan perusahaan MAXIM dan menggunakan teknologi Texas Instruments. RS232 dapat juga dikatakan sebagai driver karena bersifat menguatkan arus dan tegangan. Kelemahan dari RS232 adalah memiliki jarak maksimum transmisi sebesar 50 feet (lebih kurang 15 meter) dengan kecepatan 20 kbps. Sinyal RS232 menggunakan transmisi tidak berimbang (Unbalanced Transmission) yang memiliki sifat bahwa untuk tegangan diatas +3 Volt maka diterjemahkan sebagai logic 0 (low) sedangkan untuk yang lebih kecil dari -3 volt diterjemahkan sebagai logic 1 (high).
Gambar 2.17. Rangkaian RS232
43 2.2.5
Mini Stick Mini stick adalah sebuah joystick berukuran kecil (mini) yang dipergunakan untuk menggerakkan pointer mouse berupa analog. Teknik yang dipakai adalah dengan menggunakan potensiometer pada gerakan vertikal dan horizontal. Potensiometer adalah sejenis resistor yang nilainya dapat berubah-ubah. Potensiometer memiliki 3 buah kaki, dengan kaki tengah yang dapat berfungsi sebagai output untuk mendapatkan nilai tegangan yang berbeda-beda. Potensiometer serupa dengan dua buah resistor yang terhubung seri dengan penambahan resistansi di satu resistor maka akan mengurangi resistansi di resistor lain dengan perubahan nilai resistansi yang sama. Vcc
Input analog 1 Vcc
input analog 2
Gambar 2.18. Simbol Potentiometer
2.2.6
Keypad Keypad merupakan sebuah istilah untuk tombol-tombol yang tersusun sedemikan rupa berbentuk matriks, sehingga setiap perubahan 1 bit dapat mewakili satu tombol. (Lihat gambar). Keypad menggunakan teknik walking, baik walking zero maupun walking one. Maksudnya adalah setiap satuan waktu, hanya tombol yang berada pada satu baris
44 atau satu kolom saja yang dapat aktif, sedangkan tombol yang lain pasif. Sejalan dengan perubahan waktu, maka bit atau nilai yang membuat tombol aktif akan berpindah. Karena perpindahannya sangat cepat, sehingga mengakibatkan semua tombol seolah-olah aktif pada waktu yang bersamaan.
Gambar 2.19. Diagram Keypad 2.2.7
Transmitter YTWS-433 Pada transmitter diperlengkapi modul frekuensi radio yang berfungsi untuk mengirimkan sinyal analog ke receiver. Modul yang digunakan adalah YTWS-433. Modul frekuensi radio YTWS ini melakukan transmisi pada suatu frekuensi tetap (fixed frequency) yang diset oleh waktu perangkat Surface Acoustic Wave (SAW).
Gambar 2.20. Diagram Blok YTWS-433
45 Penerapannya bisa menggunakan antena, sumber energi listrik dan sumber data. Modul YTWS transmitter dan YRWS receiver harus memiliki frekuensi yang sama agar dapat terjadi komunikasi. Sehingga modul ini berfrekuensi 433,92 Mhz dan dapat menggunakan antena dengan panjang 32 cm untuk pengiriman sinyal. Pada modul terdapat 2 buah pin untuk Vcc, 2 buah pin untuk Ground (GND) dan 2 buah pin masing-masing untuk RF output dan code input. Modul ini hanya dapat berkomunikasi secara simplex.
2.2.8
Receiver YRWS-433 Pada receiver diperlengkapi modul frekuensi radio yang berfungsi untuk menerima sinyal analog dari transmitter. Modul yang digunakan adalah YRWS-433. Modul frekuensi radio YRWS ini sesuai untuk penerimaan data modulasi digital ASK dari sebuah YTWS transmitter dalam frekuensi yang sama (pada modul ini 433,92 Mhz). Rancangannya yang pasif - bersensitivitas tinggi ini memiliki ukuran data rate baseboard sebesar 4800 bps. Modul RWS ini memiliki sebuah ASK Data Shaping Comparator (Pembanding bentuk data ASK). Sama dengan modul YTWS, modul ini juga harus berfrekuensi 433,92 Mhz agar dapat menerima sinyal frekuensi radio dan juga bisa menggunakan antena dengan panjang 32 cm untuk penerimaan sinyal. Pada modul terdapat 8 buah pin yaitu: 2 buah pin untuk Vcc, 3 buah pin untuk Ground (GND), sebuah pin untuk antena, dan 2 buah pin
46 masing-masing untuk digital output dan linear input. Modul ini hanya dapat berkomunikasi secara simplex.
Gambar 2.21. Diagram Blok YRWS-433
2.2.9
Struktur Windows Ketika data memasuki serial port (saat berkomunikasi dengan komputer), data mulai diolah oleh prosesor, maka terdapat dua hal penting yang perlu diperhatikan dalam pemrograman aplikasi yang akan dijalankan pada komputer, antara lain: mempelajari struktur dan cara kerja sistem operasi yang digunakan, device driver yang akan mengatur kerja perangkat keras pada komputer, sehingga memungkinkan terjadinya komunikasi antara remote dengan komputer pada saat presentasi. Berikut ini adalah beberapa bagian dari struktur windows yang dipergunakan dalam pembuatan program aplikasi, yaitu: sistem message pada windows, mouse dan keyboard driver, serta windows API.
2.2.9.1 Sistem Message pada Windows Pada dasarnya windows bekerja dengan melakukan pengiriman
message.
Windows
Message
(pesan)
adalah
47 merupakan komunikasi antara system environment dengan GUI (Graphical User Interface) sistem operasi yang merupakan hasil dari suatu event. Message akan ditampung pada System Message Queue (tempat penampungan message sementara pada sistem windows). Windows Message sangat bergantung pada tipe dari event yang terjadi dan juga data yang digunakan seperti posisi mouse (mouse position), posisi tombol (button position) oleh event tersebut. Event adalah interaksi yang terjadi antara system environment (Pengguna dan komputer) dengan aplikasi peranti lunak. Event dapat berupa klik, keypress, mouse move, dll. Dalam merespon setiap interaksi dari pemakai yang berupa pergerakan mouse dan penekanan tombol mouse, sistem operasi windows menggunakan event diatas serta nilai (value) yang dikirim dalam komunikasi yang terjadi antara pemakai dan perangkat keras komputer. Windows message berbentuk konstanta yang terdapat dalam Win32 Application Programming Interface (API) dalam sistem operasi windows. Win32 API adalah prosedur yang dapat digunakan berulang-ulang (reusable) oleh semua aplikasi yang dibangun dan berjalan di atas sistem operasi windows. Konstanta ini berupa nilai hexadecimal setelah dikonversi ke dalam sistem bilangan. windows message digunakan oleh fungsi-fungsi Win32 API yang khusus untuk menangani dan
48 menerima respon dari hasil interaksi pemakai seperti yang telah diterangkan diatas. Dan hal ini terjadi jika ada eksekusi event dalam lingkungan sistem operasi windows (windows system environment). Beberapa contoh konstanta yang digunakan dalam pengiriman message dalam sistem operasi windows adalah MOUSEEVENTF_LEFTDOWN MOUSEEVENTF_LEFTUP MOUSEEVENTF_RIGHTDOWN
= =
&H2, &H4,
=
&H8,
MOUSEEVENTF_RIGHTUP = &H10, yang dapat digunakan untuk menerima respon ataupun mengirim windows message melalui fungsi mouse_event dari Win32 API. Win32 API dalam melakukan pegiriman message ke dalam System Message Queue, selalu mengirim message berupa nilai dari message tersebut, sehingga setiap parameter yang digunakan dalam fungsi API dideklarasikan dengan keyword ByVal (By Value) agar nilainya saja yang dikirim.
2.2.9.2 Mouse Driver Mouse generasi sekarang adalah berdasarkan pada rancangan asli Microsoft yang diperkenalkan pertama kali pada bulan juni 1983. Rancangan tersebut (kini secara de facto menjadi standar industri) menggunakan sebuah interrupt software CPU dan satu set interrupt function calls untuk menginterpretasikan
49 data yang dihasilkan dari perangkat penunjuk (pointing device). Mouse Microsoft asli menggunakan sebuah card yang dipasang ke dalam sistem bus dan sebuah koneksi langsung ke mouse. Rancangan selanjutnya menggunakan koneksi serial, kecuali serial PS/2 IBM “pointing device port”. Terdapat
beragam
jenis
mouse
dipasaran,
seperti
menggunakan roda, bola, sinar infra merah untuk pergerakannya. Sistem lain menggunakan emulasi mouse secara software guna menerapkan perangkat keras khusus yang berbeda. Setidaknya ada satu program yang mengatur emulasi mouse pada sebuah joystick. Trackball dan joystick sangat bermanfaat untuk ruang meja yang kecil, Kebanyakan perangkat ini berkomunikasi dengan sistem melalui Microsoft mouse API. Pergerakan mouse didefinisikan dalam satuan mickeys (menurut Bill Gates, satuan ukuran ini diambil dari karakter kartun Mickey Mouse). Ada kira-kira 200 mickeys per inci setiap pergerakan mouse. Mouse menampung hasil perhitungan mickeys saat ini dan mengirim informasi ke driver mouse dalam interval yang teratur. Driver mouse mengubah hitungan mickey ke dalam pixel layar. Jumlah dari mickey yang diperlukan untuk menggerakkan satu pixel kursor dapat diatur melalui sebuah function call. Secara default perbandingan mickey dengan pixel berasio 1: 1 pada X axis (horizontal) dan 2: 1 pada Y axis (vertical).
50 Dalam bentuk grafik, kursor mouse dapat digerakkan 1 pixel dalam suatu waktu. Dalam bentuk text, kursor mouse biasanya menggerakkan satu sel karakter dalam suatu waktu. Contohnya pada layar Hercules dalam bentuk text, penambahan terkecil dari kursor mouse dapat menggerakkan 9 pixel secara horizontal dan 14 pixel secara vertikal. Ketika mouse digerakkan, kursor menggerakkan satu set kuantitas. Untuk memperoleh posisi yang terbaik dari kursor, rasio antara pergerakan mouse dan kursor harus kecil. Ini akan menyebabkan kesulitan untuk membuat penyesuaian besar dari posisi kursor tanpa disertai pergerakan mouse yang berlebihan. Untuk mengatasi masalah ini, beberapa driver mouse sederhana menerapkan sebuah “double speed threshold”. Mouse dan kursor bergerak dalam rasio 1:1 diatas kecepatan tertentu (mickeys per second) dan kemudian driver melipat-gandakan hitungan mickeys dua kali sebelum memprosesnya, secara efektif menggandakan kecepatan kursor. Driver mouse dual speed adalah hal yang umum. Solusi yang terbaik adalah driver “ballistik”. Driver mouse
mengontrol
hitungan
mickey
dan
memodifikasi
perhitungannya berdasarkan sebuah fungsi aritmatika atau tabel. Nilai perbandingan mickey per pixel divariasikan dalam rasio yang terpelan ke yang tercepat.
51 Jadi microsoft mouse driver bukan termasuk sesuatu pemasukan ulang yang mana sebuah fungsi driver tidak akan memanggil fungsi driver lainnya dan kembali ke kondisi sebelumnya. Mouse driver adalah driver yang melakukan konversi input dari perangkat keras mouse dengan melakukan inisialisasi dan pemanggilan driver's initialization routine. Initialization routine memanggil virtual mouse device (VMOUSE) untuk memastikan bahwa perangkat keras mouse tersebut ada. Jika mouse ada, routine tersebut menerima informasi tentang mouse tersebut, beserta tipe port yang digunakan (serial, bus, inport, dll) dan nomor port yang digunakan.
2.2.9.3 Keyboard Driver Keyboard driver adalah driver yang tergantung spesifikasi hardware.
Salah
satu
fungsi
keyboard
driver
yaitu
ScanCodeToVKeyEx adalah fungsi Win32 API yang berfungsi untuk menterjemahkan scan codes yang tergantung pada spesifikasi hardware ke standard virtual keys windows. Fungsi KeybdDriverVkeyToUnicode
bertanggung
jawab
untuk
menghasilkan karakter unicode yang sesuai dengan virtual key yang dihasilkan. Fungsi ini bergantung pada layout keyboard untuk menentukan format bahasa yang digunakan.
52 Sistem operasi menyediakan dukungan bahasa yang dapat digunakan oleh keyboard yang memiliki bahasa tertentu untuk menghasilkan tampilan yang dapat dipilih oleh pemakai atau oleh aplikasi. Aplikasi device driver dari keyboard menerima kode scan (scan code) dari keyboard, yang kemudian akan dikirim ke bagian keluaran (layout) dari keyboard dimana kode scan ini akan diterjemahkan ke dalam pesan (message) lalu dikirimkan ke bagian window yang sesuai dalam aplikasi yang dimiliki oleh system operasi. Kode scan (scan code) adalah kode yang diberikan kepada setiap key dari keyboard yang sifatnya unik. Kode ini adalah pengenal yang sangat bergantung pada key dari keyboard. Keyboard menghasilkan dua jenis kode scan ketika pemakai mengetikan sebuah key, satu kode saat pemakai menekan key dan yang lain saat pemakai melepas key tersebut. Aplikasi device driver dari keyboard menafsirkan kode scan dan menerjemahkan kode tersebut ke dalam virtual-key code (kode kunci abstrak), yang merupakan nilai yang bebas yang disediakan oleh system operasi dan menjadi pengenal dari key. Setelah menerjemahkan kode scan, bagian keluaran (layout) dari keyboard membentuk pesan (message) yang didalamnya terdapat kode scan, virtual-key code (kode kunci abstrak), dan informasi lain tentang penekanan key (keystroke), dan kemudian meletakan
53 pesan (message) tersebut kedalam system antrian pesan (system message queue). Sistem operasi memindahkan pesan tersebut dari system antrian pesan (system message queue) dan mengirim pesan tersebut ke antrian pesan (message queue) dari thread (prosedur yang memilki fungsi khusus) yang sesuai dari system operasi. Pada akhirnya, proses perulangan pesan (message loop) yang terdapat dalam thread memindahkan pesan
tersebut dan
mengirimkannya ke dalam prosedur yang sesuai yang dimiliki window untuk diproses. Gambar dibawah ini menggambarkan ilustrasi dari model input keyboard.
Gambar 2.22. Keyboard Input Model Blok diagram diatas terdiri dari bagian: Keyboard adalah perangkat keras untuk melakukan penekanan key (keystroke) pada tuts di keyboard untuk mengirimkan kode scan. Keyboard device driver, menerima kode scan yang dikirimkan oleh perangkat keras keyboard. Selanjutnya program aplikasi ini akan mengirim kode scan yang telah diterjemahkan menjadi pesan
54 (message) ke dalam system antrian pesan atau system message queue. System message queue, menerima pesan (message) ini dan kemudian mengirimkan pesan ini ke thread message queue. Thread message queue, mengirimkan pesan ini ke dalam proses perulangan pesan (thread message loop) di dalam thread. Window procedure, menerima pesan yang telah diproses oleh thread message loop.
2.2.9.4 Windows API Sistem operasi windows menyediakan suatu interface (antarmuka) yang dibuat oleh Microsoft guna memberikan dukungan terhadap sistem operasi windows. Microsoft Win32 Application Programming Interface (Win32 API) merupakan suatu prosedur yang dapat digunakan kembali (reusable) oleh program
aplikasi
yang
dirancang
atau
ditulis
dengan
menggunakan sistem operasi Windows 95 / 98, Windows NT, Windows 2000, serta Windows XP. Win32 API diperlengkapi dengan prosedur-prosedur yang mendukung penggunaan fasilitas grafik windows (Windows Graphical User Interfaces). Sehingga Win32 API dapat digunakan oleh semua aplikasi yang dibuat dengan berbasiskan sistem operasi windows.
55 Win32 API memungkinkan aplikasi yang dibuat untuk mengeksploitasi kekuatan dari windows 32-bit dari sistem operasi windows. Menggunakan Win32 API juga dapat mengembangkan program aplikasi yang dapat berjalan dengan baik pada semua versi windows berbasis 32-bit, sekaligus memperoleh berbagai keuntungan dari fitur-fitur yang tersedia dalam sistem operasi serta kemampuan yang unik pada setiap versi windows. Perbedaannya hanya terletak pada implementasi elemen-elemen pemrograman yang bergantung pada kemampuan dari fitur-fitur yang terdapat pada masing-masing platform windows yang digunakan. Win32 API terdiri dari beberapa kategori fungsi di bawah ini, yaitu: 1. Base Services. 2. Common Control Library. 3. Graphic Device Interface. 4. Network Services. 5. User Interface. 6. Windows Shell. Fungsi Base Services memberi akses kepada aplikasi untuk menggunakan sumber daya dari komputer dan fitur-fitur yang terdapat pada sistem operasi seperti memori, sistem file, devices (perangkat keras), proses, dan thread (suatu prosedur yang melaksanakan fungsi khusus untuk sistem operasi). Aplikasi
56 menggunakan fungsi ini untuk mengatur dan mengawasi berbagai sumber daya yang dibutuhkan untuk memenuhi tugas-tugas yang harus dilakukan oleh aplikasi tersebut. Sebagai contoh, aplikasi menggunakan manajemen memori untuk mengalokasikan memori yang digunakan oleh aplikasi. Manajemen proses dan fungsi sinkronisasi digunakan untuk mengkoordinasikan operasi yang dilakukan oleh multi aplikasi atau multi thread dalam mengeksekusi sebuah aplikasi. Fungsi file I/O menyediakan akses ke file, direktori, dan perangkat input / output (I/O). Fungsi ini juga memberi akses kepada aplikasi untuk menggunakan file dan direktori pada disk serta media penyimpanan lain pada komputer yang digunakan atau pada komputer lain yang terletak / terkoneksi dalam jaringan komputer. Fungsi file I/O mendukung berbagai jenis sistem file windows, termasuk sistem file FAT, sistem file CD-ROM (CDFS), dan NTFS. Common Control Library adalah kontrol yang membantu windows dalam bentuk file DLL (Dinamic Link Library atau Library Windows) yang merupakan bagian dari sistem operasi, yang
dapat
digunakan
oleh
seluruh
aplikasi.
Dengan
menggunakan Common Control Library akan membantu menjaga konsistensi aplikasi antarmuka pemakai (Application User Interface) dengan shell dan aplikasi lainnya. Common Control adalah kumpulan kontrol dalam sistem operasi windows yang
57 didukung oleh Common Control Library commctl32.dll. Common Control
DLL
meliputi
programming
interface
(program
antarmuka) yang digunakan oleh aplikasi untuk membuat dan melakukan manipulasi kontrol, seperti menerima input dari pemakai. Graphic Device Interface (GDI) menyediakan fungsi yang berhubungan dengan struktur yang digunakan oleh aplikasi untuk menghasilkan keluaran (output) grafis untuk monitor (display), printer,
dan
perangkat
keluaran
grafis
lainnya.
Dengan
menggunakan fungsi GDI, dapat digunakan untuk membuat garis, kurva, dan obyek gambar lainnya. Warna dan bentuk yang digambar sangat bergantung pada Object drawing yang terdapat dalam GDI. Network Services adalah fungsi layanan jaringan yang memberikan sarana komunikasi antar aplikasi pada komputer yang berbeda, yang mana terkoneksi dalam suatu jaringan. Fungsi ini dapat digunakan untuk membuat dan mengatur koneksi untuk penggunaan sumber daya secara bersamaan, seperti direktori dan printer dalam suatu jaringan komputer. Network Interfaces meliputi Windows Networking dan Network Management. Microsoft Windows 95 / 98, Windows NT, Windows 2000 dan Windows XP, mendukung berbagai jenis network API. Manajemen Jaringan (Network Management menyediakan fungsi untuk mengatur account pemakai dan sumber daya jaringan.
58 Windows Networking (WNet) adalah salah satu fungsi yang
disediakan
oleh
mengimplementasikan
Win32
jaringan
API
sehingga
dapat
dalam
aplikasi
tanpa
membutuhkan dukungan penyedia jaringan dan implementasi jaringan fisik. Fungsi antarmuka pemakai (User Interface) digunakan untuk
membuat
dan
mendaya-gunakan
windows
untuk
menampilkan output ke layar, prompt input dari pemakai dan mengerjakan tugas-tugas penting lainnya dalam mendukung interaksi dengan pemakai. Salah satu bentuk fungsi User Interface adalah input dari mouse dan keyboard yang diterima oleh aplikasi dalam
bentuk
pengiriman
pesan
(message).
Sistem
menterjemahkan pergerakan mouse (mouse movement), mengklik tombol mouse, dan penekanan tuts keyboard (keystrokes) untuk memberikan pesan masukan (input message) dan meletakkan message tersebut ke dalam System Message Queue untuk suatu aplikasi. Windows Shell adalah sebuah shell interface yang digunakan untuk mengorganisasikan semua objek yang digunakan oleh pemakai yang meliputi file, media penyimpan (storage devices), printer, dan sumber daya jaringan. Struktur penamaan dalam Windows Shell memiliki persamaan dengan struktur penamaan pada direktori dalam sistem file, dimana perbedaannya
59 adalah penamaan pada Windows Shell menggunakan nama objek, sedangkan pada struktur direktori menggunakan nama file.
2.2.10 Pemrograman Visual Basic Pembuatan aplikasi menggunakan bahasa pemrograman Microsoft Visual Basic 6.0 Enterprise Edition. Visual Basic merupakan salah satu bahasa pemrograman yang
berorientasi pada objek (Object-Oriented
Programming), dimana memiliki konsep modular programming, yaitu: kode-kode program dikelompokkan ke dalam modul-modul (objek-objek) yang terpisah-pisah. Setiap objek mengandung tiga hal utama (Kurniadi, 2000, p54), yaitu: Properti atau atribut adalah karakteristik atau sifat dari sebuah objek. Contohnya: warna teks adalah biru, ukuran teks, dll. Metode adalah serangkaian prosedur yang dimiliki oleh suatu objek yang akan dijalankan sesuai dengan respon yang diberikan oleh suatu perintah atau kejadian, misalnya: objek tombol EXIT memiliki metode untuk keluar dari aplikasi. Event adalah kejadian atau segala sesuatu yang dapat dialami oleh sebuah objek. Contohnya: mengklik tombol mouse padasebuah tombol, mengetik pada kotak teks. dll.
2.2.10.1 DLL dan Visual Basic Menurut Hadi (2001, p4), File library Windows (Dinamic Link Library / DLL) adalah kode yang sudah dikompilasi dan
60 dapat digunakan oleh program lain. Jika meletakkan fungsi dan subrutin ke dalam DLL, berarti fungsi dapat diakses oleh semua program pada saat yang bersamaan. DLL biasanya ditulis dengan bahasa C atau C++, Delphi atau bahasa lainnya yang mendukung sistem operasi windows. Dengan memanggil fungsi yang terdapat dalam DLL, dapat mengakses ribuan fungsi yang berhubungan dengan sistem windows, dengan kualitas terbaik yang pernah digunakan. File library windows yang digunakan dalam aplikasi alat ini adalah “User32.dll” yang berfungsi untuk menangani User Interface pada windows. Cara menggunakan fungsi-fungsi dalam file library windows adalah dengan menspesifikasikan di mana fungsi tersebut ditemukan dan menyediakan informasi yang dibutuhkan fungsi pada bagian pendeklarasian fungsi Windows API. Bentuk format pendeklarasian fungsi DLL pada Visual Basic 6.0 adalah sebagai berikut: Declare Function NamaFungsi Lib "NamaLibrary" [Alias "AliasFungsi"]
[([[ByVal/ByRef]
variabel
[As
type]
[,ByVal/ByRef] variabel [As type]]…)]] As Type (Hadi, 2001, hal. 5) Jika fungsi tersebut tidak mengembalikan nilai maka gantilah kata Function dengan kata Sub.
61 Tabel 2.2. Deklarasi Windows API Sintaks Declare
Keterangan Sintaks deklarasi fungsi atau prosedur
Function/Sub NamaFungsi
Nama fungsi yang ada dalam library
Lib
Sintaks deklarasi library
NamaLibrary
Nama library yang terdapat nama fungsi
Alias
Sintaks alias
AliasFungsi
Penamaan fungsi untuk membedakan fungsi yang sama
ByVal/ByRef
Tipe dari parameter fungsi
Variabel
Nama variable yang digunakan oleh fungsi
As type
Tipe variable
As Type
Nilai yang dikembangkan oleh fungsi
Contohnya adalah: 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). Visual
Basic
secara
default
menyertakan
program
pembantu yang disebut APIViewer (apiload.exe versi Visual Basic 6.0), biasanya ada dalam directory tools Visual Basic (Hadi, 2001, p16). Cara kerja program ini cukup sederhana yaitu dengan menyalin dan memindahkan nama fungsi, konstanta, dan tipe data
62 ke dalam kode program aplikasi yang akan dibuat (dapat dijalankan pada menu Add-In pada IDE Visual Basic)
2.2.10.2 Fungsi API dan Visual Basic Terdapat banyak sekali fungsi API yang bisa digunakan pada Visual Basic 6.0. Fungsi API yang digunakan pada aplikasi alat adalah: keybd_event, mouse_event, SetCursorPos, dan GetCursorPos. Fungsi-fungsi tersebut akan dijelaskan sebagai berikut (Hadi, 2001, pp108-pp126): Keybd_event, berfungsi mensimulasikan penekanan tombol atau melepaskan tombol dengan meletakkan event (kejadian) keyboard ke dalam stream input (semacam buffer penyangga). Keybd_event tidak mengembalikan nilai. Parameter pada Keybd_event adalah: •
bVk: kode tombol keyboard yang akan disimulasikan dengan penekanan atau pelepasan tombol.
•
bScan: set default ke 0 (digunakan oleh windows)
•
dwFlag:
kombinasi
dari
flag
KEYEVENTF_EXTENDEDKEY = awalan kode scan dengan nilai &HE0 dan flag KEYEVENTF_KEYUP = tombol yang dispesifikasikan dalam bVk yang sedang dilepaskan. Jika nilai ini tidak dispesifikasikan berarti tombol sedang ditekan.
63 •
dwExtraInfo: tambahan nilai 32 bit untuk event keyboard.
Mouse_event, berfungsi mengumpulkan input mouse dengan meletakkan informasi input mouse ke dalam stream input. Fungsi dapat mensimulasikan penginputan mouse. Fungsi ini tidak mengembalikan nilai. •
dFlags: Kombinasi flag untuk spesifikasi informasi input mouse yang akan ditempatkan pada stream input. Contoh:
beberapa
flagnya
seperti:
MOUSEEVENTF_LEFTDOWN, MOUSEEVENTF_RIGHTUP. •
dx: spesifikasi salah satu koordinat dari nilai mutlak xaksis dari pergerakan mouse atau jumlah pergerakan yang dihasilkan oleh x-aksis.
•
dy: spesifikasi salah satu koordinat dari nilai mutlak yaksis dari pergerakan mouse atau jumlah pergerakan yang dihasilkan oleh y-aksis.
•
dwData: dalam Windows NT / 2000, jika dwFlags mengandung
MOUSEEVENTF_WHEEL,
berarti
menspesifikasikan jumlah dari gerakan mouse (dalam satuan integer dari WHEEL_DELTA). Jika positif berarti menggerakkan ke depan / maju dan jika negatif berarti menggerakkan ke belakang/mundur. •
dwExtraInfo: tambahan nilai 32 bit untuk event mouse.
64 SetCursorPos
&
GetCursorPos,
berfungsi
mengatur
(SetCursorPos) dan mengambil (GetCursorPos) posisi kursor mouse. Fungsi ini mengembalikan nilai nol (0) jika terjadi kesalahan, dan jika berhasil akan mengembalikan posisi mouse yang dilewatkan dalam parameter lpPoint (Tipe data yang mengembalikan koordinat mouse).
2.2.10.3 Tipe Data Fungsi API pada Visual Basic Tipe data atau struktur data merupakan objek dalam program untuk menggabungkan beberapa relasi variabel dan salah satu komponen penting yang terkait dengan fungsi Windows API (Hadi, 2001, p303). Tipe data mengijinkan fungsi untuk menerima atau mengembalikan informasi yang sangat banyak, tanpa mengacaukan paramenter yang memanggilnya. Sintaks untuk mendefinisikan tipe data dalam Visual Basic 6.0 adalah seperti berikut: [(Public | Private)] Type nama_tipe Anggota1 As Tipe_data1 Anggota2 As Tipe_data2 …. End Type Keterangan: Public atau Private: jangkauan dalam program untuk tipe data
65 Nama_tipe: nama yang diberikan untuk tipe data Anggota1, Anggota2: nama anggota dari masing-masing tipe data. Tipe_data1, Tipe_data2: Tipe dari anggota (contoh: Byte, Integer, Long, String, dan tipe data lain yang telah didefinisikan sebelumnya)
2.2.10.4 Komunikasi Serial pada Visual Basic Komunikasi serial pada alat presentasi berawal dari sinyal gelombang radio yang dikirim oleh transmitter ke receiver yang berisi antarmuka RS232, yang mana dihubungkan ke port serial pada CPU komputer. Port serial yang juga dikenal sebagai COM port, merupakan salah satu cara berkomunikasi antara peralatan eksternal dengan komputer melalui sebuah program aplikasi. Pengontrolan komunikasi COM port (pengiriman dan penerimaan data) antara aplikasi dengan peralatan eksternal diatur dengan menggunakan MSComm32 ActiveX Communications Control yang tersedia pada Microsoft Visual Basic 6.0 Enterprise Edition. Pengaturan penghubungan atau pemutusan komunikasi pada COM port menggunakan PortOpen property dari MSComm control yang mana bernilai (Boolean)yaitu: True untuk membuka port dan False untuk menutup port. Input property digunakan untuk membaca data yang datang ke port, sedangkan Output
66 property digunakan untuk mengirimkan data ke port. Pengaturan COM port umumnya dalam bentuk string yang terdiri dari empat bagian yang berbeda, yaitu: Baud Rate adalah untuk pengaturan kecepatan penerimaan dan pengiriman data pada port yang diukur berdasarkan satuan bits per second/detik. Baud rate dapat di set antara 110 sampai 256000 bps tergantung pada chip UART yang digunakan pada sistem dan kecepatan yang terdapat pada peralatan eksternal. Parity adalah untuk pengaturan implementasi pendeteksian error / kesalahan. Dapat di set ke even, odd(O), mark(M), space(S), atau none(N) secara default. Data bits merepresentasikan pengaturan jumlah dari bit yang terkandung dalam setiap byte pengiriman / penerimaan dan dapat di set antara 4 sampai 8 (secara default: 8). Stop bits adalah untuk pengaturan jumlah bit yang memisahkan setiap byte data dari yang lainnya dan dapat di set ke 1, 1.5 atau 2 (secara default: 1).
Pada umumnya, pengaturan parameter komunikasi COM port di set secara default dalam bentuk: 9600,n,8,1. Pengaturan COM port dapat dimodifikasi mulai dari penggunaannya, set kode untuk komunikasi, dan memasukkan nilai data yang harus dikirimkan agar memungkinkan terbentuknya komunikasi dengan peralatan eksternal tersebut.
67
Gambar 2.23. MSComm control properties