+ All Categories
Home > Documents > PENGIRIM DAN PENAMPIL DATA PADA PRESENSI NIRKABEL

PENGIRIM DAN PENAMPIL DATA PADA PRESENSI NIRKABEL

Date post: 25-Apr-2023
Category:
Upload: khangminh22
View: 0 times
Download: 0 times
Share this document with a friend
135
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
Transcript

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

iii

iv

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.

67

LAMPIRAN

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

L a m p i r a n 8 | 1

L a m p i r a n 8 | 2

L a m p i r a n 8 | 3

L a m p i r a n 8 | 4

L a m p i r a n 8 | 5

L a m p i r a n 8 | 6

L a m p i r a n 8 | 7

L a m p i r a n 8 | 8

L a m p i r a n 8 | 9


Recommended