BAB 3 PERANCANGAN SISTEM
Sistem absensi yang digunakan terbagi menjadi dua bagian dasar, yaitu bagian perangkat keras (hardware) dan bagian perangkat lunak (software). Sistem yang dirancang dibagi atas beberapa bagian modul perangkat keras seperti diagram dibawah ini :
LC D 16x2 M odul S is tem A bsensi
A T
RTC (D S 13 07)
EEPROM
M E G A 1 6
M A X 2 3 2
U S B to S E R IA L PC
R FID reader
Gambar 3.1 Blok Diagram Sistem Absensi
Perancangan perangkat keras terdiri dari : •
Modul komputer yang digunakan sebagai database, pengolahan data yang akan menampilkan data absensi mahasiswa dan interface bagi pengguna. Semua data yang disimpan di dalam memori EEPROM alat absensi yang kemudian akan dikirim komunikasi serial RS-232.
45
ke komputer database melalui
46 •
Modul sistem minimum yang terdiri dari AVR ATmega 16 berfungsi sebagai kontrol utama yang diantaranya mengatur pembacaan data dari RFID, menyimpan ke dalam memori eksternal EEPROM 24C08, mengontrol tampilan LCD, dan mengatur komunikasi antara sistem minumum dengan komputer melalui protokol komunikasi RS-232. EEPROM 24C08 adalah memori eksternal yang digunakan untuk menyimpan data dan DS1307 atau sering disebut Real Time Clock berfungsi sebagai penyedia tanggal dan waktu.
•
Modul RFID reader ID-12 berfungsi untuk membaca data yang ada di dalam tag dan kemudian data tersebut akan disimpan didalam EEPROM 24C08 melalui AVR ATmega 16.
•
ID tag yang tersimpan di EEPROM 24C08 data akan diolah ke komputer database, setelah dikirim ke komputer melalui komunikasi serial RS-232.
Perancangan piranti lunak terdiri dari: •
Pemrograman utama pada AVR ATmega 16 sebagai pengendali utama dalam sistem minimum yaitu mengatur sekaligus mengontrol komunikasi data secara bidirectional ke komputer dengan komunikasi serial RS-232, pengaturan pada pengiriman data ke EEPROM 24C08, kontrol LCD serta RFID.
•
Program Visual Basic digunakan sebagai media penyimpanan data, melakukan kontrol terhadap sistem minimum seperti menghapus data di EEPROM 24C08, format data, pengambilan data, cetak absensi.
•
Penggunaan Microsoft Access sebagai database.
47
3.1.
Perancangan Perangkat Keras 3.1.1. Modul Utama Sistem Minimum
Gambar 3.2 Rangkaian Sistem Absensi Keseluruhan. Mikrokontroler AVR ATmega 16 dalam alat absensi berfungsi sebagai pengendali utama pada perangkat keras. Sistem mulai bekerja ketika ada kartu RFID tag yang mendekat pada RFID reader. RFID reader akan membaca ID yang ada didalam tag dengan cara membangkitkan
gelombang
elektromagnetik.
Gelombang
elektromagnetik yang mengenai tag ini akan membangkitkan integrated circuit yang ada didalam tag sehingga reader akan dapat membaca ID
48 yang ada di dalam tag tersebut. Kemudian data yang terbaca oleh RFID reader akan diproses AVR ATmega 16 untuk disimpan di memori eksternal EEPROM 24C08. Besar data tiap - tiap kartu sebesar 22 byte, yang datanya terdiri dari 16 byte data ID tag dan 6 byte berupa data waktu yang diambil dari Real Time Clock DS1307. Memori eksternal EEPROM 24C08 yang digunakan memiliki kapasitas penyimpanan data sebesar 1Kb atau 1024 byte. Sehingga jika dihitung, maka EEPROM 24C08 dapat menyimpan data sebanyak 46 kartu. Sistem akan melakukan pengiriman data ketika modul utama sistem minimum dihubungkan ke PC melalui komunikasi serial RS-232 dan selanjutnya dilakukan pengambilan dan pengolahan data oleh Visual Basic.
3.1.2. Mikrokontroler AVR Mikrokontroler AVR ATmega 16 dalam sistem merupakan modul utama sebagai pengkontrol slave device seperti Real Time Clock DS1307 dan EEPROM 24C08. Selain itu juga berfungsi sebagai pengkontrol LCD 16x2, RFID, Digital Switch 4006. Mikrokontroler yang digunakan adalah AVR ATmega 16 produksi ATMEL.
49
Gambar 3.3 Modul Mikrokontroler AVR.
3.1.3. RFID reader dan RFID tag RFID reader ID-12 ini merupakan jenis RFID yang tidak membutuhkan antena eksternal karena sudah memiliki antena internal. RFID reader ID-12 memiliki jarak pembacaan ke ID tag hingga ±12 cm. Daya yang dibutuhkan untuk mengaktifkan RFID sebesar 5 Volt. Format data output yang digunakan adalah ASCII. Data yang disimpan pada setiap ID tag sebesar 16 byte dimana tiap satu karakter dalam ASCII direpresentasikan dalam 8 bit. Dalam melakukan pengiriman data selalu diawali dengan start bit dan diakhiri dengan stop bit.
50
Gambar 3.4 Format Output Data ASCII. RFID digunakan sebagai modul utama untuk membaca data berupa nomor ID tag yang terdapat dalam tag. Setiap mahasiswa akan memiliki nomor ID tag yang akan disinkronisasikan dengan nomor induk mahasiswa yang disimpan di database Microsoft Access. Nomor ID tag inilah yang akan menjadi identifikasi mahasiswa pada komputer database. RFID terdiri dari dua komponen utama yaitu ID tag dan RFID reader. Reader akan menghasilkan gelombang elektromagnetik yang akan membangkitkan integrated circuit didalam tag yang berisi nomor ID unik. Sehingga ketika tag berada dalam area gelombang elektromagnetik dari reader, maka ID unik dalam tag akan dapat dibaca oleh reader. Saat RFID reader berhasil membaca ID tag maka akan terdengar bunyi beep dan nyala LED, yang menandakan bahwa data telah terbaca dan kemudian akan disimpan di EEPROM 24C08.
51
Gambar 3.5 Rangkaian RFID reader
3.1.4. Real Time Clock DS1307 DS1307 merupakan serial real time clock yang bekerja pada tegangan 5 Volt. DS1307 juga memiliki tegangan baterai / VBAT 3 Volt yang berfungsi sebagai baterai cadangan sehingga informasi waktu dan tanggal akan tetap tersimpan. Prinsip kerjanya sederhana, ketika tegangan Vcc berada dibawah 3 Volt maka secara otomatis akan melakukan switching dan menggunakan supply baterai 3 Volt. Dalam kondisi tegangan Vcc dibawah 1.25xVBAT operasi baca tulis tidak dapat dilakukan. DS1307 digunakan sebagai penunjuk waktu dan tanggal. Sebagai penunjuk waktu tersedia informasi mengenai jam, menit dan detik. Sedangkan sebagai tanggal tersedia informasi tanggal, bulan dan tahun
52 yang valid sampai tahun 2100. Dalam implementasinya pada rangkaian, pin SDA dan SCL di RTC membutuhkan resistor pull up sebagai jaminan agar data dapat tersalurkan dengan baik.
Gambar 3.6 Rangkaian DS1307
3.1.5. Komunikasi Serial RS-232 Dalam sistem ini, digunakan komunikasi serial RS-232 dengan IC( integrated circuit ) MAX-232. MAX-232 sebagai jalur komunikasi serial antara AVR dengan komputer yang memiliki baud rate sebesar 9600 baud per second.
53
Gambar 3.7 Rangkaian MAX232 3.1.6. LCD (Liquid Crystal Display)16x2 LCD yang digunakan dalam alat absensi ini menggunakan tipe 16x2, yang dapat menampilkan 16 karakter perbaris dan mempunyai 2 baris. Dalam sistem ini digunakan mode 4 bit.
Gambar 3.8 LCD 16x2 Pin – pin LCD yang digunakan: 1. Pin VSS atau power 2. Pin VDD atau ground 3. Pin register select (RS) 4. Pin read/write (R/W)
54 5. Pin enable (E) 6. Pin 11-14 merupakan pin data (DB4…DB7)
Gambar 3.9 Hubungan LCD dengan Mikrokontroler AVR. 3.1.7. EEPROM (Electrically Erasable Programmable Memory) 24C08 EEPROM 24C08 merupakan memori eksternal yang dapat dihapus dan dibaca secara elektronik. Memiliki kapasitas penyimpanan data sebesar 1024 byte dengan mode 8 bit dalam mengakses data. EEPROM 24C08 bekerja pada tegangan 3V – 5.5V dan memiliki daya tahan baca/tulis hingga 1 juta kali dan penyimpanan data yang valid hingga 40 tahun. Dalam implementasinya, pada pin SDA dan pin SCL dibutuhkan resistor pullup sebagai jaminan agar data dapat tersalurkan dengan baik, sedangkan untuk pin lainnya hanya digunakan pin VCC dan pin ground.
55 EEPROM 24C08 menggunakan standar komunikasi I2C dengan 2 wire serial interface yang menggunakan data bus dan serial clock secara bi-directional. Pada Device code yaitu 4 bit pertama menyatakan identification code yang berhubungan dengan I2C bus. Bit enable menyatakan input dan diikuti dengan penempatan block B2 dan B1 masing – masing 256 byte tiap blocknya. Serta bit ke 8 yaitu mode R/W, perintah baca/tulis yaitu ’1’ sebagai mode read, ’0’ sebagai mode write dan diakhiri dengan acknowledge sebagai pemberitahuan bahwa data berhasil dikirim, setelah itu akan dilakukan pembacaan data mulai dari awal lagi yaitu kondisi START dan diakhiri kondisi STOP dimana terjadi setelah bit ke 9. Tabel 3.1 Device select code
Device Code
Chip
Block Select
RW
Enable BIT
B7
DEVICE 1 SELECT
B6
B5
B4
B3
B2
B1
B0
0
1
0
E
A9
A8
RW
56
3.1.8. Digital Switching 4066 Dalam sistem, IC 4066 digunakan untuk switching jalur input serial antara RFID dan MAX-232 ke AVR pin Rx dan Tx. Switching ini diperlukan karena AVR ATmega 16 hanya mempunyai satu jalur untuk komunikasi serial receive dan transmit, yaitu pada port D. Dalam kondisi default, dimana port USB tidak dihubungkan ke alat absensi maka tegangan Vcc dari mosfet 09n03 akan langsung turun dan mentrigger digital switching 4066, sehingga RFID pin 9 akan terhubung ke pin Rx di AVR.
Gambar 3.10 Jalur RFID ke AVR melalui 4066. Bila port USB dihubungkan ke komputer, tegangan +5V dari port USB menjadi trigger untuk switching 4066, sehingga Vcc dari mosfet
57 akan langsung turun ke ground dan jalur RFID ke AVR terputus. Sehingga yang terhubung akan menjadi MAX-232 ke AVR ATmega16.
Gambar 3.11 Jalur MAX-232 ke AVR. 3.1.9. Modul Catu Daya Rangkaian catu daya pada alat absensi menggunakan regulator LM317 sebagai penstabil tegangan sehingga dihasilkan output 5 Volt yang digunakan dalam sistem. Rangkaian catu daya ini juga dapat melakukan fungsi charging pada battery yang digunakan.
58
Gambar 3.12 Modul Catu Daya. 3.1.10. Modul Battery Monitor Dalam sistem, digunakan rangkaian battery monitor sebagai indikator tegangan pada battery. Kondisi tegangan battery ditunjukan oleh nyala 4 lampu LED. Apabila semua lampu menyala, menunjukkan tegangan battery penuh. Komparator LM339 sebagai pembanding tegangan Vbatt dengan Vcc, sehingga akan didapat kondisi tegangan pada saat itu. Dalam rangkaian, Vbatt dihubungkan ke battery, sedangkan Vcc dihubungkan ke output regulator LM317.
59
Gambar 3.13 Modul Battery Monitor.
3.2.
Perancangan Piranti Lunak Perancangan piranti lunak terbagi atas piranti lunak pada AVR dan piranti lunak pada PC. Pada piranti lunak AVR menggunakan bahasa pemrograman C, sementara pada piranti lunak pada PC menggunakan bahasa
60 pemrograman Visual Basic sebagai user interface dan untuk perancangan database digunakan Microsoft Access.
3.2.1. Perancangan Piranti Lunak Pada Alat Absensi. Perancangan piranti lunak yang diprogram pada mikrokontroler AVR di dalam alat absensi meliputi perancangan untuk tampilan LCD, penyimpanan data RFID dan data RTC ke memori eksternal EEPROM 24C08, dan komunikasi dari dan ke komputer melalui protokol komunikasi serial RS-232.
61 Start
inisialisasi
tampilkan "WELCOME BINUSIAN"
Ada data serial?
Ya
Tampung data di array
Ya
timeOut == 1 ?
Tidak
Tidak
Tampung data == data RFID ?
Tidak Ambil waktu dan tanggal dari RTC.
Ya
Tidak
Simpan waktu dan tanggal ke EEPROM
Jumlah karakter di Tampung data == 1 ?
Tampilkan “Waktu absensi sudah ditutup!” Simpan data RFID ke EEPROM.
Ya
Ya
Tampung Data == 0xFA ?
Hapus data Tidak Tampung Data == 0xFB ?
Ya
Karakter awal di Tampung Data == 0xFE ?
Format data
Tidak
Ya Tidak Ya
Tampung Data == 0xFC ?
Set waktu & tanggal di RTC Transfe r data
Tidak
Tidak PINB.1 == 0 ?
Tampung Data == 0xFD ?
Ya
Reset address transfer
Ya
Tidak timer_starte d ==1 ?
USB terkoneksi ?
Tidak
Tampilkan “USB disconnected, EDIT MODE OFF”
Ya Tidak
Ya timeOut = 0 timer_started = 0
timer_started =1
Start_time = waktu sekarang
Ya Tampilkan sisa waktu absen
Tampilkan “USB Connected, EDIT MODE ON”
Waktu sekarang Start_time >=30 ?
Tidak
timeOut=1
Tampilkan “Waktu absensi sudah ditutup!”
Gambar 3.14 Diagram Alir Program AVR.
62 Pada diagram alir AVR, pertama dilakukan inisialisasi serial meliputi inisialisasi LCD(Liquid Crystal Display), I2C, dan RTC (Real Time Clock). Jika proses inisialisasi telah selesai dijalankan maka pada LCD akan menampilkan tulisan berupa “HELLO BINUSIAN”. Kemudian sistem akan menunggu apakah ada data serial yang masuk . Jika terdapat data serial yang masuk, maka data akan ditampung di sebuah array dan setelah tidak terdapat data yang terbaca lagi maka dilakukan validasi apakah data yang terdapat di variabel tampung sama dengan data RFID, jika merupakan data RFID maka dilakukan pengecekan apakah timeout = 1 atau tidak. Jika timeout = 1 maka mahasiswa tidak dapat melakukan absen (dalam hal ini batas waktu absen sudah lebih dari 30 menit.). Jika timeout ≠ 1, mahasiswa masih dapat melakukan absen dan dilakukan pengambilan data berupa waktu dan tanggal dari RTC yang kemudian data-data tersebut akan disimpan pada EEPROM berupa data dari RFID dan data waktu serta tanggal. Jika bukan data dari RFID maka ke statement berikutnya. Data yang bukan data RFID adalah data command yang terdapat pada modul. Berikut command yang ada pada modul: FA
: Command untuk menghapus data di EEPROM.
FB
: Command untuk melakukan format data di EEPROM.
FC
: Command untuk melakukan transfer data di EEPROM .
FD
: Command untuk mereset address transfer.
FE
: Command untuk melakukan set waktu dan tanggal pada RTC
63 Pada perintah selanjutnya akan dicek apakah ada port USB yang terhubung. Jika tidak terhubung akan ditampilan pada LCD berupa tulisan “USB disconnected. EDIT MODE OFF”, jika ya akan muncul pada LCD berupa tulisan “USB Connected.EDIT MODE ON”. Setelah USB terkoneksi kemudian dilakukan pengesetan waktu dan tanggal di RTC. Perintah penggunaan tombol timer, Pada perintah tersebut mula – mula dilakukan pengecekan apakah terdapat penekanan tombol timer (PINB.1 = 1). Jika terdapat penekanan tombol timer maka akan mulai dilakukan penghitungan waktu 30 menit kedepan. Percabangan berikutnya akan dicek apakah waktu sudah lewat dari 30 menit, jika sudah melewati waktu yang ditentukan maka akan ditampilkan ke LCD bahwa “Waktu absensi sudah ditutup”, sehingga mahasiswa sudah tidak dapat melakukan absen. Sebaliknya jika waktu belum melewati 30 menit, maka akan ditampilkan pada LCD berupa sisa waktu absen. Diagram alir perancangan piranti lunak pada hardware akan selalu looping ketika ada data yang masuk.
64 3.2.2. Perancangan Piranti Lunak Pada User Interface. Start
Inisialisasi
Pilih Jurusan
Pilih Semester
Isi combo
Pilih Kelas
PIlih Matakuliah
Pilih Dosen
B
65
B
A
Button Pilih
Button Hapus Isi Tabel
Execute button Hapus Isi Tabel
extract data matakuliah
buka dan refresh tabel "absen_mahasiswa"
Button Refresh Tabel
button ambil Absensi
buka dan refresh tabel "absen_mahasiswa"
kirim 0xFDh ke modul absen
statusBar="baca data"
cek tabel "absen mahasiswa" extract data dosen Ya
kirim 0xFCh ke modul absen
tabel kosong ? insert mahasiswa Tidak Tampilkan Data Absensi
delay delete semua record
mscomm1_onComm click button Refresh Tabel data byte ke 22 != 0x03h ? Tidak statusBar= "Validasi data"
Validasi Data
validate_data
statusbar = "OK"
End
Ya
buka dan refresh tabel "absen_mahasiswa"
66
A
button Cetak Tabel
button Hapus Data
buka data_absen.mdb
hapus ?
button Format Data
Tidak
button Exit
Tidak format ? tutup database
Ya
tampilkan database di data report.
cetak data report
Ya keluar program
statusBar="Hapus data"
statusBar="Format data"
kirim 0xFAh ke modul absen
kirim 0xFBh ke modul absen
mscomm1_onComm
mscomm1_onComm
End
Gambar 3.15 Diagram Alir Utama Program Visual Basic.
Pada diagram alir perangkat lunak dilakukan inisialisasi serial port dan database. Setelah sistem minimum dihubungkan ke komputer melalui USB to serial, maka pada program Visual Basic akan dilakukan sinkronisasi waktu dan tanggal pada komputer ke sistem minimum. Kemudian pada Visual Basic terdapat tampilan kontrol modul berisi combo box jurusan, semester, kelas, matakuliah, dosen yang harus kita isi terlebih dahulu. Urutan pertama adalah pilihan jurusan, kemudian pilih semester. Dari pilihan jurusan dan semester langkah berikutnya adalah memilih kelas dan matakuliah dan yang terakhir adalah memilih dosen sesuai dengan pilihan jurusan, semester dan kelas yang telah dipilih diatas.
67 Jika combo box jurusan belum terpilih, maka kelas combo,mata kuliah combo dan dosen combonya tidak akan terisi. Apabila semua combo sudah terisi lengkap, langkah berikutnya adalah menekan tombol Pilih, yang akan mengekstrak data yang telah kita pilih dari database dan kemudian ditampilkan ke dalam tabel. Jika tombol Hapus ditekan maka akan muncul peringatan ”anda yakin mau menghapus data dalam modul”. Jika tidak maka data dalam EEPROM tidak jadi dihapus. Jika dilakukan hapus data maka akan muncul status bar “ hapus data” pada Visual Basic, kemudian data command FA akan dikirim ke sistem minimum melalui serial port. Setelah alat absensi menerima command FA, maka data di EEPROM akan dihapus. Jika tombol Format ditekan maka akan muncul peringatan ”anda yakin mau format data dalam modul”. Jika tidak maka data dalam EEPROM tidak jadi dihapus. Jika dilakukan format data maka ajan muncul status bar ”format data” pada Visual Basic, kemudian data command FB akan dikirim ke sistem minimum melalui serial port. Setelah sistem minimum menerima command FB, data di EEPROM akan dihapus. Jika tombol Cetak Tabel ditekan maka data_absen.mdb akan diextract, kemudian datanya ditampilkan di data report untuk selanjutnya dilakukan pencetakan data report. Jika tombol Exit ditekan maka koneksi ke database akan ditutup dan keluar dari program Visual Basic.
68
Ketika tombol Ambil Absensi ditekan maka command FD akan dikirim ke alat absensi melalui serial port yang digunakan untuk mereset Address EEPROM pada alat absensi. Kemudian status bar pada Visual Basic akan tampil “baca data”. Kemudian command FC akan dikirim ke sistem minimum yang merupakan command untuk mentransfer data yang ada di EEPROM. Program akan terus memeriksa apakah data byte ke 22 adalah 0x03h yang merupakan akhir dari data RFID. Bila Ya, maka status bar akan menampilkan “Validasi Data” dan data RFID akan diekstrak, bila data RFID nya benar, maka status bar berubah menjadi “OK”. Setelah semua data selesai, yang ditandai dengan data byte ke 22 bukan 0x03h, maka tabel absen_mahasiswa akan dibuka dan direfresh.
69 3.2.3. Diagram Alir Isi Combo. Isi Combo
Jurusan combo = SK
Jurusan combo = SI
Jurusan combo = KA
Jurusan combo = TI
isi kelas combo dg field "kelas_sk"
isi kelas combo dg field "kelas_si"
isi kelas combo dg field "kelas_ka"
isi kelas combo dg field "kelas_ti"
isi matakul combo dg field "mtkul_sk"
isi matakul combo dg field "mtkul_si"
isi matakul combo dg field "mtkul_ka"
isi matakul combo dg field "mtkul_ti"
isi dosen combo dg field "mtkul_sk"
isi dosen combo dg field "mtkul_si"
isi dosen combo dg field "mtkul_ka"
isi dosen combo dg field "mtkul_ti"
Return
Gambar 3.16 Diagram Alir Isi Combo.
Ketika dipilih jurusan SK maka field kelas akan diisi kelas SK, field mata kuliah akan diisi mata kuliah SK, dan field dosen akan diisi dengan dosen_sk. Begitu pula dengan jurusan SI, KA dan TI.
70 3.2.4. Diagram Alir Extract Data Dosen Extract data dosen
pisah (split) text di combo setiap ada tanda "/"
simpan hasil pemisahan di array data_dosen
variabel kode_dosen = data_dosen (0)
variabel dosen = data_dosen (1)
jurusan combo ="SK" ?
Ya
ambil id tag dosen sk dari tabel "ilmu kiomputer" berdasarkan nama dosen dari variabel "dosen"
Tidak
jurusan combo ="SI" ?
Tidak
jurusan combo ="KA" ?
Tidak
Ya
Ya
ambil id tag dosen si dari tabel "ilmu kiomputer" berdasarkan nama dosen dari variabel "dosen"
ambil id tag dosen ka dari tabel "ilmu kiomputer" berdasarkan nama dosen dari variabel "dosen"
End
Gambar 3.17 Diagram Alir Extract Data Dosen.
jurusan combo ="TI" ?
Ya
ambil id tag dosen ti dari tabel "ilmu kiomputer" berdasarkan nama dosen dari variabel "dosen"
Tidak
71
Pada diagram alir anak extract data dosen, pertama dilakukan pemisahan text jika ditemui karakter “/”. Setelah sudah dilakukan pemisahan text, maka text yang sudah dipisah akan disimpan di array data_dosen. Ada 2 text yang akan disimpan dalam array. Data pada variabel kode_dosen = data_dosen array yang (0) data kode dosen akan ditampung di variabel kode_dosen. Data variabel_dosen = data_dosen array yang (1) data nama dosen akan ditampung di variabel_dosen. Kemudian diperiksa apakah jurusan SK, SI, KA atau TI. Jika salah satu jurusan terpenuhi maka akan di ambil id tag dosen jurusan dari tabel “ilmu komputer berdasarkan nama dosen dari variabel “dosen”.
72 3.2.5. Diagram Alir Extract Data Mata Kuliah Extract Data Matakuliah
Pisah (split) text di matakuliah combo setiap tanda "/"
Simpan hasil pemisahan di array data_mtkul
variabel kode_mtkul = data_mtkul (0)
variabel mtkul = data_mtkul (1)
variabel sks = data_mtkul (2)
End
Gambar 3.18 Diagram Alir Extract Data Mata Kuliah.
73 Pada diagram alir anak extract data mata kuliah pertama dilakukan pemisahan text di mata kuliah setiap ada tanda “/”. Setelah text sudah dipisah maka data akan disimpan di array data_mtkul. Data text yang disimpan ini ada 3. Data variabel kode_mtkul = data_mtkul(0) data dari kode mata kuliah ini akan ditampung di variabel kode_mtkul, Data variabel mtkul = data_mtkul(1) data nama mata kuliah akan ditampung di variabel mtkul, dan variabel sks = data_mtkul(2) data jumlah sks akan ditampung di variabel sks.
74 3.2.6. Diagram Alir Extract Data RFID Extract data RFID
isi var time_card = ascii byte pertama dari var each_card + ":" + ascii byte kedua dari var each_card + ":" + ascii byte ketiga dari var each_card
isi var date_card = ascii byte ke 4 dari var each_card + "/" + ascii byte ke5 dari var each_card + "/" + ascii byte ke6 dari var each_card
isi var raw_card sebanyak 8 byte dimulai dari urutan byte ke 10 dari variabel each_card
konversi 8 byte dari string (aslinya) menjadi integer
konversi integer tersebut dari hexadesimal(aslinya) menjadi desimal
simpan hasil konversi ke variabel card_number
End
Gambar 3.19 Diagram Alir Extract Data RFID.
75 Variabel utama each card yang berisi 22 Byte dipisah antara tgl dan waktu sebanyak 6 Byte. Pertama diambil 3 Byte waktu yang ditampung di isi var time_card, kemudian 3 Byte data tanggal ditampung di isi var date_card. Data kartu RFID yang berisi 16 Byte di ambil 8 Byte yang dimulai dari
dari urutan byte ke 10 dari variabel each_card.
kemudian dilakukan konversi dari 8 byte data yang sudah di ambil dari String menjadi integer, hasil konversi integer tersebut dari heksadesimal diubah menjadi desimal. Hasil konversi ke desimal tersebut disimpan dalam konversi ke variabel card_number.
76 3.2.7.
Diagram Alir Insert Mahasiswa Insert Mahasiswa
ambil semua record yang field "kelas"nya = kelas combo, dari tabel "data_mahasiswa"
Tidak Ada record ?
msgbox "kelas yang anda pilih belum mendaftarkan mahasiswa"
Ya
masukan semua record mahasiswa ke dalam tabel "absen mahasiswa"
masukkan record dosen dalam tabel "absen mahasiswa"
End
Gambar 3.20 Diagram Alir Insert Mahasiswa. Pada diagram alir insert mahasiswa, mula - mula di ambil semua record
yang
field
"kelas"-nya
=
kelas
combo,
dari
tabel
"data_mahasiswa". Setelah proses pengambilan, di cek apakah ada record
77 atau tidak, jika tidak ada record maka akan muncul message box "kelas yang anda pilih belum mendaftarkan mahasiswa". Jika ada record maka record mahasiswa akan dimasukkan ke dalam tabel “absen mahasiswa”, record dosen akan dimasukkan ke dalam tabel “absen mahasiswa”.
mscomm1_onComm
Terima data (Rx) dari modul absensi
tidak byte pertama = 0xFAh
byte pertama = 0xFBh
ya
tidak
byte pertama = else
ya
statusBar = "Hapus OK"
statusBar = "Format OK"
simpan data Rx ke variabel each_card.
End
Gambar 3.21 Diagram Alir Inisialisais Serial dan Database. Ketika serial menerima data dari modul absensi, periksa apakah byte pertama dari Rx itu FA atau bukan, jika FA maka di status bar akan muncul “hapus ok”( data EEPROM di modul dihapus) jika byte pertama FB, maka di status bar akan muncul ”format ok” (data EEPROM di
78 modul di Format). Jika byte pertama bukan FA dan FB maka data akan disimpan ke variabel each_card.
79 3.2.8. Diagram Alir Validasi Data Validasi Data
ambil record yang isi field "rfid_tag" nya = isi variabel card_number, dari tabel "absen_mahasiswa"
Ya Ada record
tambahkan sebuah record di tabel "absen mahasiswa" dengan field "nama mahasiswa" = "tidak terdaftar" dan field "rfid tag" = isi var card_number
Tidak
update isi record di field "absensi" = "sudah absen", field ""tanggal" = isi var date_card , field "waktu" = isi var time_card
Simpan hasil perubahan
Simpan hasil perubahan
End
Gambar 3.22 Diagram Alir Validasi Data. Pada diagram alir validasi ini pertama Diambil record yang isi field rfid_tagnya = isi variabel card_number dari tabel absen_mahasiswa
80 ( Nomor Id tag yang masuk
dicari yang ada dalam tabel
absen_mahasiswa). Jika ada record maka tabel akan di update menjadi sudah absen dan dimasukkan tanggal dan waktu absensi, jika tidak RFIDnya tidak ada record maka akan ditambahkan sebuah record tabel yang menjelaskan bahwa mahasiswa tidak terdaftar dalam kelas. Setelah tabel record di update maka hasil perubahan tabel “absen_mahasiswa”.
3.2.9. Microsoft Access Microsoft
Access
digunakan
sebagai
database.
Dalam
perancangan sistem, digunakan dua buah file yaitu source.mdb dan data_absen.mdb. Di dalam file source.mdb berisi tabel ilmu_komputer dan tabel data_mahasiswa. Tabel ilmu_komputer berisi kelas, dosen, tag_dosen, dan matakuliah jurusan. Tabel data_mahasiswa berisi jurusan, nama_mahasiswa, kelas, NIM dan ID tag.
81
Gambar 3.23 Contoh Tabel ilmu_komputer difile Source.mdb
Gambar 3.24 Contoh Tabel data_mahasiswa difile source.mdb
82 Sedangkan data_absen.mdb berisi data hasil absensi mahasiswa yang berisi field jurusan, mata_kuliah, kode_matakuliah, SKS, kelas, nama mahasiwa, NIM, ID tag, status absensi, tanggal dan waktu.
Gambar 3.25 Contoh tabel hasil absen di data_absen.mdb