Date post: | 25-Apr-2023 |
Category: |
Documents |
Upload: | khangminh22 |
View: | 0 times |
Download: | 0 times |
i
TUGAS AKHIR
PENGIRIM DAN PENAMPIL DATA PADA PRESENSI NIRKABEL
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Disusun oleh :
WILLYBRORDUS PRIMA ABINERI NIM : 055114032
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2010
ii
FINAL PROJECT
DATA SENDER AND VIEWER ON THE WIRELESS PRESENTION
Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree
In Electrical Engineering Study Program
WILLYBRORDUS PRIMA ABINERI NIM : 055114032
ELECTRICAL ENGINEERING STUDY PROGRAM SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY YOGYAKARTA
2010
v
PERNYATAAN KEASLIAN KARYA
“Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini tidak
memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan
dan daftar pustaka, sebagaimana layaknya karya ilmiah.”
Yogyakarta, 12 Juni 2010
Willybrordus Prima Abineri
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO :
BELIEVE WHAT YOU BELIEVE
‘coZ Nothing Impossible
Kupersembahkan karya tulis ini kepada :
Tuhan Yesus Kristus
Mama dan Adik – ku tercinta,
Seluruh keluarga yang telah mendukungku,
Kekasihku Fransiska Yeni Anggarini,
Almamaterku Teknik Elektro USD
vii
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Willybrordus Prima Abineri
Nomor Mahasiswa : 055114032
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul :
PENGIRIM DAN PENAMPIL DATA PADA PRESENSI NIRKABEL
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada
Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam
bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara
terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis
tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap
mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Yogyakarta,
(Willybrordus Prima Abineri)
viii
INTISARI
Pencatatan daftar kehadiran karyawan atau presensi pada instansi-instansi beragam bentuknya, baik secara manual menggunakan tenaga manusia ataupun secara otomatis dengan menggunakan teknologi yang ada dan perkembangan teknologi elektronika masa kini lebih mengarah pada kemudahan pemakaian serta kepraktisan suatu alat. Komunikasi nirkabel menjadi salah satu pilihan dalam komunikasi data. Kelebihan teknologi nirkabel memungkinkan pengguna untuk dengan mudah memindah-pasangkan alat di tempat yang diinginkan. Perancangan ini bertujuan untuk menghasilkan alat dan software yang dapat digunakan untuk mengirimkan, menerima, serta menampilkan data presensi karyawan secara nirkabel.
Perancangan perangkat keras meliputi pembuatan rangkaian pemancar dan rangkaian penerima serta menghubungkannya dengan komputer menggunakan kabel serial. Perancangan perangkat lunak meliputi pembuatan program pengendali pengiriman dan penerimaan, program penampil pada komputer. Pengujian dilakukan dengan melihat apakah data berhasil diterima atau tidak. Implementasi perancangan hardware menggunakan dua buah modul Transceiver 2,4GHz yaitu satu modul bertindak sebagai pemancar dan modul lain bertindak sebagai penerima, mikrokontroler AT89S51 sebagai pengendali pada modul pemancar dan penerima, serta port serial pada modul penerima untuk melihat data informasi yang telah dikirimkan dan pada modul pemancar untuk mengirimkan data dari komputer. Aplikasi penampil menggunakan visual basic 6.0 dan penyimpanan database menggunakan aplikasi sql server.
Alat ini telah diimplementasikan dan dilakukan pengujian. Hasil yang didapatkan adalah modul pengirim dapat bekerja dengan baik tetapi modul pemancar tidak dapat bekerja. Hal ini menyebabkan data tidak dapat dikirim dan ditampilkan pada program penampil. Terjadi galat sebesar 18,619% pada komunikasi data sehingga menyebabkan terjadinya penyimpangan data. Menggunakan hubungan serial dari komputer ke komputer, didapatkan bahwa aplikasi penampil dapat menampilkan data. Aplikasi masih memiliki kekurangan dalam hal penyimpanan waktu. Kata kunci : nirkabel, transceiver 2,4Ghz, AT89S51, VB 6.0, SQL Server
ix
ABSTRACT Employees track record in companies has variety ways, somehow it still use manual ways or it was already automatic. Technology inovation at now, it is direct to make a tool more easier to use and more practical. Wireless technology became one of that options. With wireless technology, users become easier to set and move tools to other place. This project plan have an object to create hardwares and softwares that can uses to sends, receives, and also to show the employees track record using wireless communication. Hardware design includes how to make transmitter circuit and receiver circuit connect to computer using serial cable. Software desaign includes transmitter and receiver controling programs, display program on computer. This system was implemented using two transceiver 2,4GHz module, one of module measures as a transmitter and other module measures as a receiver, microcontroller AT89S51 as controller for transmitter and receiver module, also serial port for seen information data that has been transmitted and port serial for transmitted from computer to module measures as a transmitter. The display program was used visual basic 6.0 and sql server as a storage database software. This project was implemented and tested. The test result is receiver module can work but transmitter module can’t work. This make transmitted data cannot received and diplayed on aplication. There was error 18,619% in data communication, this make data has been deviated. The aplication was tested with serial communication between computer to computer and the result is aplication can display the data. This aplication still have a lack in time storage. keywords : wireless, transceiver 2,4Ghz, AT89S51, VB 6.0, SQL Server
x
KATA PENGANTAR
Puji dan syukur penulis panjatkan kehadirat Tuhan yang Maha Esa atas berkat dan
rahmat-Nya yang telah diberikan kepada penulis sehingga dapat menyelesaikan tugas akhir
ini. Selama melaksanakan penyusunan tugas akhir ini, penulis tak jarang menemukan
berbagai macam hambatan dan kesulitan. Namun dengan rahmat Tuhan yang Maha Esa,
maka penulis pun dapat menyelesaikan tugas akhir ini dengan lancar.
Berkat dorongan dan dukungan yang positif serta kritik dan saran dari berbagai
pihak, penulis merasa sangat terbantu dalam mengerjakan tugas akhir dengan judul
“PENGIRIM DAN PENAMPIL DATA PADA PRESENSI NIRKABEL”. Dengan
selesainya Tugas Akhir ini, penulis mengucapkan banyak terima kasih kepada :
1. Yosef Agung Cahyanta, S.T., M.T. selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
2. Martanto, S.T, M.T, selaku pembimbing tugas akhir yang dengan penuh
kesabaran membimbing, memberi saran dan kritik yang membantu penulis
dalam menyelesaikan tulisan ini.
3. Mama Melania Enni Susianti, adikku Antonie Michael Verstraten yang selalu
memberi ide yang aneh-aneh, serta keluargaku yang telah memberikan
dorongan dan doanya.
4. Fransiska Yeni Anggarini yang selalu menemaniku dalam suka dan duka.
5. Seluruh dosen teknik elektro dan laboran yang memberikan ilmu dan
pengetahuan kepada penulis selama kuliah.
6. Teman-teman Teknik Elektro angkatan 2005 atas segala dukungan dan
bantuannya.
xi
7. Pihak-pihak yang tidak dapat penulis sebutkan satu-persatu, yang telah
membantu dalam penyusunan tugas akhir ini.
Sekalipun sudah berusaha sungguh-sungguh menyiapkan tugas akhir ini, penulis
masih merasa memiliki banyak kekurangan dan ketidaksempurnaan. Oleh karena itu,
penulis mengharapkan kritikan dan saran yang membangun dalam penyempurnaan
penulisan-penulisan selanjutnya. Akhir kata, penulis berharap semoga tugas akhir ini dapat
memberikan sedikit sumbangan untuk ilmu pengetahuan.
Yogyakarta, 12 Juni 2010
Penulis
xii
DAFTAR ISI
HALAMAN JUDUL.................................................................................................................
HALAMAN JUDUL (INGGRIS) ...........................................................................................
HALAMAN PERSETUJUAN ................................................................................................
HALAMAN PENGESAHAN .................................................................................................
HALAMAN PERNYATAAN KEASLIAN KARYA ...........................................................
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ......................................................
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS ...............................................................................
INTISARI .................................................................................................................................
ABSTRACT ...............................................................................................................................
KATA PENGANTAR .............................................................................................................
DAFTAR ISI ...........................................................................................................................
DAFTAR GAMBAR ...............................................................................................................
DAFTAR TABEL ....................................................................................................................
DAFTAR LAMPIRAN ...........................................................................................................
BAB I. PENDAHULUAN ...................................................................................................
1.1 Judul ...............................................................................................................................
1.2 Latar Belakang ...............................................................................................................
1.3 Rumusan Masalah ..........................................................................................................
1.4 Batasan Masalah ............................................................................................................
1.5 Tujuan dan Manfaat ......................................................................................................
1.6 Metodologi Penelitian ....................................................................................................
BAB II. DASAR TEORI .......................................................................................................
2.1 Mikrokontroler AT89S51 ..............................................................................................
2.1.1 Fitur yang Dimiliki AT89S51 ............................................................................
2.1.2 Fungsi Masing-masing Pin AT89S51 ................................................................
2.1.3 Organisasi Memori AT89S51 ............................................................................
2.1.3.1 Memori Data ........................................................................................
2.1.3.1.1 RAM Internal .......................................................................
2.1.3.1.2 SFR (Special Function Register) ..........................................
i
ii
iii
iv
v
vi
vii
viii
ix
x
xii
xv
xviii
xix
1
1
1
2
3
3
4
5
5
5
5
8
9
9
10
xiii
2.1.3.2 Memori Program ..................................................................................
2.1.4 Rangkaian Oscillator ........................................................................................
2.1.5 Mekanisme Reset ...............................................................................................
2.2 Modul DX-24 ................................................................................................................
2.2.1 Konfigurasi Modul Transceiver 2,4 GHz ..........................................................
2.2.2 Pin I/O Modul Transceiver 2,4 GHz .................................................................
2.3 Komunikasi Serial menggunakan RS232 dengan 9 pin ................................................
2.4 Pemrograman Visual Basic ............................................................................................
2.4.1 Langkah – langkah untuk Mengembangkan Aplikasi .......................................
2.4.2 Tampilan Layar Visual Basic .............................................................................
2.5 Microsoft SQL Server ....................................................................................................
BAB III. RANCANGAN PENELITIAN ..............................................................................
3.1 Diagram Blok ................................................................................................................
3.2 Perancangan Perangkat Keras (Hardware) ...................................................................
3.2.1 Rangkaian Reset pada Mikrokontroler ..............................................................
3.2.2 Rangkaian Osilator pada Mikrokontroler ..........................................................
3.2.3 Perancangan Mikrokontroler dengan Modul DX-24 sebagai
Modul Pemancar dan Modul Penerima .............................................................
3.2.4 Rangkaian Pengubah Level Tegangan TTL menjadi Level Tegangan
RS232 ................................................................................................................
3.3 Perancangan Perangkat Lunak (Software) .....................................................................
3.3.1 Format Data Serial pada Pengirim dan Penerima ..............................................
3.3.2 Inisialisasi Modul DX-24 ..................................................................................
3.3.3 Diagram Alir Program Utama Pemancar pada Modul Pemancar ......................
3.3.4 Diagram Alir Program Utama Penerima pada Modul Penerima .......................
3.3.5 Diagram Alir Subrutin Penerimaan Data melalui Port Serial ...........................
3.3.6 Diagram Alir Subrutin Pengiriman Data melalui Port Serial ...........................
3.3.7 Perancangan Software pada Visual Basic 6.0 ....................................................
3.3.7.1 Cara Kerja Program .............................................................................
3.3.7.2 Tampilan Utama pada Program Visual Basic 6.0 ................................
3.3.7.3 Tampilan Menu pada Program ............................................................
3.3.7.4 Sinkronisasi Program dengan Data Masukan ......................................
BAB IV. HASIL DAN PEMBAHASAN ...............................................................................
12
12
12
13
14
15
16
18
18
19
20
22
22
23
23
24
25
25
26
27
27
30
32
34
34
35
35
36
38
40
42
xiv
4.1 Pengujian Alat ...............................................................................................................
4.1.1 Pengujian Rangkaian Mikrokontroler ................................................................
4.1.2 Pengujian Rangkaian Pengubah Level Tegangan TTL menjadi
Level Tegangan RS232 ......................................................................................
4.2 Pengujian Pengiriman dan Penerimaan Data .................................................................
4.2.1 Pengujian Komunikasi Serial Menggunakan Serial Hubungan
Komputer-Komputer ..........................................................................................
4.2.2 Pengujian Komunikasi dari Komputer ke Mikrokontroler ................................
4.2.3 Pengujian Komunikasi dari Mikrokontroler ke Komputer ................................
4.2.4 Pengujian Penerimaan Data dari Pengirim dengan Nilai Data
Ditentukan .........................................................................................................
4.2.5 Pengujian Pengiriman dan Pengiriman Menggunakan DX-24 ..........................
4.3 Pengamatan pada Modul Pemancar dan Penerima ........................................................
4.3.1 Modul Pemancar ...............................................................................................
4.3.2 Modul Penerima ...............................................................................................
4.4 Pengujian Aplikasi Nirkabel .........................................................................................
4.5 Kekurangan pada Aplikasi Penampil ............................................................................
4.5.1 Database “waktu” .............................................................................................
4.5.2 Form Utama ......................................................................................................
BAB V. KESIMPULAN DAN SARAN ...............................................................................
5.1 Kesimpulan ....................................................................................................................
5.2 Saran ..............................................................................................................................
DAFTAR PUSTAKA ..............................................................................................................
LAMPIRAN .............................................................................................................................
43
43
44
44
45
47
47
50
50
50
50
53
55
63
63
64
65
65
65
66
67
xv
DAFTAR GAMBAR
Gambar 1.1 Diagram blok keseluruhan rangkaian ...............................................................
Gambar 2.1 Susunan Pin AT89S51 ......................................................................................
Gambar 2.2 Peta memory RAM ...........................................................................................
Gambar 2.3 Special Functions Register (SFR) ....................................................................
Gambar 2.4 Program Status Word (PSW) ...........................................................................
Gambar 2.5 Rangkaian Oscillator ........................................................................................
Gambar 2.6 Rangkaian Reset ................................................................................................
Gambar 2.7 Modul DX-24 ....................................................................................................
Gambar 2.8 Pin pada DX-24 ................................................................................................
Gambar 2.9 RS232C dengan 9 pin .......................................................................................
Gambar 2.10 Jendela pemilihan Project .................................................................................
Gambar 2.11 Tampilan program Visual Basic 6.0 .................................................................
Gambar 3.1 Diagram blok modul pemancar .......................................................................
Gambar 3.2 Diagram blok modul penerima .........................................................................
Gambar 3.3 Rangkaian reset pada mikrokontroler ...............................................................
Gambar 3.4 Rangkaian osilator pada mikrokontroler ..........................................................
Gambar 3.5 Rangkaian antarmuka modul DX-24 dengan mikrokontroler ..........................
Gambar 3.6 Konfigurasi RS232 pada modul pemancar .......................................................
Gambar 3.7 Konfigurasi RS232 pada modul penerima ........................................................
Gambar 3.8 Diagram alir subrutin inisialisasi modul pemancar DX-24 ..............................
Gambar 3.9 Diagram alir subrutin inisialisasi modul penerima DX-24 ...............................
Gambar 3.10 Diagram alir program utama mikrokontroler sebagai modul pemancar ...........
Gambar 3.11 Diagram alir subrutin pengiriman data ke modul DX-24
(Subrutin kirim_data) ........................................................................................
Gambar 3.12 Diagram alir program utama penerima pada modul penerima .........................
Gambar 3.13 Diagram alir subrutin penerimaan data ke modul DX-24
(Subrutin terima_data) ......................................................................................
Gambar 3.14 Diagram alir subrutin port serialke mikro ........................................................
Gambar 3.15 Diagram alir subrutin mikro ke port serial .......................................................
Gambar 3.16 Struktur direktori dan sub direktori untuk penyimpanan .................................
3
6
9
10
11
12
13
14
16
17
19
19
22
22
24
24
25
26
26
30
30
31
32
33
33
34
34
35
xvi
Gambar 3.17 Diagram Alir program ......................................................................................
Gambar 3.18 Bentuk tampilan Form Utama yang siap digunakan ........................................
Gambar 3.19 Rancangan tampilan Form Utama saat dijalankan ...........................................
Gambar 3.20 Rancangan tampilan Form Penambahan Data Karyawan ................................
Gambar 3.21 Rancangan tampilan Form Penghapusan Data Karyawan ................................
Gambar 3.22 Rancangan tampilan Form Pengubahan Data Karyawan .................................
Gambar 3.23 Rancangan tampilan Form Pencarian Data Karyawan .....................................
Gambar 3.24 Rancangan tampilan Form Cetak Harian .........................................................
Gambar 3.25 Rancangan tampilan Form Cetak Bulanan .......................................................
Gambar 3.26 Hubungan antara Input, Database, dengan Penampil ......................................
Gambar 4.1 Modul Pemancar ...............................................................................................
Gambar 4.2 Modul Penerima ...............................................................................................
Gambar 4.3 Pengiriman Data menggunakan aplikasi Visual Basic 6.0 ...............................
Gambar 4.4 Penerimaan Data menggunakan aplikasi Visual Basic 6.0 ...............................
Gambar 4.5 Penerimaan Data menggunakan aplikasi CodeVision AVR ..............................
Gambar 4.6 Error yang terjadi secara acak bila menggunakan aplikasi Visual Basic 6.0 ....
Gambar 4.7 Hasil Pengujian Baudrate .................................................................................
Gambar 4.8 Pengujian menggunakan nilai baudrate yang berbeda .....................................
Gambar 4.9 Hasil Penerimaan Data pada Komputer ...........................................................
Gambar 4.10 Hasil Pengamatan pada port 1.0 .......................................................................
Gambar 4.11 Hasil Pengamatan pada port 1.4 .......................................................................
Gambar 4.12 Hasil Pengamatan pada port 1.5 .......................................................................
Gambar 4.13 Hasil Pengamatan pada port 1.6 .......................................................................
Gambar 4.14 Hasil Pengamatan pada port 1.7 .......................................................................
Gambar 4.15 Pengamatan Gelombang Keluaran pada Port 1.0 dan Port 1.4
pada Pemancar .................................................................................................
Gambar 4.16 Hasil Pengamatan pada port 1.0 .......................................................................
Gambar 4.17 Hasil Pengamatan pada port 1.4 .......................................................................
Gambar 4.18 Hasil Pengamatan pada port 1.5 .......................................................................
Gambar 4.19 Hasil Pengamatan pada port 1.6 .......................................................................
Gambar 4.20 Hasil Pengamatan pada port 1.7 .......................................................................
Gambar 4.21 Pengamatan Gelombang Keluaran pada Port 1.0 dan Port 1.4
pada Penerima ..................................................................................................
36
37
38
38
38
39
39
39
40
40
42
42
45
45
45
46
48
48
49
51
51
51
52
52
53
53
54
54
54
55
55
xvii
Gambar 4.22 Tabel karyawan pada database MyData ...........................................................
Gambar 4.23 Penambahan data ..............................................................................................
Gambar 4.24 Hasil penambahan data .....................................................................................
Gambar 4.25 Pemanggilan data dan pengisian .......................................................................
Gambar 4.26 Hasil perubahan pada no identitas 011001100 .................................................
Gambar 4.27 Hasil perubahan database pada no identitas 011001100 ..................................
Gambar 4.28 Hasil pencarian menggunakan pilihan jenis kelamin “Perempuan” .................
Gambar 4.29 Hasil pencarian menggunakan pilihan jenis kelamin “Laki-laki” ....................
Gambar 4.30 Hasil pencarian jika menggunakan nomor “114” dari no “055114032” ..........
Gambar 4.31 Penghapusan data ..............................................................................................
Gambar 4.32 Data 01 1001 100 hilang ...................................................................................
Gambar 4.33 Laporan harian ..................................................................................................
Gamber 4.34 Tampilan bila data tidak ada .............................................................................
Gambar 4.35 Laporan bulanan ...............................................................................................
Gambar 4.36 Tampilan Form Utama .....................................................................................
56
56
57
57
58
58
59
59
60
60
61
61
62
62
63
xviii
DAFTAR TABEL
Tabel 2.1 Fungsi lain P1.0 dan P1.1 ............................................................................................
Tabel 2.2 Fungsi khusus Port 3 ....................................................................................................
Tabel 2.3 Konfigurasi data untuk inisialisasi[6] ..........................................................................
Tabel 2.4 Pin I/O modul Transceiver 2,4 GHz[7] .......................................................................
Tabel 2.5 Pin-pin DB9 .................................................................................................................
Tabel 3.1 Struktur direktori dan fungsinya ..................................................................................
Tabel 4.1 Hasil Pengujian Hardware Mikrokontroler ..................................................................
Tabel 4.2 Hasil Pengujian Rangkaian Pengubah .........................................................................
Tabel 4.3 Hasil Pengujian Komunikasi Komputer ke Mikrokontroler ........................................
7
7
15
16
17
35
43
44
47
xix
DAFTAR LAMPIRAN
PROGRAM PENGUJIAN KONEKSI KOMPUTER
KE MIKROKONTROLER .....................................................................................
PROGRAM PENGUJIAN KONEKSI MIKROKONTROLER
KE KOMPUTER .....................................................................................................
PROGRAM PENGUJIAN PENGIRIMAN NILAI DATA DITENTUKAN .........
PROGRAM MODUL PEMANCAR ......................................................................
PROGRAM MODUL PENERIMA ........................................................................
PERANCANGAN HARDWARE ............................................................................
PERANCANGAN SOFTWARE .............................................................................
DATASHEET ...........................................................................................................
Lampiran 1
Lampiran 2
Lampiran 3
Lampiran 4
Lampiran 5
Lampiran 6
Lampiran 7
Lampiran 8
1
BAB I
PENDAHULUAN
1.1 Judul Pengirim dan Penampil Data pada Presensi Nirkabel
1.2 Latar Belakang Pencatatan daftar kehadiran karyawan atau presensi pada instansi-instansi
memiliki beragam bentuknya. Ada yang secara manual menggunakan tenaga manusia
ataupun secara otomatis dengan menggunakan teknologi yang ada. Perkembangan
teknologi elektronika masa kini lebih mengarah pada timbulnya kecenderungan untuk
membuat kegiatan manusia menjadi lebih mudah dan praktis, salah satunya dalam hal
komunikasi data. Dalam komunikasi data, terdapat dua macam teknik komunikasi
yaitu dengan menggunakan kabel atau tanpa kabel.
Komunikasi tanpa kabel (nirkabel) atau disebut wireless adalah teknologi
yang menghubungkan dua piranti untuk bertukar data tanpa media kabel. Data
dipertukarkan melalui media cahaya tertentu (seperti teknologi infra merah pada TV)
atau dengan gelombang radio melalui udara (seperti bluetooth pada komputer dan
ponsel) dengan frekuensi tertentu. [1]
Kelebihan teknologi ini adalah menghilangkan penggunaan kabel yang bisa
mengganggu estetika dan menghilangkan kerumitan saat pemasangan. Selain itu,
teknologi nirkabel memungkinkan pengguna untuk dengan mudah memindah-
pasangkan alat di tempat yang diinginkan dengan batasan maksimal dari jangkauan
komponen yang digunakan.
Salah satu komponen pada teknologi komunikasi nirkabel adalah
transceiver. Transceiver adalah sebuah perangkat elektronik yang dapat digunakan
untuk menghubungkan sebuah komputer ke sebuah jaringan dengan teknologi
baseband sehingga komputer tersebut dapat mentransmisikan dan menerima sinyal di
dalam jaringan tersebut. [1]
Salah satu cara penampilan data dari transceiver ke penampil adalah dengan
penggunaan interface kabel serial RS232. Penggunaan interface kabel serial RS232
2
dikarenakan pada kebanyakan komputer sekarang hanya disediakan port serial dan usb
(Universal Serial Bus) saja sedangkan port paralel sudah mulai dihilangkan. Selain
itu, saat ini penggunaan mikrokontroler semakin populer. Kebanyakan mikrokontroler
sudah dilengkapi dengan SCI (Serial Communication Interface) yang dapat digunakan
untuk komunikasi dengan port serial komputer.
Dalam penulisan tugas akhir ini, pengiriman data digital yang dilakukan
adalah dengan menggunakan metode pengiriman secara serial. Pada pengiriman data
secara serial, data dikirim satu persatu, bergantian perbit data. Keunggulan pengiriman
data secara serial dibanding paralel adalah lebih menghemat jalur data karena pada
pengiriman data secara paralel, data dikirimkan sekaligus bersama-sama.
Untuk dapat mengirimkan data serial melalui udara diperlukan suatu device
yang dapat melakukan proses penumpangan data serial digital ke frekuensi pembawa
dengan frekuensi yang lebih tinggi untuk kemudian dipancarkan ke udara. Salah satu
contoh alat yang dapat melakukan hal tersebut adalah modul transceiver DX-24.
Modul tersebut dapat mengirimkan dan menerima data serial melalui media udara,
dengan kecepatan 1Mbps atau 250Kbps dengan range frekuensi 2.4-2.524 GHz.[2]
Karena alasan tersebut maka pada penulisan tugas akhir ini digunakan
modul transceiver DX-24 yang berfungsi sebagai pengirim dan penerima data dari
dan ke mikrokontroler. Penggunaan modul transceiver DX-24 diharapkan dapat
mempermudah presensi karyawan pada instansi-instansi yang ada.
1.3 Rumusan Masalah Di dalam penulisan ini, penulis telah menyusun beberapa masalah yang berkaitan
dengan Pengirim dan Penampil Data pada Presensi Nirkabel:
1. Bagaimana mengolah data yang besarnya 9 digit desimal?
2. Bagaimana cara mengirimkan data serial dari pemancar ke penerima?
3. Bagaimana menyelaraskan pengiriman data dari pemancar ke penerima?
4. Bagaimana cara mengolah data masukan dan keluaran pada mikrokontroler?
5. Bagaimana cara menghubungkan mikrokontoler dengan komputer
menggunakan kabel serial RS-232 sehingga dapat ditampilkan ke komputer?
3
1.4 Batasan Masalah Pada penulisan Tugas Akhir mengenai Pengirim dan Penampil pada Presensi Nirkabel
ini, dibuat batasan masalah yang terdiri dari:
1. Merupakan modul pengirim dan modul penerima DX-24.
2. Mengirimkan, menerima serta menampilkan data identitas karyawan.
3. Jumlah digit karyawan adalah sembilan (9) angka desimal dan data dikirimkan
secara serial.
4. Sistem kendali pengiriman dan penerimaan data dirancang menggunakan
mikrokontroler AT89S51.
5. Pada bagian penerima, output ditampilkan ke komputer menggunakan software
Visual Basic 6.0.
Sehingga apabila digambarkan menggunakan diagram blok, akan tampak seperti
gambar 1.1 berikut ini:
Gambar 1.1 Diagram blok keseluruhan rangkaian
Dalam pembuatan tugas akhir ini, penulis memberi batasan pada pengirim, penerima,
dan penampil saja. Sehingga pada bagian pembaca barcode, penulis tidak
membahasnya dalam penyusunan tugas akhir ini.
1.5 Tujuan dan Manfaat Perancangan ini bertujuan untuk menghasilkan alat dan software yang dapat
digunakan untuk mengirimkan, menerima, serta menampilkan data presensi karyawan
secara nirkabel. Masukan dari alat ini adalah data yang diterima secara serial sehingga
nantinya alat ini dapat digabungkan dengan alat lainnya yang berbasiskan pengiriman
data secara serial yaitu pembaca barcode.
Sedangkan manfaat pembuatan Tugas Akhir ini adalah :
1. Dapat mengirimkan, menerima, serta menampilkan kode data identitas karyawan
yang berisi sembilan digit desimal.
Pembaca barcode Mikrokontroler
Modul Pemancar Modul Penerima
Mikrokontroler Komputer
4
2. Mempermudah sistem presensi sehingga dapat mengefisienkan waktu dan
mempermudah peletakan saat pemasangan.
3. Dapat digunakan sebagai salah satu aplikasi presensi untuk perpustakaan,
perusahaan, apotik, supermarket, dan lain-lain.
4. Memberikan tambahan di bidang ilmu pengetahuan dan teknologi sehingga bisa
dimanfaatkan lebih lanjut demi kepentingan bersama.
1.6 Metodologi Penelitian Penulisan skripsi ini menggunakan metode :
1. Studi pustaka mengenai permasalahan yang ada menggunakan buku-buku dan
jurnal-jurnal serta mempelajari cara kerja dan cara merencanakan serta
membuat alat tersebut.
2. Perancangan perangkat keras dan perangkat lunak.
Perancangan perangkat keras meliputi pembuatan rangkaian pemancar dan
rangkaian penerima serta menghubungkannya dengan komputer menggunakan
kabel serial, sedangkan perancangan perangkat lunak meliputi pembuatan
program pengendali pengiriman dan penerimaan, program penampil pada
komputer.
3. Pembuatan peralatan untuk setiap bagian dari sistem serta diuji kesesuaiannya
dan disusun sebagai satu kesatuan utuh.
4. Pengujian alat.
Pengujian alat dalam tugas akhir ini menggunakan masukan dari komputer lain.
Komputer tersebut nantinya akan dihubungkan ke mikrokontroler
menggunakan kabel serial RS232. Program pada komputer yang digunakan
dibuat agar bisa mengirimkan data serial sebesar 9 digit desimal. Hal ini
dimaksudkan sebagai pengganti pembaca barcode yang dibuat secara terpisah.
5. Analisis data yang diperoleh dari pengujian alat.
6. Membuat kesimpulan dari alat dan software yang dirancang.
5
BAB II
DASAR TEORI
2.1. Mikrokontroller AT89S51 AT89S51 adalah mikrokontroller 8 bit yang dibuat dengan teknologi
nonvolatile memory oleh Atmel, sebuah perusahaan yang menguasai teknologi flash
memory. Mikrokontroler ini dilengkapi dengan 4 Kbyte flash PEROM
(Programmable and Eraseable Read Only Memory).
Teknologi flash memory ini memungkinkan untuk dilakukan penyimpan
program dalam media penyimpanan internal, membaca program yang telah
disimpan, menghapus maupun memprogram kembali dengan lebih mudah dan
cepat. Mikrokontroler ini mempunyai kemampuan hapus/tulis kurang lebih 1000
kali, hal ini membuat mikrokontroler ini menjadi lebih fleksibel untuk digunakan
dalam berbagai sistem terutama sistem yang akan terus dikembangkan.
Mikrokontroler AT89S51 merupakan anggota keluarga MCS–51, sebuah keluarga
mikrokontroler yang dipelopori oleh perusahaan intel dengan memproduksi
mikrokontroler 8051. [3]
2.1.1.Fitur Yang Dimiliki AT89S51 Fasilitas yang dimilki mikrokontroler ini antara lain 4 Kbyte ROM, 128
Byte RAM, 4 buah I/O Port masing – masing 8 bit, 2 buah timer 16 bit, Serial
interface, 64 Kbyte External Data Memory Spaces, Boolean processor (pada
operasi bit), dan 210 lokasi yang dapat dialamati per bit.
2.1.2 Fungsi Masing-masing Pin AT89S51 Pada gambar 2.1 memperlihatkan susunan pin AT89S51. Nama dan fungsi pin yang
terdapat pada mikrokontroler AT89S51 berbeda-beda.
6
Gambar 2.1 Susunan Pin AT89S51
Nama dan fungsi pin pada mikrokontroler AT89S51, antara lain:
1. VCC – Pin 40
Berfungsi sebagai sumber tegangan +5V.
2. GND – Pin 20
Berfungsi sebagai pentanahan (ground).
3. PORT 0 - Pin 1 sampai Pin 8
Port 0 adalah masukan/keluaran 8 bit dengan nama P0.0-P0.7. Jenisnya cerat
terbuka masukan dua arah (open drain bi directional I/O port). Jika Port 0
berlogika 1, maka dapat digunakan sebagai masukan yang mempunyai
impedansi tinggi. Port 0 membutuhkan resistor pullup untuk melakukan fungsi
sebagai multipleks antara byte alamat rendah (A0-A7) dan data (D0-D7) pada
saat mengakses memori program atau data eksternal dan sebagai masukan byte
kode program selama pemrograman flash memori (memori program internal
atau onchip) dan keluaran saat verifikasi.
4. PORT 1 - Pin 32 sampai Pin 39
Port 1 adalah masukan/keluaran 8 bit dengan nama masing-masing P1.0-P1.7
yang bersifat dua arah. Port 1 sudah dipasang resistor pullup secara internal.
Jika logika satu dituliskan pada Port 1, maka keluaran akan berlogika satu dan
dapat digunakan sebagai masukan. Tabel 2.1 menunjukkan fungsi lain dari port
1.0 dan port 1.7.
AT89S51
9
181920
293031
4012345678
2122232425262728
1011121314151617
3938373635343332
RST
XTAL2XTAL1GND
PSENALE/PROG
EA/VPP
VCCP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7
P2.0/A8P2.1/A9
P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15
P3.0/RXDP3.1/TXDP3.2/INTOP3.3/INT1P3.4/TOP3.5/T1P3.6/WRP3.7/RD
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
7
Tabel 2.1 Fungsi lain P1.0 dan P1.1
Pin Fungsi P1.0 T2 (masukan pencacah eksternal ke Timer/Counter 2) keluaran clock. P1.1 T2EX (Timer/Counter reload trigger dan kendali arah)
5. PORT 2 - Pin 21 sampai Pin 28
Port 2 sama dengan Port 1 yaitu masukan/keluaran 8 bit dengan nama masing-
masing P2.0-P2.7 yang bersifat dua arah. Port 2 sudah dipasang resistor pullup
secara internal. Jika logika satu dituliskan pada Port 2, maka keluaran akan
berlogika satu dan dapat digunakan sebagai masukan.
Fungsi lain Port 2:
• Sebagai byte alamat tinggi (A8-A15) pada saat menjalankan program pada
memori program eksternal dan mengakses data pada memori data eksternal
dengan menggunakan pengalamatan 16bit (instruksi MOVX @DPTR).
Sedangkan jika menggunakan pengalamatan 8 bit (instruksi MOVX @RI)
maka Port 2 berisi SFR P2.
• Sebagai bit alamat atas (A8-A12) dan kendali saat pemograman memori
flash internal dan verifikasi.
6. PORT 3 - Pin 10 sampai Pin 17
Port 3 sama dengan Port 1 dan Port 2 yaitu masukan/keluaran 8 bit dengan
nama masing-masing P3.0-P3.7 yang bersifat dua arah. Port 3 sudah dipasang
resistor pullup secara internal. Jika logika satu dituliskan pada Port 3, maka
keluaran akan berlogika satu dan dapat digunakan sebagai masukan. Fungsi lain
dari Port 3 adalah sebagai masukan signal kendali pada saat pemrograman
memori flash dan verifikasi. Fungsi khusus pada port 3 dapa dilihat pada tabel
2.2.
Tabel 2.2 Fungsi khusus Port 3
Pin Fungsi P3.0 RXD (port masukan serial) P3.1 TXD (port keluaran serial) P3.2 INT0 (interupsi eksternal 0, aktif rendah)
8
Tabel 2.2 (lanjutan) Fungsi khusus Port 3
Pin Fungsi P3.3 INT1 (interupsi eksternal 1, aktif rendah) P3.4 T0 (masukan eksternal timer 0) P3.5 T1 (masukan eksternal timer 1) P3.6 WR (signal tulis untuk memori eksternal, aktif rendah) P3.7 RD (signal baca untuk memori eksternal, aktif rendah)
7. RST – Pin 9
Berfungsi sebagai masukan reset. Jika RST diberi logika tinggi dalam waktu 2
siklus mesin, maka mikrokontroler akan direset.
8. ALE/PROG – Pin 30
Signal Address Latch Enable (ALE) digunakan untuk mengaktifkan IC latch
agar data alamat rendah disimpan. ALE aktif ketika mengakses program
eksternal. Pin ini juga digunakan untuk memberikan pulsa pemrograman
memori flash eksternal.
9. PSEN (Program Store Enable) – Pin 29
PSEN adalah keluaran signal strobe untuk membaca kode program.
10. EA/Vpp (Eksternal Access Enable) - Pin 31
EA harus dihubungkan ke ground (GND) jika semua program diakses dari
memori program eksternal yang dimulai dari alamat 0x0000 sampai dengan
0xFFFF. Apabila program yang akan dieksekusi berasal dari memori program
internal dan eksternal, maka EA dihubungkan dengan VCC. Pin EA juga
digunakan sebagai masukan tegangan pemrograman ketika akan memprogram
memori flash.
11. XTAL1 - Pin 18 merupakan input untuk kristal clock.
12. XTAL2 - Pin 19 merupakan input untuk kristal clock.
2.1.3 Organisasi Memori AT89S51 Mikrokontroler AT89S51 memiliki memori data dan memori program yang
terpisah penyimpanannya. Data disimpan di RAM (Random Access Memory)
sedangkan program disimpan di Flash PEROM. Secara umum mikrokontoler
keluarga MCS51 mempunyai struktur memori yang terdiri atas memori data dan
memori program.[3][4]
9
2.1.3.1 Memori Data Memori data adalah memori yang digunakan untuk menyimpan data
sementara ketika program dijalankan. Memori ini bersifat sementara karena data
akan hilang jika catu daya dimatikan (nonvolatile). Memori ini dibagi menjadi dua
yaitu RAM internal dan SFR (Special Function Register).[4]
2.1.3.1.1 RAM Internal RAM internal berfungsi sebagai penyimpan variabel data yang bersifat
sementara (volatile). RAM internal terdiri atas Register Bank, Bit Addressable
RAM, General Purphose RAM. RAM internal digunakan untuk memori data.
Sifat dari RAM ini yaitu data yang disimpan di dalamnya akan hilang ketika catu
daya dimatikan (nonvolatile). Gambar 2.2 mengilustrasikan peta memori RAM
[4]
Gambar 2.2 Peta memory RAM
a) Register Banks
Mikrokontroler MCS51 memiliki 4 buah Bank, setiap bank
mempunyai 8 buah register (R0 . . . R7).
• Bank 0 pada alamat 00h – 07h; merupakan bank default
• Bank 1 pada alamat 08h – 0Fh;
• Bank 2 pada alamat 10h – 17h; optional
• Bank 3 pada alamat 18h – 1Fh;
10
b) Bit Addressable RAM
Area RAM pada alamat 20h – 2Fh dapat diakses secara bit (bit
addressable), sehingga dengan sebuah instruksi setiap bit dalam area ini
dapat dilakukan pengaksesan (setb, clear dll). Dengan adanya pengaksesan
bit pada area ini dapat dilakukan manipulasi bit hanya dengan 1 instruksi
saja.
c) General purphose RAM
Area memory ini berawal pada alamat 30h – 7Fh. Memori ini dapat diakses
dengan pengalamatan langsung dan tak langsung. Fungsinya sebagai tempat
penulisan sementara yang kemudian dapat diambil jika dibutuhkan. [3]
2.1.3.1.2 SFR (Special Function Register) Special Functions Register (SFR) seperti yang ditunjukan pada gambar 2.3
yaitu register dengan fungsi khusus yang disediakan sebagai fasilitas pada
keluarga MCS51 seperti timer/counters, port I/O, accumulator, PSW, DPTR,
Interupt, serial communication dan lain – lain. Mikrokontroler AT89S51 memilki
12 SFR yang terletak pada alamat 80h – FFh yang sebagian dapat dialamati per-
bit dan sebagian lain tidak bisa. [3]
Gambar 2.3 Special Functions Register (SFR)
11
SFR dipakai untuk mengatur perilaku mikrokontroler yang berisi register
dasar, register data input/output dan status register. Register data untuk menulis
program, register data input/output untuk menyimpan data pada port tertentu,
register status berguna untuk mengatur kerja timer (TCON), serial control (SCON),
dan interupt (IE dan IP).
Register dasar memiliki beberapa register diantaranya Program Counter
(PC), Accumulator (A), Stack Pointer (SP), Program Status Word (PSW). Pada
keluarga MCS51 memilik register B dan data Pointer Register (DPTR).
1. Program Counter (PC) yaitu register 16 bit yang berisi alamat yang
akan dikerjakan, saat reset PC bernilai $0000. Nilai PC akan bertambah
1 setelah prosesor mengambil instruksi 1 Byte.
2. Accumulator (A) yaitu register untuk menampung data. Register ini
mempunyai fungsi yang sangat luas unruk operasi aritmatik maupun
logika dan bisa diakses perbit (bit addressable).
3. Stack Pointer (SP) yaitu register yang digunakan untuk menyimpan
sementara dari nilai PC sebelum subroutine dijalankan. Saat selesai
mengerjakan subroutine nilai PC akan dikembalikan dengan cara
mengambil stack pointer.
4. Program Status Word (PSW) pada gambar 2.4 yaitu register 8 bit yang
terdiri atas bit CY, AC, F0, RS0, RS1, OV, dan O. Register ini
digunakan untuk menyimpan informasi status prosesor, dan bit ke 1 tak
digunakan.
Gambar 2.4 Program Status Word (PSW)
fungsi – fungsi bit pada PSW yaitu:
CY : carry setelah operasi aritmatika
AC : auxiliary carry setelah operasi aritmatika
FO : flag yang berfungsi umum
RS1, RS2 : untuk memilih bank register
OV : Overflow setelah operasi aritmatika
P : Parity
12
5. Register B digunakan untuk membantu accumulator.
6. Data Pointer Register (DPTR) yaitu register 16 bit yang terletak pada
alamat 82h dan 83h yang digunakan untuk mengakses kode operasi
(Op-code) dari memori eksternal dan sebagai operasi tabel tengok
(Look Up table). Register ini dibagi menjadi data pointer high byte
(DPH) dan data pointer low byte (DPL) yang masing – masing 8 bit.
2.1.3.2 Memori Program Memori program merupakan memori yang digunakan untuk menyimpan
kode program dan konstanta yang sifatnya tetap. Memory program bersifat hanya
baca (Read Only Memory – ROM) dalam artian ketika sedang eksekusi program,
memori ini hanya dapat dibaca saja tidak dapat dirubah isinya.[5]
2.1.4 Rangkaian Oscillator Pada mikrokontroler AT89S51 mempunyai oscillator internal (on-chip
oscillator) yang digunakan sebagai sumber clock CPU. Untuk dapat
menggunakannya perlu ditambahkan sebuah rangkaian sederhana menggunakan
sebuah Kristal dan dua buah kapasitor (C1 dan C2) seperti pada gambar 2.5. [3]
Gambar 2.5 Rangkaian Oscillator.
2.1.5 Mekanisme Reset Reset bisa dikendalikan secara manual dan automatic, saat reset maka nilai
default register SFR dapat dilihat pada tabel 2.3. Reset terjadi karena logika 1
selama 2 siklus (2 μdetik) pada kaki reset. Setelah pin reset kembali low maka
mikrokontroler akan memulai menjalankan program dari alamat 0000h pada PC,
namun kondisi RAM tidak berubah dari kondisi terakhir walaupun sistem reset.
13
Gambar 2.6 Rangkaian Reset.
Pada gambar 2.6, R1 digunakan untuk membuang muatan pada kapasitor
(C) sesaat setelah tombol reset tertekan sehingga diperoleh tunda level high sekitar
2μdetik untuk mereset mikrokrontroler. [3]
Persamaan (2.1) digunakan untuk menghitung waktu reset. Persamaan
untuk menghitung besarnya tegangan pada kaki reset digunakan persamaan (2.2).
(2.1)
(2.2)
2.2 Modul DX-24 DX-24 adalah modul bantuan bagi sistem mikrokontroler yang digunakan
melakukan komunikasi data dengan frekuensi 2.4GHz. Modul ini beroperasi pada
jangkauan frekuensi 2,4 - 2,524 GHz dan kecepatan pengiriman data maksimal 1
Mbps. Agar tidak terjadi benturan dengan perangkat yang lain, modul ini memiliki
125 kanal frekuensi dimana pengaturan frekuensi tersebut dapat dilakukan secara
digital (tanpa memutar trimpot/potensio seperti sistem analog) dengan waktu
pergantian antar channel < 200μs. Proses pengaturan secara digital tersebut
dilakukan oleh sistem mikrokontroler dengan mengirimkan data-data tertentu pada
modul ini secara 3 wire. Dalam 1 jalur frekuensi modul ini juga dapat diatur
pengalamatannya hingga 40 bit sehingga dalam jalur frekuensi tersebut sejumlah
240 modul DX-24 dapat saling berkomunikasi. Modul ini mempunyai dua receiver
pada satu modul dan bekerja secara terpisah (independen). Built In decoder,
encoder, data buffer, komputasi CRC dan antena. Modul ini dapat bekerja dengan
supply antara 1,9 sampai 3,6 VDC.
14
Gambar 2.7 Modul DX-24
2.2.1 Konfigurasi Modul Transceiver 2,4 GHz Modul Transceiver 2,4 GHz mempunyai dua mode kerja yaitu mode
shockburst dan mode direct dan satu mode konfigurasi. Prinsip pengiriman data
dengan mode shockburst adalah dengan mengirimkan data oleh mikrokontroler unit
ke modul TRF-2,4 GHz dengan kecepatan tertentu sesuai kebutuhan. Data tersebut
ditampung pada internal FIFO buffer lalu dikirimkan melalui RF dengan kecepatan
1 Mbps. Proses pengiriman data digital yang berasal dari mikokontroler berjalan
dengan kecepatan rendah, sedangkan pengiriman data RF berjalan pada kecepatan
tinggi. Sehingga dengan memaksimalkan kecepatan pengiriman data pada jalur RF,
maka mode shockburst dapat mengurangi konsumsi daya rata-rata. Selain itu, mode
ini menyebabkan semua proses pengolahan sinyal berkecepatan tinggi menjadi
ditangani oleh protokol RF modul, sehingga tidak diperlukan mikrokontroler
berkecepatan tinggi untuk pengolahan sinyal.
Agar modul dx-24 dapat bekerja. Perlu dilakukan proses inisialisasi, baik
untuk mode kerja shockburst maupun mode kerja direct. Penjelasan konfigurasi
dapat dilihat pada data sheet modul TRF-2,4 GHz. Inisialisasi dilakukan dengan
mengirimkan konfigurasi data ke modul DX-24. Tabel 2.3 menunjukkan bentuk
konfigurasi data untuk inisialisasi modul DX-24.
Persamaan yang digunakan untuk menentukan kanal RF pada pemancar
ditunjukkan pada persamaan (2.3). Persamaan untuk menghitung frekuensi kanal
pada penerima kanal 1 dengan menggunakan persamaan (2.4), sedangkan untuk
penerima kanal 2 dengan menggunakan persamaan (2.5).
Channel_TX = 2400 MHz + RF_CH# x 1,0 MHz (2.3)
Channel_RX1 = 2400 MHz + RF_CH# x 1,0 MHz (2.4)
Channel_RX2 = 2400 MHz + RF_CH# x 1,0 MHz + 8 MHz (2.5)
15
Tabel 2.3 Konfigurasi data untuk inisialisasi[6]
2.2.2 Pin I/O Modul Transceiver 2,4 GHz Fungsi dari tiap Pin I/O modul Transceiver 2,4 GHz seperti terlihat pada
tabel 2.4 adalah sebagai berikut:
CS : Chip Select berfungsi untuk mengaktifkan pengaturan konfigurasi DX-
24.
CE : Chip Enable berfungsi untuk mengaktifkan pemancar/penerima pada
DX-24.
CLK1 : Clock input untuk TX atau RX kanal 1.
DATA1 : RX data untuk kanal 1 atau TX data input.
DR1 : Indikator data telah diterima pada RX kanal 1.
CLK2 : Clock input untuk RX kanal 2.
DATA2 : RX data untuk kanal 2.
DR2 : Indikator data telah diterima pada RX kanal 2.
16
Tabel 2.4 Pin I/O modul Transceiver 2,4 GHz[7]
(a) Tampak Bawah (b) Tampak Atas
Gambar 2.8 Pin pada DX-24
2.3 Komunikasi Serial menggunakan RS232 dengan 9 pin RS232C yang merupakan kabel serial dapat digunakan untuk komunikasi
data. Komunikasi data ini bisa antara dua komputer, maupun antara komputer
dengan peralatan lain. Terdapat dua jenis RS232C, yaitu 25 pin dan 9 pin. Gambar
RS232C dengan 9 pin dilihat pada gambar 2.9. Komunikasi serial merupakan
komunikasi asinkron, yaitu bahwa antara penerima dan pengirim data tidak ada
sinkroninasi berupa clock sehingga mengharuskan ada penyesuaian kecepatan
transfer data. Kecepatan data tersebut disebut baud rate. Terminal serial port pada
komputer menggunakan DB-9 male.
17
Gambar 2.9 RS232C dengan 9 pin
Informasi mengenai pin-pin DB9 dapat dilihat pada tabel 2.5 :
Tabel 2.5 Pin-pin DB9
No. Pin Nama Pin 1 Carrier Detect 2 Receive Data (RD) 3 Transmitted Data (TD) 4 Data Terminal Ready (DRT) 5 Signal Ground (GND) 6 Data Set Ready (DSR) 7 Request to Send (RTS) 8 Clear to Send (CTS) 9 Ring Indicator
Pin-pin tersebut dapat dibagi menjadi tiga kelompok fungsi, yaitu:
1. Data Signals (Pin : 2 dan 3)
1.1 Transmited Data (TD)
Ditujukan oleh penerima dan data dibangkitkan oleh pengirim.
1.2 Receive Data (RD)
Ditujukan pada pengiriman dan penerimaan data oleh penerima.
2. Control Signals (Pin : 1, 4, 6, 7, 8, dan 9)
2.1 Request to Send (RTS)
Ditujukan pada penerima, dan pengirim menegaskan bahwa akan mengirim
data pada penerima
2.2 Clear to Send (CTS)
Ditujukan pada pengirim, dan penerima siap untuk menerima yang
merupakan tanggapan dari RTS.
18
2.3 Data Set Ready (DSR)
Ditujukan pada pengirim, dan penerima siap untuk operasi.
2.4 Data Terminal Ready (DTR)
Ditujukan pada penerima, dan pengirim siap untuk beroperasi.
2.5 Ring Indicator (RI)
Ditujukan pada pengirim, yang menandakan bahwa penerima menerima
sinyal dering pada kanal komunikasi.
2.6 Carrier Detect (CD)
Ditujukan pada pengirim, yang menandakan bahwa penerima menerima
sinyal carrier.
3. Ground (Pin : 5)
Merupakan titik nol (ground) yang selanjutnya akan dihubungkan dengan
ground bersama pada catu daya yang digunakan.
2.4 Pemrograman Visual Basic Microsof Visual Basic® adalah bahasa pemrograman yang digunakan untuk
membuat aplikasi windows yang berbasis grafis (GUI – Graphical User Interface).
Visual Basic merupakan event-driven programming (pemrograman terkendali
kejadian) artinya program menunggu sampai adanya respon dari pemakai berupa
kejadian tertentu (tombol diklik, menu dipilih, dan lain-lain). Ketika kejadian
terdeteksi, kode yang berhubungan dengan event (prosedur event) akan dijalankan.
2.4.1 Langkah – langkah untuk Mengembangkan Aplikasi Langkah-langkah yang digunakan untuk mengembangkan aplikasi ini
seperti memilih jenis project dan membuat user tampilan, mengatur property, serta
menulis kode program dapat dilihat pada gambar 2.10.
19
Gambar 2.10 Jendela pemilihan Project
2.4.2 Tampilan Layar Visual Basic
Gambar 2.11 Tampilan program Visual Basic 6.0
20
Berikut ini adalah keterangan dari gambar 2.11 :
• Main Window (jendela utama) terdiri dari title bar (baris judul), menu bar, dan
toolbar. Baris judul berisi nama proyek, mode operasi Visual Basic sekarang
dan form aktif. Menu bar merupakan menu drop-down yang dapat mengontrol
operasi dari lingkungan Visual basic. Toolbar berisi kumpulan gambar yang
mewakili perintah yang ada di menu. Jendela utama juga menampilkan lokasi
dari form yang aktif relatif terhadap sudut kiri atas layar (satuan ukurannya
twips), juga lebar dan panjang dari form yang aktif.
• Form Windows (Jendela Form) adalah pusat dari pengembangan aplikasi
Visual Basic. Di sinilah tempat menggambar aplikasi.
• Jendela Kode Editor
Jendela kode editor secara umum berguna untuk menuliskan listing program
dalam pembuatan suatu aplikasi.
• Project Windows (Jendela Proyek) menampilkan daftar form dan modul
proyek. Proyek merupakan kumpulan dari modul form, modul class, modul
standar, dan file sumber yang membentuk suatu aplikasi.
• Toolbox adalah kumpulan dari objek yang digunakan untuk membuat user
interface serta kontrol bagi program aplikasi.
• Propertis Windows (Jendela Properti) berisi daftar struktur setting properti
yang digunakan pada sebuah objek terpilih. Kotak drop-down pada bagian atas
jendela berisi daftar semua objek pada form yang aktif. Ada dua tab tampilan:
Alphabetic (urut abjad) dan Catagorized (urut berdasar kelompok). Di bagian
bawah kotak terdapat properti dari obyek terpilih.
• Form Layout Windows (Jendela Layout Form) menampilkan posisi form relatif
terhadap layar monitor.
2.5 Microsoft SQL Server Microsoft SQL Server merupakan salah satu produk DBMS (Database
Management System) yang dibuat oleh Microsoft. Microsoft SQL Server memiliki
fitur untuk mengelola database, antara lain :
1. Enterprise Manager, fitur ini menggunakan metode pengelolaan
database berbasis GUI (Graphical User Interface). Metode ini
menggunakan sistem click dan drag.
21
2. SQL Query Analyzer, fitur ini menggunakan Transact SQL (perintah-
perintah SQL) untuk mengelola database. Perintah-perintah Transact
SQL merupakan pengembangan dari perintah-perintah SQL standar
yang disesuaikan dengan manajemen database pada SQL Server.
Transact SQL memungkinkan untuk membuat database, membuat tabel,
mengubah struktur tabel, menghapus database, menghapus tabel,
menyisipkan data, mengubah data, dan lain-lain.
22
BAB III
RANCANGAN PENELITIAN
Perancangan sistem Penerima dan Penampil pada Presensi Nirkabel terdiri dari 2
bagian, yaitu : bagian perancangan perangkat keras dan bagian perancangan perangkat
lunak. Bagian perangkat keras meliputi : mikrokontroler AT89S51, modul DX-24, dan
kabel serial RS232. Bagian perangkat lunak meliputi : program yang digunakan sebagai
penampil dari data yang telah dikirim.
3.1 Diagram Blok Diagram blok berikut merupakan rancangan keseluruhan dari sistem
Penerima dan Penampil pada presensi nirkabel.
Gambar 3.1 Diagram blok modul pemancar
Gambar 3.2 Diagram blok modul penerima
Pada diagram modul pemancar yaitu gambar 3.1, bagian input ke
mikrokontroler berupa data serial 9 digit desimal, IC mikrokontroler AT89S51
sebagai IC pengatur pengiriman data, dan output berupa modul DX-24 sebagai
pemancar sinyal serta penerima. Di dalam tugas akhir ini, data masukan berasal dari
data serial yang dikirimkan dari pembaca barcode dan penulis tidak membahas
pembaca barcode, penulis memberi batasan hanya pada pengirim, penerima serta
penampil pada presensi nirkabel saja.
Mikrokontroler
AT89S51
Modul dx-24
(pemancar)
Pembaca Barcode
Modul dx-24
(penerima)
Mikrokontroler
AT89S51 RS 232 Komputer
23
Pada diagram blok modul penerima seperti terlihat pada gambar 3.2, input
berasal dari modul DX-24 sebagai penerima signal, IC mikrokontroler AT89S51
sebagai pengolah data yang nantinya akan dikirimkan ke penampil pada komputer
melalui kabel RS232.
3.2 Perancangan Perangkat Keras (Hardware) Pada perancangan perangkat keras, rangkaian-rangkaian yang digunakan meliputi
Rangkaian Reset pada Mikrokontroler, Rangkaian Osilator pada Mikrokontroler,
Perancangan Mikrokontroler dengan Modul DX-24 sebagai Modul Pemancar dan
Modul Penerima, dan Rangkaian Pengubah Level Tegangan TTL menjadi Level
Tegangan RS232.
3.2.1 Rangkaian Reset pada Mikrokontroler Rangkaian reset digunakan untuk mereset mikrokontroler pada saat catu
daya dihidupkan. Keadaan reset pada mikrokontoler diperoleh apabila pin reset
diberi logika tinggi.
Pada perancangan ini waktu reset menggunakan 100ms dengan
menggunakan nilai kapasitor sebesar C = 10µF, maka dengan persamaan (2.1)
diperoleh nilai Resistor sebagai berikut:
Cara kerja rangkaian reset pada gambar 3.3 adalah sebagai berikut, bila
tegangan catu dihidupkan maka arus akan mengalir melalui kapasitor yang akan
menimbulkan beda tegangan pada resistor. Tegangan pada pin reset merupakan
beda tegangan antara Vcc dengan kapasitor. Dengan menggunakan persamaan (2.2)
maka tegangan pada kaki reset atau Vreset menjadi :
24
Gambar 3.3 Rangkaian reset pada mikrokontroler
3.2.2 Rangkaian Osilator pada Mikrokontroler Mikrokontroler mempunyai rangkaian osilasi internal (on chip oscillator)
yang dapat digunakan sebagai sumber clock pada CPU. Untuk dapat
menggunakannya harus ditambahkan sebuah kristal dan dua buah kapasitor pada
pin XTAL1 dan XTAL2 (pin 18 dan pin 19). Rangkaian osilator pada gambar 3.4
menggunakan kristal 12 Mhz dan dua buah kapasitor 30 pF sehingga frekuensi
detak pada CPU adalah 12 Mhz.
Gambar 3.4 Rangkaian Osilator pada Mikrokontroler
25
3.2.3 Perancangan Mikrokontroler dengan Modul DX-24 sebagai Modul
Pemancar dan Modul Penerima Modul yang digunakan pada perancangan adalah modul DX-24. Modul ini
terdiri dari 8 bit data dan catu daya yang digunakan sebesar +5 volt. Konfigurasi
yang digunakan pada modul DX-24 adalah konfigurasi shockburst. Konfigurasi ini
menggunakan pin-pin yang sama yaitu CE (0b), CS (1b), CLK1 dan DATA1.
Pengiriman data menggunakan pin-pin CS (0b), CE (1b), CLK1 dan
DATA1. Saat pengiriman data pada modul pemancar, DATA1 berfungsi sebagai
input bagi modul DX-24. Sedangkan modul penerima menggunakan pin-pin CS
(0b), CE (1b), CLK1, DR1 dan DATA1. DR1 pada modul penerima berfungsi
sebagai indikator ke mikrokontroler bahwa ada data yang telah diterima. DATA1
pada modul penerima sebagai output dari modul DX-24. Gambar 3.5 menunjukkan
rangkaian antarmuka modul DX-24 dengan mikrokontroler.
Gambar 3.5 Rangkaian antarmuka modul DX-24 dengan mikrokontroler
3.2.4 Rangkaian Pengubah Level Tegangan TTL menjadi Level
Tegangan RS232 Rangkaian ini digunakan untuk menghubungkan komputer dengan
mikrokontroler menggunakan port serial. Rancangan ini mengikuti konfigurasi dari
data sheet RS232.
Pada rangkaian penerima, T1IN dipilih sebagai input tegangan TTL dari
mikrokontroler sedangkan output pada RS232 dipilih T1OUT yang terhubung
dengan port serial komputer. Rangkaian konfigurasi RS232 pada penerima
ditunjukkan pada Gambar 3.6. Besarnya nilai kapasitor yang digunakan disesuaikan
dengan nilai yang tertera pada data sheet MAX232. P3.1 digunakan sebagai port
26
penghubung dari mikrokontroler ke MAX232 pada bagian penerima, sedangkan
pada bagian pengirim digunakan P1.1. Port T1IN disambungkan dengan konektor
DB9. Sedangkan pada rangkaian pemancar, digunakan R1IN sebagai input data
serial, sedangkan pada output menggunakan R1OUT. Rangkaian konfigurasi RS232
pada pemancar ditunjukan pada Gambar 3.7.
Gambar 3.6 Konfigurasi RS232 pada modul pemancar
Gambar 3.7 Konfigurasi RS232 pada modul penerima
3.3 Perancangan Perangkat Lunak (Software) Sistem mikrokontroler AT89S51 dapat bekerja setelah program berhasil
didownload. Program ini berisi instruksi-instruksi penyimpanan data pada memori
5Volt
Port 3.0 MikroData serial
U1
MAX232
138
1110
134526
129147
1615
R1INR2INT1INT2IN
C+C1-C2+C2-V+V-
R1OUTR2OUTT1OUTT2OUT
VC
CG
ND
C1
1u
C2
1uC3
1u
C4
1u
C31uF
U1
MAX232
138
1110
134526
129147
1615
R1INR2INT1INT2IN
C+C1-C2+C2-V+V-
R1OUTR2OUTT1OUTT2OUT
VCC
GN
D
+5V
C2
1uF
C41uF
P1
CONNECTOR DB9
594837261
C1 1uF
P3.1
27
yang terdapat di dalam mikrokontroler serta pengolahannya sehingga data dapat
dikirim dan diterima melalui transceiver dan akhirnya ditampilkan. Perancangan
program penampil pada Pengirim dan Penampil Presensi Nirkabel menggunakan
software Visual Basic 6.0.
Dalam perancangan perangkat lunak, terdapat beberapa hal yang harus
diperhatikan yaitu pengolahan data input didalam mikrokontroler dan proses
pengendaliannya sehingga data dapat ditampilkan sesuai dengan yang diinginkan.
1. Proses pengolahan data.
Pada proses pengolahan data, data masukan berupa 9 digit desimal yang
dikirimkan secara serial.
2. Proses pengendalian.
3. Menampilkan nomor, nama, dan waktu masuk kantor serta waktu
pulang kantor.
3.3.1 Format Data Serial pada Pengirim dan Penerima Pada pengiriman dan penerimaan data, data sembilan digit dikirim sebanyak
sembilan kali dengan besarnya pengiriman adalah persatu digit. Satu digit desimal
yang dikirimkan merupakan simbol ASCII 8bit.
Pengiriman data dilakukan secara asinkron dimana penerima hanya perlu
mendeteksi adanya start bit sebagai awal pengiriman data, selanjutnya komunikasi
data terjadi antar dua buah shift register yang ada pada pengirim maupun penerima.
Setelah 8 bit data diterima, maka penerima akan menunggu adanya stop bit sebagai
tanda bahwa 1 byte data telah terkirim dan penerima telah siap menunggu
pengiriman data berikutnya. Sesudah kesembilan digit desimal diterima, maka
penerimaan akan berhenti. Hal ini juga berlaku pada pengiriman.
3.3.2 Inisialisasi Modul DX-24 Proses pertama inisialisasi modul DX-24 yaitu memberikan logika rendah
(0b) semua bit pada modul DX-24. Kemudian memberikan nilai 18 (delapan belas)
sebagai jumlah baris data konfigurasi dan mengambil alamat memori program
untuk data konfigurasi. Mengambil data di memori program dan mengaktifkan
pengaturan konfigurasi DX-24.
28
Pengaturan konfigurasi DX-24 dengan cara mengaktifkan Chip Select
(CS=1) dan tidak mengaktifkan Chip Enable (CE=0). Melakukan subrutin
kirim_data pada modul pemancar dan melakukan subrutin terima_data pada modul
penerima, kemudian melakukan pengecekan apakah 18 baris data konfigurasi yang
sudah dikirimkan ke modul DX-24. Jika belum terpenuhi, program akan
mengulangi lagi pengambilan data di memori program. Jika telah terpenuhi, maka
program inisialisasi DX-24 selesai. Diagram alir program inisialisasi untuk
pemancar dan penerima modul DX-24 ditunjukkan pada Gambar 3.8 dan 3.9.
Bentuk konfigurasi data pada modul DX-24 yang digunakan adalah sebagai
berikut:
TABEL_INIT:
1. DB 10001110B ;143-136
2. DB 00001000B ;135-128
3. DB 00011100B ;127-120
4. DB 00001000B ;119-112 (DATA2_W)
5. DB 00001000B ;111-104 (DATA1_W)
6. DB 00000000B ;103-96 (ADDR2)
7. DB 00000000B ;95-88
8. DB 00000000B ;87-80
9. DB 01001000B ;79-72
10. DB 01001000B ;71-64
11. DB 00000000B ;63-56 (ADDR1)
12. DB 00000000B ;55-48
13. DB 00000000B ;47-40
14. DB 01000010B ;39-32
15. DB 01000010B ;31-24
16. DB 01000011B ;23-16 (ADDR_W,CRC_L,CRC_EN)
17. DB 11101111B ;15-8 (RX2_EN,CM,RFDR_SB,XO_F,RF_PWR)
18. DB 00010100B ;7-0 (RF_CH,RXEN)
29
Penjelasan konfigurasi data pada modul DX-24 adalah sebagai berikut:
a) Panjang data untuk penerima kanal 1 (DATA1_W) adalah 08H, yaitu 8 bit
data.
b) Panjang data alamat penerima kanal 1 (ADDR_W) adalah 010000b, yaitu 16
bit data.
c) Alamat penerima kanal 1 (ADDR2) adalah 4242H, dengan panjang data alamat
(ADDR_W) adalah 16 bit.
d) Panjang data CRC (CRC_L) adalah 16 bit (CRC_L = 1).
e) Sistem kalkulasi CRC aktif (CRC_EN = 1).
f) Sistem penerimaan hanya kanal 1 yang aktif (RX2_EN = 0).
g) Mode kerja adalah shockburst (CM = 1 ).
h) Kecepatan data RF maksimal 1 Mbps (RF = 1).
i) Menggunakan frekuensi kristal 16 MHz (XO_F = 011b).
j) RF Output Power 0 dBm (RF_PWR = 11b).
k) Menggunakan frekuensi kanal 2410 MHz (RF_CH# = 0001010b).
l) Bekerja sebagai pemancar (RXEN = 0b).
Pada penerima, konfigurasi data yang digunakan adalah sama, bedanya
terletak pada bit ke 0 (RXEN yang bernilai 1b). Dengan menggunakan persamaan
(2.1), dapat dihitung frekuensi kanal pemancar yang diinginkan. Nilai RF_CH#
yang digunakan adalah 1010b = 10.
Channel_Tx = 2400 MHz + (RF_CH# × 1,0 MHz)
Channel_Tx = 2400 MHz + (10 × 1,0 MHz)
Channel_Tx = 2410 MHz
Dengan menggunakan persamaan (2.3), dapat dihitung frekuensi kanal
penerima 1. Nilai RF_CH# yang digunakan adalah 1010b = 10.
Channel_Rx1 = 2400 MHz + (RF_CH# × 1,0 MHz)
Channel_Rx1 = 2400 MHz + (10 × 1,0 MHz)
Channel_Rx1 = 2410 MHz
30
Gambar 3.8 Diagram alir subrutin inisialisasi modul pemancar DX-24
Gambar 3.9 Diagram alir subrutin inisialisasi modul penerima DX-24
3.3.3 Diagram Alir Program Utama Pemancar pada Modul Pemancar Setelah program melakukan subrutin inisialisasi modul DX-24 dan
inisialisasi port yang digunakan. Program akan membaca data masukan dari
komputer. Data yang dikirimkan sebanyak 9 digit desimal yang dikirimkan secara
Mulai
Berikan nilai 0b pada semua pin DX-24
Berikan nilai 18 untuk jumlah baris data konfigurasi
Ambil alamat memori program untuk data konfigurasi
Ambil data di memori program
Selesai
Tidak
Aktifkan konfigurasi DX-24
Naikan nilai alamat memori program
Apakah baris data konfigurasi = 18 baris
data?
Ya
Subrutin terima_data
A
A
Mulai
Berikan nilai 0b pada semua pin DX-24
Berikan nilai 18 untuk jumlah baris data konfigurasi
Ambil alamat memori program untuk data konfigurasi
Ambil data di memori program
Selesai
Tidak
Aktifkan konfigurasi DX-24
Naikan nilai alamat memori program
Apakah baris data konfigurasi = 18 baris
data?
Ya
Subrutin kirim data
A
A
31
serial. Kemudian program akan melaksanakan proses pengiriman data ke modul
penerima dengan cara mengaktifkan modul DX-24 sebagai pemancar.
Modul DX-24 akan bekerja sebagai pemancar, jika Chip Enable aktif
(CE=1) dan Chip Select tidak aktif (CS=0) kemudian mengerjakan subrutin
kirim_data. Subrutin ini berfungsi mengirimkan data ke modul penerima. Jika
subrutin kirim_data sudah selesai dikerjakan, maka program pengiriman data pada
modul DX-24 sebagai pemancar telah selesai. Diagram alir program utama sebagai
modul pemancar ditunjukkan pada Gambar 3.10.
Gambar 3.10 Diagram alir program utama mikrokontroler
sebagai modul pemancar
Pada subrutin kirim_data, besarnya data yang dikirimkan ada 9 digit
desimal. Data dikirimkan perdigit hingga kesembilan digit tersebut selesai terkirim.
Data yang diambil yaitu perdigit dimulai dari digit paling besar hingga yang
terkecil kemudian clock diubah menjadi logika tinggi (CLK=1).
Program berikutnya kembali mengubah clock menjadi logika rendah
(CLK=0) dan hilangkan bit data. Kemudian dicek apakah data sudah dikirim ke
modul DX-24. Jika belum dikirim, maka akan mengulangi dari langkah awal
sampai semua data yang dikirim ke modul DX-24 terpenuhi. Setelah terpenuhi,
proses subrutin kirim_data telah selesai. Diagram alir subrutin pengiriman data
ditunjukkan pada Gambar 3.11.
Mulai
Subrutin kirim_data
Selesai
Aktifkan DX-24 sebagai pemancar
Inisialisasi modul DX-24
32
Gambar 3.11 Diagram alir subrutin pengiriman data ke modul DX-24 (Subrutin
kirim_data)
3.3.4 Diagram Alir Program Utama Penerima pada Modul Penerima Pertama kali program akan melakukan insialisasi DX-24 dengan
mengaktifkan modul DX-24 sebagai penerima. Modul DX-24 berfungsi sebagai
penerima jika bit CE (Chip Enable) diaktifkan (CE=1) dan bit CS (Chip Select)
tidak diaktifkan (CS=0). Setelah itu, program akan memeriksa apakah ada data
masukan dari modul DX-24. Jika tidak ada, maka program akan mengulang lagi
prosedur dari pengaktifan modul DX-24 sebagai penerima. Jika ada data masukan
dari modul DX-24, maka program melakukan subrutin terima_data. Kemudian
mengubah clock menjadi logika rendah (CLK=0). Langkah berikutnya adalah
dengan melakukan subrutin port serial. Gambar 3.12 menunjukkan diagram alir
program utama pada modul penerima.
Mulai
Jumlah data = 9 digit desimal
Berikan logika 0 pada clock
Ambil data
Berikan logika 1 pada clock
Berikan logika 0 pada clock dan bit data
Apakah sudah ada data yang
dikirim?
Selesai
Tidak
Ya
33
Gambar 3.12 Diagram alir program utama penerima pada modul penerima
Gambar 3.13 Diagram alir subrutin penerimaan data ke modul DX-24 (Subrutin
terima_data)
Mulai
Jumlah data = 9 digit desimal
Berikan logika 0 pada clock
Ambil data
Berikan logika 1 pada clock
Berikan logika 0 pada clock dan bit data
Apakah diterima semua?
Selesai
Tidak
Ya
Aktifkan dx-24 sebagai penerima
Selesai
Berikan logika 0 pada clock
Subrutin port serial
Subrutin terima_data
Mulai
Apakah ada indikasi
penerimaan data dx-24?
Ya
Subrutin inisialisasi
dx-24 dan port
Tidak
A
A
34
3.3.5 Diagram Alir Subrutin Penerimaan Data melalui Port Serial Penerimaan data serial dari komputer ke mikro melibatkan register serial
buffer dan akumulator. Data hasil penerimaan dari komputer akan dipindahkan ke
akumulator, kemudian data pada akumulator akan dikirimkan per-bit oleh
transceiver sebanyak 8bit. Apabila terdapat penerimaan lagi dari komputer maka
akumulator akan terisi lagi oleh data dari serial buffer.
Gambar 3.14 Diagram alir subrutin port serial ke mikro
3.3.6 Diagram Alir Subrutin Pengiriman Data melalui Port Serial. Pengiriman data serial melibatkan register serial buffer dan akumulator.
Data hasil pengolahan data akan dipindahkan ke akumulator, kemudian data pada
akumulator akan disalin ke serial buffer (Sbuf).
Gambar 3.15 Diagram alir subrutin mikro ke port serial
Mulai
Pindahkan isi Akumulator ke Sbuf
Data telah dikirim semua?
Selesai
Tunggu hingga semua data terkirim
Tidak
Ya
Mulai
Pindahkan isi sbuf ke Akumulator
Data telah dikirim semua?
Selesai
Tunggu hingga semua data terkirim
Tidak
Ya
Data baru
Ya
Tidak
35
3.3.7 Perancangan Software pada Visual Basic 6.0 Persiapan yang perlu dilakukan sebelum pembuatan program adalah dengan
melakukan penataan letak file seperti terlihat pada gambar 3.16.
Gambar 3.16 Struktur direktori dan sub direktori untuk penyimpanan
Pada gambar 3.16 terdapat sub direktori yang berada di dalam direktori
utama bernama Aplikasi Presensi Nirkabel. Adapun fungsinya dapat dilihat pada
tabel 3.1. Tujuan pembuatan direktori tersebut adalah supaya tidak mendapatkan
kesulitan dalam mengatur file-file yang ada.
Tabel 3.1 Struktur direktori dan fungsinya
Direktori Keterangan Database Subdirektori ini digunakan untuk menyimpan database yang digunakan
pada sistem. Form Subdirektori ini digunakan untuk menyimpan semua form program yang
terbentuk. Dengan cara ini maka semua form akan terkumpul. Gambar Subdirektori ini digunakan untuk menyimpan semua gambar yang akan
dibutuhkan pada program. Ikon Subdirektori ini digunakan untuk menyimpan icon-icon yang mungkin
akan dibutuhkan baik sebagai toolbar maupun icon form. Laporan Subdirektori ini digunakan untuk merekam semua halaman desain dan
koneksi (DataEnvironment). Modul Subdirektori ini digunakan untuk merekam semua modul yang terbentuk. Project Subdirektori ini hanya digunakan untuk merekam proyek aplikasi yang
dibuat, sehingga apabila hendak membuka kode programnya, dapat secara langsung membuka direktori tersebut.
3.3.7.1 Cara Kerja Program Apabila ada satu data masukan, program akan menampilkannya sebagai
waktu datang. Bila masukan yang sama diterima lagi oleh program, maka akan
ditampilkan sebagai waktu pulang. Program akan menampilkan waktu datang,
36
apabila masukan yang diberikan berbeda-beda. Bila digambarkan dalam diagram
alir maka akan tampak seperti gambar 3.17.
Gambar 3.17 Diagram Alir program
3.3.7.2 Tampilan Utama pada Program Visual Basic 6.0 Gambar 3.18 merupakan form utama atau tampilan yang berada paling
depan saat program dijalankan. Form utama ini digunakan untuk mengontrol semua
modul atau bagian program yang ada di dalam sistem yang telah dibuat.
Selesai
Data sama?
Ya Tampil sebagai waktu masuk
Tampil sebagai waktu keluar
Ya
Tidak
Tunggu data baru
Mulai
data ada?
Masukan dari Mikro
37
Gambar 3.18 Bentuk tampilan Form Utama yang siap digunakan
Rancangan pada tampilan utama seperti terlihat pada gambar 3.18 dibuat
sangat sederhana dan komponen yang terdapat pada tampilan utama antara lain:
1. File dibuat untuk mengubah database yang telah disiapkan. Di dalam
File terdapat pilihan untuk menambah database maupun mengurangi
database.
2. Laporan difungsikan untuk menampilkan output program dalam bentuk
Data Report. Data pada Laporan dihasilkan perhari serta perbulan
dengan fasilitas print.
3. Keluar difungsikan untuk menutup program.
Gambar 3.19 menunjukkan tampilan program saat dijalankan.
Gambar 3.19 Rancangan tampilan Form Utama saat dijalankan
38
3.3.7.3 Tampilan Menu pada Program Komponen menu pada program utama yang digunakan untuk memilih
ditampilkan secara terpisah. Sehingga, penulis membuat 6 form berbeda yang
digunakan untuk menampilkan File dan Laporan. Isi dari menu File antara lain :
Tambah Data, Ubah Data, Hapus Data, dan Pencarian, sedangkan isi dari menu
Laporan adalah Laporan Harian dan Laporan Bulanan. Rancangan tampilan
program dapat dilihat pada gambar 3.20 – 3.25.
Gambar 3.20 Rancangan tampilan Form Penambahan Data Karyawan
Gambar 3.21 Rancangan tampilan Form Penghapusan Data Karyawan
39
Gambar 3.22 Rancangan tampilan Form Pengubahan Data Karyawan
Gambar 3.23 Rancangan tampilan Form Pencarian Data Karyawan
Gambar 3.24 Rancangan tampilan Form Cetak Harian
40
Edit Database
Data Masukan Mikrokontroler
Database
Penampil
Gambar 3.25 Rancangan tampilan Form Cetak Bulanan
3.3.7.4 Sinkronisasi Program dengan Data Masukan Tahapan awal pembuatan program pada Visual Basic 6.0 adalah dengan
pembuatan database. Pembuatan database dimaksudkan untuk memanggil data
yang akan ditampilkan ke dalam form utama. Database merupakan komponen
paling penting dalam pembuatan Tugas Akhir ini. Hal ini dikarenakan dalam
pengiriman data, data yang digunakan harus berdasarkan data pada database. User
tidak dapat sembarangan memasukan data. Untuk memasukkan data yang baru,
perlu menambahkan data pada database dan untuk mengurangi juga harus
menghapus data dari database. Pembuatan database pada program ini
menggunakan aplikasi SQL Server. Secara garis besarnya, hubungan program
dengan database dan mikrokontoler dapat dilihat pada gambar 3.26.
Gambar 3.26 Hubungan antara Input, Database, dengan Penampil
Pemanggilan database yang akan ditampilan bergantung dari masukan yang
diterima dari mikrokontroler. Saat data yang diberikan sesuai dengan data yang
berada di dalam database, maka data tersebut akan ditampilkan pada program yang
telah disiapkan, yaitu Program Presensi Karyawan. Apabila data yang diterima dari
41
mikrokontoler tidak sesuai dengan data yang terdapat pada database, maka data
tersebut tidak akan ditampilkan.
Perubahan data pada database, yaitu dengan menambah data atau
mengurangi data, menyebabkan berubahnya data yang bisa dimasukkan dari
mikrokontroler. Semakin banyak data yang tersimpan, maka semakin banyak pula
data bisa dipanggil oleh mikrokontroler. Apabila tidak ada database, saat
mikrokontroler memasukan data berapapun maka penampil tidak akan
menampilkan apapun dan sebaliknya jika tidak ada masukan dari mikrokontroler,
maka database tidak dapat dipanggil sehingga penampil akan tetap kosong.
42
BAB IV
HASIL DAN PEMBAHASAN
Pengujian dilakukan untuk mengetahui bekerja atau tidaknya hardware dan
aplikasi yang telah dirancang. Dalam bab ini, pengujian berdasarkan dari tampil atau tidak
data yang dikirimkan dari aplikasi pengirim ke aplikasi penampil. Hasil pembuatan
hardware ditunjukkan pada gambar 4.1 dan gambar 4.2.
Gambar 4.1 Modul Pemancar
Gambar 4.2 Modul Penerima
Port Serial
Port Serial
Rangkaian MAX 232
DX-24
DX-24
Rangkaian MAX 232
Rangkaian Catudaya 5v
Rangkaian
Catudaya 5v
43
4.1 Pengujian Alat
4.1.1 Pengujian Rangkaian Mikrokontroler Untuk memastikan bahwa hardware rangkaian mikrokontroller telah
berfungsi dengan baik, maka dibuatlah program pengujian sederhana berikut ini.
Dan selanjutnya diukur output masing- masing pin yang akan dipantau.
Listing program pengujian hardware Mikrokontroler :
org 30h mov p0,#00000000B mov p1,#11111111B mov p2,#11110000B mov p3,#00001111B end
Setelah di-compile dengan menggunakan program Pinnacle, selanjutnya
program tersebut di-download ke mikrokontroller. Dengan memperhatikan
susunan pin mikrokontroler AT89C51, selanjutnya diukur level tegangan pin-pin
yang dipantau. Hasil pengujian hardware mikrokontroler tampak seperti Tabel 4.1
Tabel 4.1 Hasil Pengujian Hardware Mikrokontroler
NO PIN HASIL PENGUKURAN REFERENSI KETERANGAN 1 P0.0 0 0 Sesuai 2 P0.1 0 0 Sesuai 3 P0.2 0 0 Sesuai 4 P0.3 0 0 Sesuai 5 P0.4 0 0 Sesuai 6 P0.5 0 0 Sesuai 7 P0.6 0 0 Sesuai 8 P0.7 0 0 Sesuai 9 P1.0 1 1 Sesuai 10 P1.1 1 1 Sesuai 11 P1.2 1 1 Sesuai 12 P1.3 1 1 Sesuai 13 P1.4 1 1 Sesuai 14 P1.5 1 1 Sesuai 15 P1.6 1 1 Sesuai 16 P1.7 1 1 Sesuai 17 P2.0 0 0 Sesuai 18 P2.1 0 0 Sesuai 19 P2.2 0 0 Sesuai
44
Tabel 4.1 (Lanjutan) Hasil Pengujian Hardware Mikrokontroler
NO PIN HASIL PENGUKURAN REFERENSI KETERANGAN 20 P2.3 0 0 Sesuai 21 P2.4 1 1 Sesuai 22 P2.5 1 1 Sesuai 23 P2.6 1 1 Sesuai 24 P2.7 1 1 Sesuai 25 P3.0 1 1 Sesuai 26 P3.1 1 1 Sesuai 27 P3.2 1 1 Sesuai 28 P3.3 1 1 Sesuai 29 P3.4 0 0 Sesuai 30 P3.5 0 0 Sesuai 31 P3.6 0 0 Sesuai 32 P3.7 0 0 Sesuai
Hasil pengukuran menyatakan bahwa mikrokontroler dapat berfungsi dengan baik.
Hal ini dapat dilihat dengan pada hasil pengukuran dan referensinya.
4.1.2 Pengujian Rangkaian Pengubah Level Tegangan TTL menjadi
Level Tegangan RS232 Pengujian pada tabel 4.2 dilakukan dengan cara membandingkan nilai
tegangan keluaran pada Vs+ dan Vs- dari rangkaian dengan nilai tegangan pada
data sheet pada saat diberi tegangan Vcc sebesar 5 volt. Hal ini dilakukan untuk
mengetahui bekerja atau tidak IC MAX 232.
Tabel 4.2 Hasil Pengujian Rangkaian Pengubah
Titik Uji Data Pengamatan Data Sheet Galat Vs+ 9.10 8,5 volt 6.59 % Vs- -9.03 -8,5 volt 5.86 %
Dari hasil pengukuran tersebut tampak bahwa rangkaian pengubah level tegangan
TTL menjadi level tegangan RS232 dapat berfungsi dengan baik.
4.2 Pengujian Pengiriman dan Penerimaan Data Untuk mengetahui data yang dikirim dan diterima sesuai atau tidak, maka
dilakukan pengujian menggunakan beberapa komunikasi.
45
4.2.1 Pengujian Komunikasi menggunakan Serial Hubungan Komputer-
Komputer Pengujian ini dilakukan untuk melihat data yang akan ditampilkan bila
menggunakan komunikasi serial dari komputer ke komputer. Sehingga dapat
dibandingkan apabila telah menggunakan transceiver.
Gambar 4.3 Pengiriman Data menggunakan aplikasi Visual Basic 6.0
Gambar 4.4 Penerimaan Data menggunakan aplikasi Visual Basic 6.0
Gambar 4.5 Penerimaan Data menggunakan aplikasi CodeVision AVR
46
Dari pengiriman pada gambar 4.3 dan penerimaan pada gambar 4.4 serta
gambar 4.5 dapat dibuktikan bahwa data berhasil diterima dengan baik
menggunakan interface RS232 dari komputer ke komputer.
Gambar 4.6 Error yang terjadi secara acak bila
menggunakan aplikasi Visual Basic 6.0
Menggunakan program yang sama yaitu Visual Basic 6.0, apabila data
dikirimkan secara berulang-ulang akan terjadi kesalahan secara acak. Bila data
pertama berhasil diterima dengan baik, data kedua juga berhasil diterima dengan
baik, data ketiga bisa terjadi penumpukan data sebagai contoh pada gambar 4.6 atau
juga bisa diterima dengan baik. Hal ini terjadi tidak tentu, walaupun pada text box
bagian penerima sudah diatur data maksimal yang dapat dituliskan yaitu 9 data dan
data akan pada text box akan dihapus apabila data yang diterima sudah mencapai 9
data.
Kode program yang digunakan :
Do usd = DoEvents() instring$ = MSComm1.Input Text1.Text = Text1.Text + instring$ If MSComm1.InBufferCount = 9 Then If Not Text1.Text = "" Then Text1.Text = "" End If End If Loop Until instring$ = Chr$(13)
Untuk mengantisipasi kesalahan yang muncul akibat penumpukan data, pada
program ditambahkan dengan fasilitas timer yang akan secara langsung menyimpan
data setiap 2 detik.
47
4.2.2 Pengujian Komunikasi dari Komputer ke Mikrokontroler Pengujian dilakukan untuk mengamati apakah nilai yang dikirimkan dari
komputer dapat diterima dengan baik oleh mikrokontroler. Pengiriman angka
dilakukan perdigit. Penampil pada pengujian ini menggunakan rangkaian LED 8
buah yang dipasangkan pada port 1 dari mikrokontroler. Kode program dapat
dilihat pada lampiran 1.
Tabel 4.3 Hasil Pengujian Komunikasi Komputer ke Mikrokontroler
Simbol ASCII Nilai Biner LED 1.7 – 1.0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 2 0 0 1 1 0 0 1 0 1 1 1 1 1 1 1 1 3 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 4 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 5 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 6 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 7 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 8 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 9 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1
Dari tabel 4.3 dapat dilihat bahwa nilai yang dikirimkan dari komputer tidak
dapat diterima dengan baik oleh mikrokontroler. Berapapun nilai yang diberikan,
LED akan tetap menampilkan nilai 1 1 1 1 1 1 1 1b (FFh).
4.2.3 Pengujian Komunikasi dari Mikrokontroler ke Komputer Pengujian dilakukan dengan mengisikan mikro menggunakan program
pengiriman sederhana dengan terlebih dahulu menentukan besar TH1.
fcHTH == 744.2521
• Kode Program : ORG 00h
CLR A MOV TMOD,#20H MOV TH1,#0FCH ; baud rate MOV SCON,#50H SETB TR1 SETB EA SETB ES
48
MOV A,#30H MOV SBUF,A CLR TI
END
Menggunakan program CodeVision AVR untuk melihat tampilan keluaran
mikrokontroler didapatkan hasil sepeti pada gambar 4.7 :
Gambar 4.7 Hasil Pengujian Baudrate
Dari data hasil pengujian baudrate tersebut dapat dilihat bahwa terjadi
penyimpangan penerimaan data yang seharusnya diterima 30H tetapi yang diterima
adalah E0H. Pengujian dengan nilai baudrate yang berbeda ditampilkan pada
gambar 4.8
Gambar 4.8 Pengujian menggunakan nilai baudrate yang berbeda
Menggunakan pendekatan data dari hasil perhitungan besarnya TH1,
dengan mengatur besarnya TH1 = feH didapatkan data yang juga berbeda dari data
yang dikirimkan. Apabila dihitung dengan nilai TH1 = fcH, maka besar nilai
baudrate rangkaian ini adalah :
5,7812)252256(1232
1012 6
=−
=
baudratexx
xbaudrate
Perubahan nilai TH1
Nilai Baudrate
49
Galat yang terjadi :
%619,18
%1009600
5.78129600
=
−=
Galat
xGalat
Besarnya error yang terjadi menyebabkan data yang dikirimkan berbeda dengan
data yang diterima oleh komputer.
Menggunakan nilai akumulator yang terus ditingkatkan, data yang
didapatkan dari pengujian semakin menyimpang hal ini tampak pada gambar 4.9.
Listing program pengujian dapat dilihat pada lampiran 2.
Gambar 4.9 Hasil Penerimaan Data pada Komputer
Dari data yang ditunjukkan dengan tanda panah pada gambar 4.9, dapat
dilihat bahwa nilai awal pengiriman yang bernilai 30h tidak lagi ditampilkan
dengan nilai E0h melainkan bernilai DAh. Data yang tertampil pada pengamatan
berubah naik turun.
50
4.2.4 Pengujian Penerimaan Data dari Pemancar dengan Nilai Data
Ditentukan Dengan mengatur nilai data yang akan dikirim melalui rangkaian pengirim,
diharapkan penerima akan menerima data yang sama dengan data yang dikirimkan.
Akan tetapi, penerima tidak dapat menerima data yang telah dikirimkan. Listing
program dapat dilihat pada lampiran 3 untuk program pengujian pengiriman.
4.2.5 Pengujian Pengiriman dan Penerimaan Menggunakan DX-24 Pada pengiriman dan penerimaan data menggunakan DX-24, penulis tidak
berhasil mendapatkan data. Pengujian hardware pada mikrokontroler dan pengubah
tegangan tidak ditemui kendala, inisialisasi transceiver DX-24 serta inisialisasi port
serial sudah dilakukan akan tetapi data tidak dapat ditampilkan 1 digit pun pada
program. Listing program dapat dilihat pada lampiran 4 untuk program pemancar
dan 5 untuk program penerima.
Berdasarkan pengujian pencocokan baudrate dari Mikrokontroler ke
komputer yang mengalami penyimpangan, mungkin mengakibatkan Rangkaian
Mikrokontroler tidak dapat mengirim maupun menerima.
4.3 Pengamatan pada Modul Pemancar dan Penerima Pengamatan pada modul pemancar dan penerima dimaksudkan untuk
mengetahui penyebab tidak dapat diterima maupun dikirimnya data.
4.3.1 Modul Pemancar Pengamatan rangkaian pada modul pemancar dilakukan dengan mengamati
port yang digunakan oleh program dan hasilnya pada transeiver. Pengamatan
dilakukan menggunakan osiloscop digital untuk mengetahui bentuk gelombang
keluaran yang dihasilkan dari pengiriman. Hasil pengamatan bentuk gelombang
dapat dilihat pada gambar 4.10 sampai dengan gambar 4.14.
51
Gambar 4.10 Hasil pengamatan pada port 1.0
Gambar 4.11 Hasil pengamatan pada port 1.4
Gambar 4.12 Hasil pengamatan pada port 1.5
52
Gambar 4.13 Hasil pengamatan pada port 1.6
Gambar 4.14 Hasil pengamatan pada port 1.7
Dari hasil pengamatan gelombang keluaran yang dihasilkan oleh port-port yang
digunakan untuk menghubungkan ke transceiver, dapat dilihat bahwa gelombang
kotak yang terbentuk merupakan kondisi awal penyalaan modul pemancar. Setelah
itu, semua port yang digunakan bernilai nol. Walaupun komputer mengirimkan
data, kondisi pada masing-masing port tetap nol. Hal ini menyebabkan tidak adanya
pengiriman data karena port 1.0 dan port 1.4 bernilai nol yang menandakan bahwa
transceiver berada pada kondisi standby. Kondisi ini dapat dilihat dengan lebih
jelas pada gambar 4.15 di bawah ini.
53
Gambar 4.15 Pengamatan Gelombang Keluaran
Port 1.0 dan Port 1.4 pada Pemancar
4.3.2 Modul Penerima Pengamatan rangkaian pada modul penerima dilakukan dengan mengamati
port yang digunakan oleh program dan hasilnya pada transeiver. Pengamatan
dilakukan menggunakan osiloscop digital untuk mengetahui bentuk gelombang
keluaran yang dihasilkan dari penerimaan. Hasil pengamatan bentuk gelombang
dapat dilihat pada gambar 4.16 sampai dengan gambar 4.20.
Gambar 4.16 Hasil pengamatan pada port 1.0
Port 1.4
Port 1.0
54
Gambar 4.17 Hasil pengamatan pada port 1.4
Gambar 4.18 Hasil pengamatan pada port 1.5
Gambar 4.19 Hasil pengamatan pada port 1.6
55
Gambar 4.20 Hasil pengamatan pada port 1.7
Dari hasil pengamatan gelombang keluaran yang dihasilkan oleh port-port
yang digunakan untuk menghubungkan dari transceiver, dapat dilihat bahwa
gelombang kotak yang terbentuk merupakan kondisi awal penyalaan modul
penerima. Pada port 1.4 dan port 1.5, bernilai 1. Penerimaan akan terjadi apabila
port 1.0 dan port 1.4 bernilai 0 dan 1, hal ini sesuai dengan mode operasi pada
transceiver sehingga dapat diketahui bahwa modul pemancar dapat bekerja. Bentuk
gelombang keluaran port 1.0 dan port 1.4 dapat dilihat pada gambar 4.21
Gambar 4.21 Pengamatan Gelombang Keluaran
Port 1.0 dan Port 1.4 pada Penerima
4.4 Pengujian Aplikasi Presensi Nirkabel Pengujian aplikasi presensi nirkabel dilakukan dengan melihat data yang
terdapat pada database. Database mula-mula diperlihatkan pada gambar 4.22.
Port 1.0
Port 1.4
56
Gambar 4.22 Tabel karyawan pada database MyData
Jumlah data pada database yang telah dituliskan ada 10 buah. Terdiri dari 8
no identitas laki-laki dan 2 no identitas perempuan
• Penambahan Data
Pada pengujian penambahan data, database akan ditambah dengan no
identitas 01 1001 100.
Gambar 4.23 Penambahan data
Pada gambar 4.23, data ditambahkan dengan sengaja mengosongkan kolom
alamat dan jabatan. Hasilnya tampak pada gambar 4.24 pada database.
57
Setelah data ditambahkan, semua kolom pengisian akan dikunci. Apabila
perintah “Hapus” dieksekusi, maka semua kolom yang dikunci akan dapat
diisi lagi.
Gambar 4.24 Hasil penambahan data
• Pengubahan Data
Pengubahan dilakukan terhadap data dengan no identitas 01 1001 100. No
identitas tidak dapat diubah. Pemanggilan data tersebut dapat dilakukan
dengan mengisi kolom no identitas atau dengan mengklik ganda nama yang
ada pada pada tabel.
Gambar 4.25 Pemanggilan data dan pengisian
No identitas dikunci
58
Pada gambar 4.25, dapat dilihat bahwa pada kolom alamat masih kosong
begitu pula dengan kolom jabatan. Hal ini dikarenakan pada saat
penambahan data, kedua kolom tersebut sengaja untuk dikosongkan.
Gambar 4.26 Hasil perubahan pada no identitas 011001100
Gambar 4.26 merupakan tampilan setelah data diubah. Sebelum
pengubahan data dilakukan, akan muncul tampilan konfirmasi yang
menanyakan apakah data akan diubah atau tidak. Apabila data tidak jadi
diubah maka database akan tetap seperti pada gambar 4.24 saat pertama kali
dipanggil. Gambar 4.27 menunjukkan perubahan database yang terjadi
Gambar 4.27 Hasil perubahan database pada no identitas 011001100
Tabel terisi
59
• Pencarian
Pengujian program pencarian dicontohkan dengan pencarian identitas
berdasarkan jenis kelamin seperti pada gambar 4.28 dan gambar 4.29.
Gambar 4.28 Hasil pencarian menggunakan pilihan jenis kelamin
“Perempuan”
Gambar 4.29 Hasil pencarian menggunakan pilihan jenis kelamin
“Laki-laki”
Program ini bukan merupakan program pencarian berbasis case-sensitif.
Apabila user ingin melakukan pencarian jenis kelamin wanita, user tidak
dapat menuliskan huruf “e” saja atau huruf setelah “n” awal dari kata
“perempuan”. Begitu pula dengan yang lain, misalkan user ingin mencari
60
no identitas “055114032” maka user harus melakukan pemasukan angka
dari angka terdepan seperti terlihat pada gambar 4.30.
Gambar 4.30 Hasil pencarian jika menggunakan nomor “114” dari no
“055114032”
• Penghapusan data
Pengujian penghapusan data dengan menghapus no identitas 01 1001 100
Gambar 4.31 Penghapusan data
61
Pada gambar 4.31, sebelum data diubah akan muncul peringatan apakah
data akan dihapus atau tidak. Apabila data dihapus maka data pada database
juga akan hilang. Hal ini ditunjukkan pada gambar 4.32.
Gambar 4.32 Data 01 1001 100 hilang
• Preview Laporan Harian
Preview laporan dapat ditampilkan bila data tanggal yang diinginkan
terdapat pada database. Gambar 4.33 merupakan salah satu laporan harian
pada tanggal 8 Juni 2010.
Gambar 4.33 Laporan harian
62
Apabila tanggal yang dipilih tidak terdapat record maka, program tidak
akan menampilkan preview laporan harian. Seperti terlihat pada gambar
4.34
Gamber 4.34 Tampilan bila data tidak ada
• Preview Laporan Bulanan
Preview laporan bulanan dapat ditampilkan bila data no identitas yang
diinginkan terdapat pada database. Seperti terlihat pada gambar 4.35.
Gambar 4.35 Laporan bulanan
Kesalahan akan muncul saat data tanggal ditampilkan. Ini disebabkan
karena program mencari berdasarkan no identitas dan tanggal sehingga bila
63
pada database terdapat no identitas yang sama dengan yang dicari dan
tanggal yang sama pula, maka semua data akan ditampilkan. Pada gambar
4.35 dapat dilihat bahwa pada tanggal 10 Juni 2010 tercetak dua kali dengan
waktu yang berbeda pula. Data yang sebenarnya terjadi adalah bahwa pada
tanggal tersebut terdapat dua no identitas yang berbeda dengan tanggal yang
sama.
• Form Utama
Pengujian tampilan pada form utama berhasil ditampilkan seperti terlihat
pada gambar 4.36. Data-data pada tabel yang ditampilkan pada form
tersebut harus diisi semua. Apabila ada masukan dari penerima maka tabel
jam keluar akan diisi dengan “00:00:00”, setelah terdapat data masukan
yang sama maka nilai “00:00:00” akan berisi waktu pada saat masukan
kedua.
Gambar 4.36 Tampilan Form Utama
4.5 Kekurangan pada Aplikasi Penampil
4.5.1 Database “waktu” Pengesetan awal pada database “waktu” mengakibatkan data dapat ditulis
lebih dari satu kali. Apabila terdapat perubahan data “jam_keluar”, maka semua
64
data “jam_keluar” pada no identitas yang dipanggil akan berubah semua. Perintah
SQL untuk mengubah data diaplikasikan kesemua data yang telah dicari. Sehingga
bila no identitasnya sama, tanggal berbeda dan dalam pengubahan berdasarkan dari
no identitas maka semua tanggal akan berubah jam keluarnya. Ini juga terjadi bila
tanggalnya sama dan pengubahan berdasarkan tanggal maka semua no identitas
pada tanggal tersebut akan berubah jam keluarnya.
Kesalahan ini muncul karena pada database tidak terdapat primary key dan
unique. Apabila terdapat maka data tidak dapat ditulis lebih dari satu kali karena
program database menolaknya. Program pencarian pada aplikasi ini hanya
memiliki batasan dua tingkat saja, yaitu if then else.
Pada gambar 4.35 dapat dilihat pada data bagian baris paling bawah, yaitu
data pada tanggal 10 Juni 2010. Jam masuk pukul “21:41:09” tetapi jam keluar
tercatat “15:24:06”, hal ini menunjukkan bahwa data pada tanggal tersebut pernah
dipanggil lebih dari dua kali sehingga untuk pemanggilan ke-3 kali dan seterusnya,
hanya data pada jam keluar saja yang berubah.
4.5.2 Form Utama Apabila program dijalankan untuk pertama kali, tabel pada form utama akan
kosong. Tabel akan terisi bila ada data yang masuk dan tersimpan atau terubah.
Jeda penyimpanan data adalah 2 detik, timer akan terus berputar dari 0 sampai 2
dan pada detik pertama maka akan dilakukan penyimpanan maupun perubahan
data.
Apabila terjadi perubahan tanggal, program hanya akan menampilkan data
pada hari itu saja. Kesalahan penyimpanan data terjadi pada tanggal yang baru.
Apabila ada data masukan baru dan data tersebut pernah menjadi masukan pada
tanggal sebelumnya, maka data tersebut akan terubah pada jam keluar saja.
Kesalahan ini muncul dikarenakan keterbatasan proses penyimpanan data pada
database.
65
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan. Kesimpulan yang dapat diambil dari Pengirim dan Penampil Data pada
Presensi Nirkabel adalah :
1. Sistem pengiriman dan penerimaan data menggunakan modul transceiver
2,4GHz tidak berhasil dibuat.
2. Modul Penerima dapat bekerja tetapi Modul Pemancar tidak dapat
mengirimkan data.
3. Terjadi penyimpangan pengiriman data dari mikrokontroler ke komputer
dikarenakan perbedaan nilai baudrate yang besar yaitu sebesar 18,619%.
4. Aplikasi Presensi Karyawan tidak berhasil bekerja dengan baik terdapat
kekurangan dalam proses penyimpanan pada database waktu.
5.2 Saran Saran bagi pengembangan aplikasi ini selanjutnya adalah:
1. Tabel database untuk penyimpanan waktu lebih baik dibuat sendiri-sendiri.
Hal ini dapat dilakukan untuk menghindari kesalahan penyimpanan data seperti
yang terjadi pada aplikasi ini.
2. Pembuatan program pada mikrokontroler akan lebih baik apabila menggunakan
bahasa pemrograman yang lebih tinggi.
66
DAFTAR PUSTAKA
[1] http://id.wikipedia.org, diakses 20 April 2009.
[2] Surya A, Yakhoub, 2005, Pengiriman Data Serial Tanpa Kabel Menggunakan
Transceiver 2.4Ghz, http://delta-electronic.com/article/wp-content/uploads/2008/
09/an0099.pdf, diakses 11 Juli 2009.
[3] Agfianto Eko Putra. Belajar Mikrokontroler AT89C51/52/55 (Teori dan Aplikasi)
ed. I. Yogyakarta : Penerbit Gaya Media, 2002.
[4] http://Atmel.com, diakses 18 November 2008.
[5] Budioko, Totok, 2005, Belajar dengan Mudah dan Cepat Pemrograman Bahasa C
dengan SDCC (Small Device C Compiler) pada Mikrokontroler AT89X051/
AT89C51/52 Teori, Simulasi dan Aplikasi. Yogyakarta : Penerbit Gaya Media.
[6] http://www.mikron123.com/index.php/Lain-lain/DX-24i/Detailed-product-
flyer.html, diakses 3 Juli 2009.
[7] Nalwan, Paulus Andi, 2006, Manual dx24, http://deltakits-sby.com/product/dx24/
manualdx24.pdf, diakses 6 Agustus 2009.
[8] Retna Prasetia & Catur Edi Widodo, 2004, Interfacing Port Paralel dan Port Serial
Komputer dengan Visual Basic 6.0. Yogyakarta: Penerbit Andi.
[9] Bunafit Nugroho & Indah Indriyanna, 2007, Membuat Aplikasi Database SQL
Server dengan Visual Basic 6.0. Yogyakarta : Penerbit Gaya Media.
[10] http://darry.wordpress.com, diakses 24 Agustus 2009
[11] http://www.es.co.th/Schemetic/PDF/TRF-24G, diakses 10 Maret 2009.
L a m p i r a n 1
PROGRAM PENGUJIAN KONEKSI
KOMPUTER KE MIKROKONTROLER ; Tampilan mula-mula ORG 00H SJMP START ; Vektor interupsi serial ORG 23H SJMP SERI_INT START: ; Penerimaan data melalui port serial MOV TMOD,#20H ; TIMER 1 MODE 2 MOV TH1,#0FCH ; BAUDRATE 9600 bps MOV SCON,#50H SETB TR1 SETB EA SETB ES PUTAR: SJMP PUTAR ; Penanganan interupsi serial SERI_INT: JB RI,YA ; APAKAH ADA INTERUPSI? JIKA ya LOMPAT KE YA RETI YA: MOV A,SBUF ; BACA KARAKTER YANG DITERIMA MOV P1,A ; ISI ACCUMULATOR DI PINDAH KE P1 CLR RI ; HAPUS RI AGAR BISA MENERIMA LAGI CLR A RETI
L a m p i r a n 2
PROGRAM PENGUJIAN KONEKSI
MIKROKONTROLER KE KOMPUTER
org 00h CLR A MOV TMOD,#20H MOV TH1,#0FcH ; baud rate MOV SCON,#50H SETB TR1 SETB EA SETB ES MOV A,#30H Putar: MOV SBUF,A CLR TI SJMP Putar END
L a m p i r a n 3 | 1
PROGRAM PENGUJIAN PENGIRIMAN
NILAI DATA DITENTUKAN
; Pin-pin untuk modul DX-24i DATA BIT P1.7 CLK1 BIT P1.6 CS BIT P1.4 CE BIT P1.0 DR1 BIT P1.5 ; Tampilan mula-mula ORG 00H SJMP START START: MOV TMOD,#01H LCALL INIT_TRW24 ; INISIALISASI MODUL DX-24i ACALL DELAY_100MS MOV P1,#00H ; Pengiriman data PUTAR: MOV A,#30h ; data yang dikirim ACALL KIRIM_DATA ; subrutin pengiriman data CLR CE ACALL DELAY_1MS SETB CE ACALL DELAY_1MS CLR A SJMP PUTAR ; Subrutin pengiriman data pada modul DX-24i KIRIM: PUSH B MOV B,#8 KIRIM8X: CLR CLK1 ACALL DELAY_1MS RLC A MOV DATA,C ACALL DELAY_1MS SETB CLK1 ACALL DELAY_1MS CLR CLK1 CLR DATA DJNZ B,KIRIM8X POP B RET KIRIM_PRINTAH: CLR CE ACALL DELAY_1MS SETB CS ACALL DELAY_1MS SJMP KIRIM_KAN KIRIM_DATA: SETB CE
L a m p i r a n 3 | 2
ACALL DELAY_1MS CLR CS ACALL DELAY_1MS KIRIM_KAN: ACALL KIRIM RET INIT_TRW24: CLR CE CLR DATA CLR CS CLR CLK1 ACALL DELAY_100MS MOV B,#18 MOV DPTR,#TABEL_INIT INT_TRW24KIRIM: ACALL AMBIL_TABEL ACALL KIRIM_PRINTAH INC DPTR DJNZ B,INT_TRW24KIRIM RET AMBIL_TABEL: MOV A,#00H MOVC A,@A+DPTR RET ;======================================================================================= ; Subrutin tunda waktu DELAY_100MS: MOV R0,#100 LAGI1: MOV TH0,#HIGH(-1000) MOV TL0,#LOW(-1000) SETB TR0 TUNGGU1: JNB TF0,TUNGGU1 CLR TF0 CLR TR0 DJNZ R0,LAGI1 RET DELAY_1MS: MOV R0,#1 LAGI2: MOV TH0,#HIGH (-1000) MOV TL0,#LOW (-1000) SETB TR0 TUNGGU2: JNB TF0,TUNGGU2 CLR TF0 CLR TR0 DJNZ R0,LAGI2 RET ;======================================================================================= TABEL_INIT: DB 10001110B ;143-136 DB 00001000B ;135-128 DB 00011100B ;127-120 DB 00001000B ;119-112 (DATA2_W)
L a m p i r a n 3 | 3
DB 00001000B ;111-104 (DATA1_W) DB 00000000B ;103-96 (ADDR2) DB 00000000B ;95-88 DB 00000000B ;87-80 DB 01001000B ;79-72 DB 01001000B ;71-64 DB 00000000B ;63-56 (ADDR1) DB 00000000B ;55-48 DB 00000000B ;47-40 DB 01000010B ;39-32 DB 01000010B ;31-24 DB 01000011B ;23-16 (ADDR_W,CRC_L,CRC_EN) DB 01101111B ;15-8 (RX2_EN,CM,RFDR_SB,XO_F,RF_PWR) DB 00010100B ;7-0 (RF_CH,RXEN)
L a m p i r a n 4 | 1
PROGRAM MODUL PEMANCAR
; Program modul Pemancar pada bagian DX-24d ; Pin-pin untuk modul DX-24i DATA BIT P1.7 CLK1 BIT P1.6 CS BIT P1.4 CE BIT P1.0 DR1 BIT P1.5 ;======================================================================================= ; Tampilan mula-mula ORG 00H SJMP START ; Vektor interupsi serial ORG 23H SJMP SERI_INT START: MOV TMOD,#01H ; TIMER 0 MODE 1 MOV R3,#9 LCALL INIT_TRW24 ; INISIALISASI MODUL DX-24i ACALL DELAY_100MS MOV P1,#00H ; Penerimaan data melalui port serial MOV TMOD,#20H ; TIMER 1 MODE 2 MOV TH1,#0FCH ; BAUDRATE 9600 bps MOV SCON,#50H SETB TR1 SETB EA SETB ES PUTAR: SJMP PUTAR ; Penanganan interupsi serial SERI_INT: JB RI,YA ; APAKAH ADA INTERUPSI? JIKA ya LOMPAT KE YA RETI YA: MOV A,SBUF ; BACA KARAKTER YANG DITERIMA CLR RI ; HAPUS RI AGAR BISA MENERIMA LAGI ACALL KIRIM_DATA CLR CE ACALL DELAY_1MS SETB CE ACALL DELAY_1MS DJNZ R3,YA RETI ; Subrutin pengiriman data pada modul DX-24i KIRIM: PUSH B MOV B,#8 KIRIM8X: CLR CLK1 ACALL DELAY_1MS RLC A
L a m p i r a n 4 | 2
MOV DATA,C ACALL DELAY_1MS SETB CLK1 ACALL DELAY_1MS CLR CLK1 CLR DATA DJNZ B,KIRIM8X POP B RET KIRIM_PRINTAH: CLR CE ACALL DELAY_1MS SETB CS ACALL DELAY_1MS SJMP KIRIM_KAN KIRIM_DATA: SETB CE ACALL DELAY_1MS CLR CS ACALL DELAY_1MS KIRIM_KAN: ACALL KIRIM RET INIT_TRW24: CLR CE CLR DATA CLR CS CLR CLK1 ACALL DELAY_100MS MOV B,#18 MOV DPTR,#TABEL_INIT INT_TRW24KIRIM: ACALL AMBIL_TABEL ACALL KIRIM_PRINTAH INC DPTR DJNZ B,INT_TRW24KIRIM RET AMBIL_TABEL: MOV A,#00H MOVC A,@A+DPTR RET ;======================================================================================= ; Subrutin tunda waktu DELAY_100MS: MOV R0,#100 LAGI1: MOV TH0,#HIGH(-1000) MOV TL0,#LOW(-1000) SETB TR0 TUNGGU1: JNB TF0,TUNGGU1 CLR TF0 CLR TR0 DJNZ R0,LAGI1 RET
L a m p i r a n 4 | 3
DELAY_1MS: MOV R0,#1 LAGI2: MOV TH0,#HIGH (-1000) MOV TL0,#LOW (-1000) SETB TR0 TUNGGU2: JNB TF0,TUNGGU2 CLR TF0 CLR TR0 DJNZ R0,LAGI2 RET ;======================================================================================= TABEL_INIT: DB 10001110B ;143-136 DB 00001000B ;135-128 DB 00011100B ;127-120 DB 00001000B ;119-112 (DATA2_W) DB 00001000B ;111-104 (DATA1_W) DB 00000000B ;103-96 (ADDR2) DB 00000000B ;95-88 DB 00000000B ;87-80 DB 01001000B ;79-72 DB 01001000B ;71-64 DB 00000000B ;63-56 (ADDR1) DB 00000000B ;55-48 DB 00000000B ;47-40 DB 01000010B ;39-32 DB 01000010B ;31-24 DB 01000011B ;23-16 (ADDR_W,CRC_L,CRC_EN) DB 01101111B ;15-8 (RX2_EN,CM,RFDR_SB,XO_F,RF_PWR) DB 00010100B ;7-0 (RF_CH,RXEN)
L a m p i r a n 5 | 1
PROGRAM MODUL PENERIMA
;Program Pada Bagian modul Penerima ;PIN-PIN UNTUK MODUL DX-24i DATA BIT P1.7 CLK1 BIT P1.6 CS BIT P1.4 CE BIT P1.0 DR1 BIT P1.5 ;=============================================================== ;TAMPILAN MULA-MULA ORG 00H START: MOV TMOD,#01H LCALL INIT_TRW24 ; INISIALISASI MODUL DX-24i ACALL DELAY_100MS MOV A,#00H ;======================================================================================= ACALL TERIMA ; Pengiriman data melalui port serial MOV TMOD,#20H MOV TH1,#0FCH MOV SCON,#50H SETB TR1 SETB EA SETB ES MOV SBUF,A JNB TI,$ CLR TI ; SUBRUTIN PENERIMAAN DATA PADA MODUL DX-24i KIRIM: PUSH B MOV B,#8 KIRIM8X: CLR CLK1 LCALL DELAY_1MS RLC A MOV DATA,C LCALL DELAY_1MS SETB CLK1 LCALL DELAY_1MS CLR CLK1 CLR DATA DJNZ B,KIRIM8X POP B RET TERIMA: MOV TMOD,#01H CLR CS LCALL DELAY_1MS SETB CE LCALL DELAY_1MS SETB DR1
L a m p i r a n 5 | 2
JNB DR1,$ PUSH B MOV B,#8 MOV A,#00H TERIMA8X: CLR CLK1 LCALL DELAY_1MS SETB DATA SETB CLK1 LCALL DELAY_1MS RL A MOV C,DATA MOV ACC.0,C DJNZ B,TERIMA8X CLR CLK1 POP B RET KIRIM_PRINTAH: CLR CE LCALL DELAY_1MS SETB CS LCALL DELAY_1MS SJMP KIRIM_KAN KIRIM_DATA: SETB CE LCALL DELAY_1MS CLR CS LCALL DELAY_1MS KIRIM_KAN: ACALL KIRIM RET INIT_TRW24: CLR CE CLR DATA CLR CS CLR CLK1 LCALL DELAY_100MS MOV B,#18 MOV DPTR,#TABEL_INIT INT_TRW24KIRIM: ACALL AMBIL_TABEL ACALL KIRIM_PRINTAH INC DPTR DJNZ B,INT_TRW24KIRIM RET AMBIL_TABEL: MOV A,#00H MOVC A,@A+DPTR RET ;======================================================================================= ; SUBRUTIN TUNDA WAKTU DELAY_1MS: MOV R1,#1 LAGI1: MOV TH0,#HIGH (-1000) MOV TL0,#LOW (-1000)
L a m p i r a n 5 | 3
SETB TR0 TUNGGU1: JNB TF0,TUNGGU1 CLR TF0 CLR TR0 DJNZ R1,LAGI1 RET DELAY_100MS: MOV R1,#100 LAGI2: MOV TH0,#HIGH (-1000) MOV TL0,#LOW (-1000) SETB TR0 TUNGGU2: JNB TF0,TUNGGU2 CLR TF0 CLR TR0 DJNZ R1,LAGI2 RET ;======================================================================================= TABEL_INIT: DB 10001110B ;143-136 DB 00001000B ;135-128 DB 00011100B ;127-120 DB 00001000B ;119-112 (DATA2_W) DB 00001000B ;111-104 (DATA1_W) DB 00000000B ;103-96 (ADDR2) DB 00000000B ;95-88 DB 00000000B ;87-80 DB 01001000B ;79-72 DB 01001000B ;71-64 DB 00000000B ;63-56 (ADDR1) DB 00000000B ;55-48 DB 00000000B ;47-40 DB 01000010B ;39-32 DB 01000010B ;31-24 DB 01000011B ;23-16 (ADDR_W,CRC_L,CRC_EN) DB 01101111B ;15-8 (RX2_EN,CM,RFDR_SB,XO_F,RF_PWR) DB 00010101B ;7-0 (RF_CH,RXEN)
L a m p i r a n 6
PERANCANGAN HARDWARE
1. Rangkaian pada Modul Pemancar
2. Rangkaian pada Modul Penerima
L a m p i r a n 7 | 1
PERANCANGAN SOFTWARE
1. Aplikasi Pengirim No Identitas
Gambar L.1 Form Aplikasi Pengirim
Tabel L.1 Pengaturan Form Pengirim
Komponen Properti Nilai Label1 Caption NO IDENTITAS TextBox1 Name Text1
CommandButton1 Name Command1 Caption &Kirim
Timer1 Name Timer1 MSComm1 Name MSComm1
Listing program :
Private Sub Command1_Click() If Text1.Text = "" Then MsgBox "Tidak ada data yang akan dikirim", vbInformation, "PERHATIAN" Else MSComm1.Output = Text1.Text MsgBox "Data telah dikirim!!", vbInformation, "PERHATIAN" Text1.Text = "" End If Text1.SetFocus End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "9600,N,8,1" MSComm1.InputLen = 1 MSComm1.PortOpen = True End Sub
L a m p i r a n 7 | 2
2. Aplikasi Pengujian Untuk Menerima Data
Gambar L2 Aplikasi yang digunakan untuk menguji penerimaan data
Tabel L.2 Pengaturan Form Penampil
Komponen Properti Nilai Label1 Caption PENERIMA NO IDENTITAS
TextBox1 Name Text1 MaxLength 9
MSComm1 Name MSComm1
Listing Program
Private Sub Form_Activate() Do usd = DoEvents() instring$ = MSComm1.Input Text1.Text = Text1.Text + instring$ If MSComm1.InBufferCount = 9 Then Text1.Text = "" End If Loop Until instring$ = Chr$(13) End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "9600,N,8,1" MSComm1.InputLen = 1 MSComm1.PortOpen = True End Sub
3. Aplikasi Presensi Nirkabel Dalam aplikasi ini, membutuhkan database untuk menyimpan, mengubah,
mencari, dan menghapus data. Dengan menggunakan software SQL Server 2000
Enterprise Manager, dilakukan penyetingan database terlebih dahulu.
L a m p i r a n 7 | 3
(a) (b)
Gambar L.3 Desain tabel pada database “MyData”.
(a) Tabel karyawan (b) Tabel waktu
Pada tabel “karyawan”, kolom “alamat” dan kolom “jabatan” adalah kolom
yang diperbolehkan untuk tidak diisi. Hal ini dimaksudkan agar kedua kolom
tersebut dapat diisikan belakangan, yang terpenting adalah kolom “no_identitas”,
“nama” dan “jenis kelamin”. Kolom “no_identitas” merupakan primary key dan
unique, hal ini dimaksudkan supaya tidak ada data yang sama.
Pada tabel “waktu” tidak menggunakan primary key, karena apabila
menggunakannya data tidak dapat dibuat sama.
3.1 Modul pada Program 1. Modul listview
Listing Program : Public Sub AturListView(LSV As ListView, ParamArray lstview()) Dim i, lebar LSV.View = lvwReport lebar = LSV.Width - 80 With LSV.ColumnHeaders .Clear For i = 0 To UBound(lstview) - 1 Step 2 .Add , , lstview(i), (lstview(i + 1) _ * lebar) / 100 Next i End With End Sub
2. Modul koneksi
Listing program : Option Explicit Public Koneksi As New ADODB.Connection Public Rs As ADODB.Recordset Public StrConnect As String
Public SqlSimpan As String Public SqlUpdate As String
L a m p i r a n 7 | 4
Public SqlDelete As String Public SQL As String Public View As ListItem Public i As Byte
Public Sub Bukadatabase()
Set Koneksi = New ADODB.Connection StrConnect = "Driver={SQL Server}; " _ & " SERVER=(local); DATABASE=MyData" If Koneksi.State = adStateOpen Then Koneksi.Close Set Koneksi = New ADODB.Connection Koneksi.Open StrConnect Else Koneksi.Open StrConnect End If
End Sub
3.2 Form pada Program Terdapat 7 buah form pada program Aplikasi Presensi Nirkabel, antara lain: Form
Utama, Form Tambah, Form Edit, Form Hapus, Form Pencarian, Form Preview Harian,
dan Form Preview Bulanan.
A. Form Utama
Gambar L.4 FormUtama
Tabel L.4 Properti Form Utama
Komponen Properti Nilai
ListView Name ListView1 GridLines TRUE View 3- lvwReport
L a m p i r a n 7 | 5
Tabel L.4 (Lanjutan) Properti Form Utama
Komponen Properti Nilai TextBox1 Name Text1 TextBox2 Name Text2 TextBox3 Name Text3 TextBox4 Name Text4 TextBox5 Name Text5 MSComm Name MSComm1 Timmer Name Timmer1 Timmer Name Timmer2
Listing Program Dim a, b, c As Long Private Sub Form_Activate() Do usd = DoEvents() instring$ = MSComm1.Input Text3.Text = Text3.Text + instring$ If MSComm1.InBufferCount = 9 Then If Not Text3.Text = "" Then Call simpan End If End If Loop Until instring$ = Chr$(13) End Sub Private Sub Form_Load() 'settingan koneksi ke Serial MSComm1.CommPort = 1 MSComm1.Settings = "9600,N,8,1" MSComm1.InputLen = 1 MSComm1.PortOpen = True If App.PrevInstance = True Then End 'Aplikasi hanya berjalan 1x Call Bukadatabase Call AturListView(ListView1, "No Identitas", _ 12, "Nama Lengkap", 30, "Jenis Kelamin", 15, _ "Jabatan", 18, "Jam Masuk", 12, "Jam Keluar", 12) Set Rs = New ADODB.Recordset SQL = _ "SELECT karyawan.no_identitas, karyawan.nama," _ & " karyawan.jenis_kelamin,karyawan.jabatan,waktu.jam_masuk, " _ & " waktu.jam_keluar FROM karyawan,waktu WHERE " _ & " karyawan.no_identitas=waktu.no_identitas AND ((waktu.tanggal= " _ & " '" & Text2.Text & "'))" Rs.Open SQL, koneksi, adOpenDynamic, adLockOptimistic ListView1.ListItems.Clear
L a m p i r a n 7 | 6
While Not Rs.EOF Set View = ListView1.ListItems.Add View.Text = Rs!no_identitas View.SubItems(1) = Rs!nama View.SubItems(2) = Rs!jenis_kelamin View.SubItems(3) = Rs!jabatan View.SubItems(4) = Rs!jam_masuk View.SubItems(5) = Rs!jam_keluar Rs.MoveNext Wend ListView1.Refresh End Sub Private Sub Form_Unload(Cancel As Integer) End End Sub Private Sub Timer2_timer() a = a + 1 b = a Mod 3 Text5.Text = b If Not Text3.Text = "" Then If Text5.Text = 1 Then Call simpan End If End If End Sub Private Sub Timer1_Timer() Text1 = Time Text2 = Date End Sub Private Sub MuKeluar_Click() Unload Me End End Sub Private Sub SmCari_Click() FrmPencarian.Show FrmUtama.Enabled = False End Sub Private Sub SmHHapus_Click() FrmHapus.Show FrmUtama.Enabled = False End Sub Private Sub SmHTambah_Click() FrmTambah.Show FrmUtama.Enabled = False End Sub Private Sub SmHUbah_Click() FrmEdit.Show FrmUtama.Enabled = False End Sub
L a m p i r a n 7 | 7
Private Sub SmLBulanan_Click() FrmPreviewBulanan.Show FrmUtama.Enabled = False End Sub Private Sub SmLHarian_Click() FrmPreviewHarian.Show FrmUtama.Enabled = False End Sub Private Sub simpan() 'Pencarian Set Rs = New ADODB.Recordset Rs.Open " SELECT * FROM karyawan WHERE " _ & " no_identitas LIKE '" & Text3.Text & "%'", _ koneksi, adOpenDynamic, adLockBatchOptimistic If Not Rs.EOF Then Set Rs = New ADODB.Recordset Rs.Open " SELECT * FROM waktu WHERE " _ & " no_identitas LIKE '" & Text3.Text & "%'", _ koneksi, adOpenDynamic, adLockBatchOptimistic If Rs.EOF Then 'simpan data SqlSimpan = "INSERT INTO waktu" _ & "(no_identitas,jam_masuk,jam_keluar,tanggal)" _ & "VALUES ('" & Text3.Text & "','" _ & Text1.Text & "','" _ & Text4.Text & "','" _ & Text2.Text & "')" koneksi.Execute SqlSimpan, , adCmdText Set Rs = New ADODB.Recordset SQL = _ "SELECT karyawan.no_identitas, karyawan.nama," _ & " karyawan.jenis_kelamin,karyawan.jabatan,waktu.jam_masuk, " _ & " waktu.jam_keluar FROM karyawan,waktu WHERE " _ & " karyawan.no_identitas=waktu.no_identitas AND ((waktu.tanggal= " _ & " '" & Text2.Text & "'))" Rs.Open SQL, koneksi, adOpenDynamic, adLockOptimistic ListView1.ListItems.Clear While Not Rs.EOF Set View = ListView1.ListItems.Add View.Text = Rs!no_identitas View.SubItems(1) = Rs!nama View.SubItems(2) = Rs!jenis_kelamin View.SubItems(3) = Rs!jabatan View.SubItems(4) = Rs!jam_masuk View.SubItems(5) = Rs!jam_keluar Rs.MoveNext Wend ListView1.Refresh Text3.Text = "" Else 'update database SqlUpdate = "" SqlUpdate = "update waktu " _
L a m p i r a n 7 | 8
& " set jam_keluar ='" _ & Text1.Text & "'" & " where no_identitas ='" & Text3.Text & "'" koneksi.Execute SqlUpdate, , adCmdText Set Rs = New ADODB.Recordset SQL = _ "SELECT karyawan.no_identitas, karyawan.nama," _ & " karyawan.jenis_kelamin,karyawan.jabatan,waktu.jam_masuk, " _ & " waktu.jam_keluar FROM karyawan,waktu WHERE " _ & " karyawan.no_identitas=waktu.no_identitas AND ((waktu.tanggal= " _ & " '" & Text2.Text & "'))" Rs.Open SQL, koneksi, adOpenDynamic, adLockOptimistic ListView1.ListItems.Clear While Not Rs.EOF Set View = ListView1.ListItems.Add View.Text = Rs!no_identitas View.SubItems(1) = Rs!nama View.SubItems(2) = Rs!jenis_kelamin View.SubItems(3) = Rs!jabatan View.SubItems(4) = Rs!jam_masuk View.SubItems(5) = Rs!jam_keluar Rs.MoveNext Wend ListView1.Refresh Text3.Text = "" End If
Else Text3.Text = "" End If
End Sub
B. Form Tambah
Gambar L5 Program Tambah Data
L a m p i r a n 7 | 9
Tabel L.5 Pengaturan Form Tambah Data
Komponen Properti Nilai Label1 Caption PENCARIAN DATA KARYAWAN Label2 Caption No Identitas Label3 Caption Nama Lengkap Label4 Caption Jenis Kelamin Label5 Caption Alamat Label6 Caption Jabatan Label7 Caption - Label8 Caption -
ComboBox1 Name Combo1 Caption Pilih
ComboBox2 Name Combo2 Caption Pilih
TextBox1 Name Text1 TextBox2 Name Text2 TextBox3 Name Text3 TextBox4 Name Text4 TextBox5 Name Text5
Tabel L.5 Pengaturan Form Tambah Data (lanjutan)
Komponen Properti Nilai TextBox6 Name Text6 TextBox7 Name Text7 TextBox8 Name Text8 TextBox9 Name Text9 TextBox10 Name Text10 TextBox11 Name Text11
Multiline TRUE
Scrollbar 2 - Vertical
CommandButton1 Name Command1
Caption &Tambah
CommandButton2 Name Command2
Caption &Hapus
CommandButton3 Name Command1
Caption &Keluar
L a m p i r a n 7 | 10
Listing program :
'Mematikan Form Sub FormMati() Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False Text5.Enabled = False Text6.Enabled = False Text7.Enabled = False Text8.Enabled = False Text9.Enabled = False Text10.Enabled = False Text11.Enabled = False Combo1.Enabled = False Combo2.Enabled = False End Sub 'Menghidupkan Form Sub FormHidup() Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text4.Enabled = True Text5.Enabled = True Text6.Enabled = True Text7.Enabled = True Text8.Enabled = True Text9.Enabled = True Text10.Enabled = True Text11.Enabled = True Combo1.Enabled = True Combo2.Enabled = True End Sub 'Mengosongkan objek form Sub FormKosong() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" Text8.Text = "" Text9.Text = "" Text10.Text = "" Text11.Text = "" Combo1.Text = "Pilih" Combo2.Text = "Pilih"
L a m p i r a n 7 | 11
End Sub Private Sub Form_Load() Call FormKosong Call FormHidup Call Bukadatabase Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True Combo1.AddItem "Laki-laki" Combo1.AddItem "Perempuan" Combo2.AddItem "Direktur" Combo2.AddItem "H.R.D" Combo2.AddItem "Karyawan Tetap" Combo2.AddItem "Kepala Bagian" Combo2.AddItem "Kepala Seksi" Combo2.AddItem "Manajer" Combo2.AddItem "Office Boy/Girl" Combo2.AddItem "Partime" Combo2.AddItem "Sekretaris" End Sub Private Sub Command1_Click() If Text1.Text = "" Then MsgBox "Digit per-1 masih kosong", vbOKOnly & vbCritical, "PERINGATAN" Text1.SetFocus ElseIf Text2.Text = "" Then MsgBox "Digit ke-2 masih kosong", vbOKOnly & vbCritical, "PERINGATAN" Text2.SetFocus ElseIf Text3.Text = "" Then MsgBox "Digit ke-3 masih kosong", vbOKOnly & vbCritical, "PERINGATAN" Text3.SetFocus ElseIf Text4.Text = "" Then MsgBox "Digit ke-4 masih kosong", vbOKOnly & vbCritical, "PERINGATAN" Text4.SetFocus ElseIf Text5.Text = "" Then MsgBox "Digit ke-5 masih kosong", vbOKOnly & vbCritical, "PERINGATAN" Text5.SetFocus ElseIf Text6.Text = "" Then MsgBox "Digit ke-6 masih kosong", vbOKOnly & vbCritical, "PERINGATAN" Text6.SetFocus ElseIf Text7.Text = "" Then MsgBox "Digit ke-7 masih kosong", vbOKOnly & vbCritical, "PERINGATAN" Text7.SetFocus ElseIf Text8.Text = "" Then MsgBox "Digit ke-8 masih kosong", vbOKOnly & vbCritical, "PERINGATAN" Text8.SetFocus ElseIf Text9.Text = "" Then MsgBox "Digit ke-9 masih kosong", vbOKOnly & vbCritical, "PERINGATAN" Text9.SetFocus ElseIf Text10.Text = "" Then MsgBox "Kolom nama masih kosong", vbOKOnly & vbCritical, "PERINGATAN" Text10.SetFocus
L a m p i r a n 7 | 12
ElseIf Combo1.Text = "Pilih" Then MsgBox "Tentukan jenis kelamin anda", vbOKOnly & vbCritical, "PERINGATAN" Combo1.SetFocus ElseIf Combo2.Text = "Pilih" Then MsgBox "Isikan jabatan anda", vbOKOnly & vbCritical, "PERINGATAN" Combo1.SetFocus Else 'simpan data SqlSimpan = "INSERT INTO karyawan" _ & "(no_identitas,nama,jenis_kelamin,alamat,jabatan)" _ & "VALUES ('" & Text1.Text & Text2.Text & Text3.Text & _ Text4.Text & Text5.Text & Text6.Text & _ Text7.Text & Text8.Text & Text9.Text & "','" _ & Text10.Text & "','" _ & Combo1.Text & "','" _ & Text11.Text & "','" _ & Combo2.Text & "')" koneksi.Execute SqlSimpan, , adCmdText MsgBox "Data telah disimpan di dalam database!", vbInformation, "PERHATIAN" Call FormMati Command1.Enabled = False Command2.Enabled = True Command3.Enabled = True End If End Sub Private Sub Command2_Click() Call FormKosong Call FormHidup Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True End Sub Private Sub Command3_Click() FrmUtama.Show FrmTambah.Hide FrmUtama.Enabled = True Call FormKosong Call FormHidup Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True End Sub Private Sub Form_Unload(Cancel As Integer) FrmUtama.Show FrmTambah.Hide FrmUtama.Enabled = True
L a m p i r a n 7 | 13
Call FormKosong Call FormHidup Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True End Sub
C. Form Edit
Gambar L6 Form Ubah
Tabel L.6 Pengaturan Form Ubah
Komponen Properti Nilai Label1 Caption UBAH DATA KARYAWAN Label2 Caption No Identitas Karyawan Label3 Caption Nama Lengkap Label4 Caption Alamat Label5 Caption Jabatan TextBox1 Name Text1 TextBox2 Name Text2
TextBox3 Name Text3 Multiline TRUE Scrollbar 2 - Vertical
ComboBox1 Name Combo1 Caption
CommandButton1 Name Command1 Caption &Cari
L a m p i r a n 7 | 14
Tabel L.6 Pengaturan Form Ubah
Komponen Properti Nilai CommandButton2 Name Command2
Caption &Ubah CommandButton3 Name Command1
Caption &Keluar
ListView Name ListView1
FullRowSelect TRUE
GridLines TRUE
View 3- lvwReport
Listing Program : ‘Menghidupkan Form Sub FormHidup() Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Combo1.Enabled = True End Sub 'Mengosongkan objek form Sub FormKosong() Text1.Text = "" Text2.Text = "" Text3.Text = "" Combo1.Text = "" End Sub Private Sub Command1_Click() Set Rs = New ADODB.Recordset Rs.Open " SELECT * FROM karyawan WHERE " _ & " no_identitas LIKE '" & Text1.Text & "%'", _ koneksi, adOpenDynamic, adLockBatchOptimistic If Not Rs.EOF Then Text2.Text = Rs.Fields("nama") Text3.Text = Rs.Fields("alamat") Combo1.Text = Rs.Fields("jabatan") Command1.Enabled = False Text1.Enabled = False Command2.Enabled = True Command3.Enabled = True Else MsgBox "No Identitas tidak ada", vbOKOnly + vbInformation, "CEK DATA"
L a m p i r a n 7 | 15
Call FormKosong Command1.Enabled = True Text1.SetFocus End If End Sub Private Sub Command2_Click() If Text1.Text = "" Then MsgBox "Kolom kode masih kosong" _ , vbokonl & vbCritical, "PERHATIAN" Text1.SetFocus Else konfirmasi = MsgBox("Yakin akan mengubah data ini?" _ , vbYesNo + vbCritical, "PERUBAHAN") If konfirmasi = vbYes Then SqlUpdate = "" SqlUpdate = "update karyawan " _ & " set nama ='" _ & Text2.Text & "'," _ & " alamat ='" & Text3.Text _ & "'," & " jabatan ='" & Combo1.Text _ & "'" & " where no_identitas ='" & Text1.Text & "'" koneksi.Execute SqlUpdate, , adCmdText Call Form_Load MsgBox "Data telah diubah" _ , vbOKOnly + vbInformation, "PERHATIAN" Else Call FormHidup Call FormKosong End If Call FormKosong Call FormHidup Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True End If End Sub Private Sub Command3_Click() FrmUtama.Show FrmEdit.Hide FrmUtama.Enabled = True Call FormKosong Call FormHidup Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True End Sub Private Sub Form_Load()
L a m p i r a n 7 | 16
Call FormKosong Call FormHidup Call AturListView(ListView1, "No Identitas", _ 15, "Nama Lengkap", 40, "Jenis Kelamin", 22, "Alamat", _ 50, "Jabatan", 24) Call Bukadatabase Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True Set Rs = New ADODB.Recordset Rs.Open "SELECT * FROM karyawan ORDER BY no_identitas" _ , koneksi, adOpenDynamic, adLockOptimistic ListView1.ListItems.Clear While Not Rs.EOF Set View = ListView1.ListItems.Add View.Text = Rs!no_identitas View.SubItems(1) = Rs!nama View.SubItems(2) = Rs!jenis_kelamin View.SubItems(3) = Rs!alamat View.SubItems(4) = Rs!jabatan Rs.MoveNext Wend ListView1.Refresh Combo1.AddItem "Direktur" Combo1.AddItem "Manajer" Combo1.AddItem "H.R.D" Combo1.AddItem "Kepala Bagian" Combo1.AddItem "Kepala Seksi" Combo1.AddItem "Karyawan Tetap" Combo1.AddItem "Partime" End Sub Private Sub Form_Unload(Cancel As Integer) FrmUtama.Show FrmEdit.Hide FrmUtama.Enabled = True Call FormKosong Call FormHidup Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True End Sub Private Sub listview1_dblclick() On Error Resume Next tampil (True), _ (ListView1.SelectedItem.Text) Command1.Enabled = False Command2.Enabled = True Text1.Enabled = False End Sub
L a m p i r a n 7 | 17
Private Sub tampil(x As Boolean, mkode As String) On Error Resume Next Set Rs = New ADODB.Recordset Rs.Open "SELECT * From karyawan ", koneksi, adOpenDynamic, adLockBatchOptimistic With Rs If .RecordCount > 0 Then .MoveFirst If x = True Then .Find ("no_identitas = '" & Trim(mkode) & "'") Else .Find ("nama = '" & Trim(mkode) & "'") End If If Not .EOF Then Text1.Text = .Fields("no_identitas") Text2.Text = .Fields("nama") Text3.Text = .Fields("alamat") Combo1.Text = .Fields("jabatan") Else MsgBox "Data tidak ada", vbOKOnly + vbInformation, "CEK DATA" End If End With End Sub
D. Form Hapus
Gambar L.7 Form Hapus
L a m p i r a n 7 | 18
Tabel L.7 Properti Form Hapus
Komponen Properti Nilai Label1 Caption HAPUS DATA KARYAWAN Label2 Caption No Identitas Karyawan Label3 Caption Nama Lengkap Label4 Caption Alamat Label5 Caption Jabatan TextBox1 Name Text1 TextBox2 Name Text2
TextBox3 Name Text3 Multiline TRUE Scrollbar 2 - Vertical
TextBox4 Name Text4
CommandButton1 Name Command1 Caption &Cari
CommandButton2 Name Command2 Caption &Hapus
CommandButton3 Name Command1 Caption &Keluar
Tabel L.7 Properti Form Hapus
Komponen Properti Nilai ListView Name ListView1
FullRowSelect TRUE
GridLines TRUE
View 3- lvwReport
Listing Program :
'Mematikan Form Sub FormMati() Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False End Sub 'Menghidupkan Form Sub FormHidup() Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True
L a m p i r a n 7 | 19
Text4.Enabled = True End Sub 'Mengosongkan objek form Sub FormKosong() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" End Sub Private Sub Command1_Click() Set Rs = New ADODB.Recordset Rs.Open " SELECT * FROM karyawan WHERE " _ & " no_identitas LIKE '" & Text1.Text & "%'", _ koneksi, adOpenDynamic, adLockBatchOptimistic If Not Rs.EOF Then Text2.Text = Rs.Fields("nama") Text3.Text = Rs.Fields("alamat") Text4.Text = Rs.Fields("jabatan") Command1.Enabled = False Call FormMati Command2.Enabled = True Command3.Enabled = True Else MsgBox "No Identitas tidak ada", vbOKOnly + vbInformation, "CEK DATA" Call FormKosong Command1.Enabled = True Text1.SetFocus End If End Sub Private Sub Command2_Click() If Text1.Text = "" Then MsgBox "Kolom kode masih kosong" _ , vbokonl & vbCritical, "PERHATIAN" Text1.SetFocus Else konfirmasi = MsgBox("Yakin akan menghapus data ini?" _ , vbYesNo + vbCritical, "PENGHAPUSAN") If konfirmasi = vbYes Then SqlDelete = "" SqlDelete = "Delete from karyawan where" _ & " no_identitas='" & Text1.Text & "'" koneksi.Execute SqlDelete, , adCmdText
L a m p i r a n 7 | 20
'Refresh Set Rs = New ADODB.Recordset Rs.Open "SELECT * FROM karyawan ORDER BY no_identitas" _ , koneksi, adOpenDynamic, adLockOptimistic ListView1.ListItems.Clear While Not Rs.EOF Set View = ListView1.ListItems.Add View.Text = Rs!no_identitas View.SubItems(1) = Rs!nama View.SubItems(2) = Rs!jenis_kelamin View.SubItems(3) = Rs!alamat View.SubItems(4) = Rs!jabatan Rs.MoveNext Wend ListView1.Refresh MsgBox "Data telah dihapus dari database" _ , vbOKOnly + vbInformation, "PERHATIAN" Else Call FormHidup Call FormKosong End If Call FormKosong Call FormHidup Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True ListView1.Refresh End If End Sub Private Sub Command3_Click() FrmUtama.Show FrmHapus.Hide FrmUtama.Enabled = True Call FormKosong Call FormHidup Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True End Sub Private Sub Form_Load() Call FormKosong Call FormHidup Call AturListView(ListView1, "No Identitas", _ 15, "Nama Lengkap", 40, "Jenis Kelamin", 22, "Alamat", _ 50, "Jabatan", 24)
L a m p i r a n 7 | 21
Call Bukadatabase Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True Set Rs = New ADODB.Recordset Rs.Open "SELECT * FROM karyawan ORDER BY no_identitas" _ , koneksi, adOpenDynamic, adLockOptimistic ListView1.ListItems.Clear While Not Rs.EOF Set View = ListView1.ListItems.Add View.Text = Rs!no_identitas View.SubItems(1) = Rs!nama View.SubItems(2) = Rs!jenis_kelamin View.SubItems(3) = Rs!alamat View.SubItems(4) = Rs!jabatan Rs.MoveNext Wend ListView1.Refresh End Sub Private Sub Form_Unload(Cancel As Integer) FrmUtama.Show FrmHapus.Hide FrmUtama.Enabled = True Call FormKosong Call FormHidup Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True End Sub Private Sub listview1_dblclick() On Error Resume Next tampil (True), _ (ListView1.SelectedItem.Text) Command1.Enabled = False Command2.Enabled = True Call FormMati End Sub Private Sub tampil(x As Boolean, mkode As String) On Error Resume Next Set Rs = New ADODB.Recordset Rs.Open "SELECT * From karyawan ", koneksi, adOpenDynamic, adLockBatchOptimistic With Rs If .RecordCount > 0 Then .MoveFirst If x = True Then .Find ("no_identitas = '" & Trim(mkode) & "'") Else .Find ("nama = '" & Trim(mkode) & "'") End If If Not .EOF Then Text1.Text = .Fields("no_identitas") Text2.Text = .Fields("nama") Text3.Text = .Fields("alamat") Text4.Text = .Fields("jabatan") Else
L a m p i r a n 7 | 22
MsgBox "Data tidak ada", vbOKOnly + vbInformation, "CEK DATA" End If End With End Sub
E. Form Pencarian
Gambar L8 Program Pencarian
Tabel L.8 Pengaturan Form Pencarian
Komponen Properti Nilai
Label1 Name Label1 Caption PENCARIAN DATA KARYAWAN
Label2 Caption Jumlah Data: Label3 Caption
ComboBox1 Name Combo1 Caption Pilih
TextBox1 Name Text1
ListView
Name ListView1 FullRowSelect TRUE GridLines TRUE View 3- lvwReport
CommandButton1 Name Command1 Caption &Cari
Tabel L.8 Pengaturan Form Pencarian
Komponen Properti Nilai CommandButton2 Name Command2 Caption &Hapus CommandButton3 Name Command1 Caption &Keluar
L a m p i r a n 7 | 23
Listing program
'Mengosongkan objek form Sub FormKosong() Text1.Text = "" Combo1.Text = "Pilih" Label3.Caption = "" End Sub Private Sub Form_Load() Call AturListView(ListView1, "No Identitas", _ 15, "Nama Lengkap", 30, "Jenis Kelamin", 15, "Alamat", _ 45, "Jabatan", 18) Call Bukadatabase Call FormKosong Combo1.AddItem "No Identitas" Combo1.AddItem "Nama" Combo1.AddItem "Jenis Kelamin" Combo1.AddItem "Jabatan" ListView1.ListItems.Clear End Sub Private Sub Command1_Click() If Combo1.Text = "Pilih" Then MsgBox "Kriteria pencarian masih kosong, " _ & " silahkan dipilih terlebih dahulu", vbExclamation, "PERINGATAN" Exit Sub End If If Combo1.Text = "No Identitas" Then SQL = " SELECT * FROM karyawan WHERE " _ & " no_identitas LIKE '" & Text1.Text & "%'" ElseIf Combo1.Text = "Nama" Then SQL = " SELECT * FROM karyawan WHERE " _ & " nama LIKE '" & Text1.Text & "%'" ElseIf Combo1.Text = "Jenis Kelamin" Then SQL = " SELECT * FROM karyawan WHERE " _ & " jenis_kelamin LIKE '" & Text1.Text & "%'" ElseIf Combo1.Text = "Jabatan" Then SQL = " SELECT * FROM karyawan WHERE " _ & " jabatan LIKE '" & Text1.Text & "%'" End If Set Rs = New ADODB.Recordset Rs.Open SQL, koneksi, adOpenDynamic, adLockBatchOptimistic ListView1.ListItems.Clear
L a m p i r a n 7 | 24
If Not Rs.EOF Then i = 1 Rs.MoveFirst Do While Not Rs.EOF Set View = ListView1.ListItems.Add View.Text = Rs!no_identitas View.SubItems(1) = Rs!nama View.SubItems(2) = Rs!jenis_kelamin View.SubItems(3) = Rs!alamat View.SubItems(4) = Rs!jabatan Rs.MoveNext i = i + 1 Loop Label3.Caption = ListView1.ListItems.Count Else Label3.Caption = "0" MsgBox "Data tidak ada!", vbOKOnly + vbInformation, "PERHATIAN" End If End Sub Private Sub Command2_Click() Call FormKosong ListView1.ListItems.Clear End Sub Private Sub Command3_Click() FrmUtama.Show FrmPencarian.Hide FrmUtama.Enabled = True Call FormKosong End Sub Private Sub Form_Unload(Cancel As Integer) FrmUtama.Show FrmPencarian.Hide FrmUtama.Enabled = True Call FormKosong End Sub
L a m p i r a n 7 | 25
F. Form Preview Bulanan
Gambar 4.9 Form Preview Bulanan
Tabel L.9 Properti Form Bulanan
Komponen Properti Nilai Label1 Caption No Identitas Label2 Caption Bulan dan Tahun TextBox1 Name Text1
DTPicker
Name DTPicker1 CustomFormat MMMM yyyy Format 3 - dtpCustom UpDown TRUE
CommandButton1 Name Command1 Caption &Preview
CommandButton2 Name Command2 Caption &Keluar
Listing Program : Private Sub Command1_Click() Set Rs = New ADODB.Recordset Rs.Open " SELECT * FROM waktu WHERE " _ & " no_identitas LIKE '" & Text1.Text & "%'", _ koneksi, adOpenDynamic, adLockBatchOptimistic If Rs.EOF Then MsgBox "Data tidak ada!", vbInformation, "PERHATIAN" Text1.Text = "" Else Set Rs = New ADODB.Recordset SQL = "" SQL = _ "SELECT waktu.tanggal,waktu.jam_masuk,waktu.jam_keluar " _ & " FROM waktu WHERE ((waktu.tanggal>= " _ & " '" & DTPicker1.Value & "')" _ & " AND (waktu.tanggal <= " _ & " '" & DTPicker2.Value & "'))"
L a m p i r a n 7 | 26
Set Rs = koneksi.Execute(SQL) If Rs.BOF Then MsgBox "Data tidak tersedia!", vbInformation + vbOKOnly, "INFORMASI" Else DataEnvironment1.Commands(4).CommandText = SQL With FrmLaporanBulanan With .Sections("Section2") .Controls("label10").Caption = " No Identitas : " _ & " " & Text1.Text .Controls("label11").Caption = " Tanggal Cetak : " _ & " " & Format(Date, "dd MMMM yyyy") End With .Refresh .WindowState = 2 .Show End With End If End If End Sub Private Sub Command2_Click() FrmUtama.Show FrmPreviewBulanan.Hide FrmUtama.Enabled = True
End Sub
Gambar L.10 Preview Laporan Bulanan
L a m p i r a n 7 | 27
G. Form Preview Harian
Gambar L.11 Form Preview Harian
Tabel L.10 Properti Form Preview Harian
Komponen Properti Nilai Label1 Caption Tanggal-Bulan-Tahun
DTPicker Name DTPicker1 Format 0 - dtpLongDate
CommandButton1 Name Command1 Caption &Preview
CommandButton2 Name Command2 Caption &Keluar
Listing program : Private Sub Command1_Click() Set Rs = New ADODB.Recordset SQL = "" SQL = _ "SELECT karyawan.no_identitas, karyawan.nama," _ & " karyawan.jenis_kelamin,karyawan.jabatan,waktu.jam_masuk, " _ & " waktu.jam_keluar,waktu.tanggal FROM karyawan,waktu WHERE " _ & " karyawan.no_identitas=waktu.no_identitas AND ((waktu.tanggal= " _ & " '" & DTPicker1.Value & "'))" Set Rs = koneksi.Execute(SQL) If Rs.BOF Then MsgBox "Data tidak tersedia!", vbInformation + vbOKOnly, "INFORMASI" Else DataEnvironment1.Commands(3).CommandText = SQL With FrmLaporanHarian With .Sections("Section2") .Controls("label10").Caption = " Data pada tanggal : " _ & " " & Format(DTPicker1.Value, "dd MMMM yyyy") .Controls("label11").Caption = " Tanggal Cetak : " _ & " " & Format(Date, "dd MMMM yyyy") End With .Refresh .WindowState = 2 .Show End With End If
L a m p i r a n 7 | 28
End Sub Private Sub Command2_Click() FrmUtama.Show FrmPreviewHarian.Hide FrmUtama.Enabled = True End Sub
Gambar L.12 Preview Laporan Harian