-
27
BAB III
PERANCANGAN SISTEM
Pada bab ini akan dijelaskan mengenai perancangan dari komponen
penyusun
pada sistem. Komponen – komponen yang dirancang meliputi
perangkat keras dan
perangkat lunak. Perangkat keras berupa rangkaian atau modul
rangkaian elektronika,
sedangkan perangkat lunak merupakan program yang ada pada
mikrokontroler maupun
aplikasi desktop.
3.1. Gambaran Sistem
Sistem keseluruhan terdiri dari sebuah PC, switch dan modul
pencatat kehadiran.
Ketiganya terkoneksi secara LAN di sebuah gedung perkuliahan.
Switch bertugas
sebagai terminal jaringan. PC memiliki peran sebagai server
untuk mengolah, mengirim
dan menerima informasi terhadap modul pencatat kehadiran.
Gambar 3.1. Gambaran keseluruhan sistem.
-
28
Modul pencatat kehadiran merupakan modul yang memiliki tugas
menerima data
dari label barcode KTM dan mengirimkan data tersebut ke PC
melewati switch. Modul
ini diletakan pada setiap ruangan dalam suatu gedung perkuliahan
dan digunakan saat
mahasiswa masuk ke ruangan kuliah. PC diletakkan pada sebuah
ruangan gedung
perkuliahan. Sistem dijalankan maksimal untuk 16 minggu
pertemuan per matakuliah.
Pengajar yang hendak memulai perkuliahan menyalakan modul
pencatat kehadiran,
lalu memastikan bahwa jadwal yang tampak pada LCD merupakan
matakuliah pengajar
tersebut. Setelah itu, mahasiswa dipersilahkan untuk
mengeluarkan KTM dan memasuki
ruang kuliah. Pengajar mempersiapkan barcode scanner, kemudian
menekan tombol
scan terhadap label barcode KTM para mahasiswa yang memasuki
ruang kuliah.
3.2. Cara Kerja Sistem
Sistem yang dibuat terdiri dari PC dan modul pencatat kehadiran,
oleh karena itu
cara kerja sistem dibagi menjadi dua. Kedua cara kerja sistem
tersebut yaitu:
1. Cara Kerja Sistem pada PC
Operator memberikan input ke database PC secara manual
melalui
pengisian form atau dengan menggunakan file, dimana data yang
dimasukkan
berupa informasi mengenai daftar presensi yang berisi kode
matakuliah, nama
matakuliah, kode pengajar, nama pengajar, waktu perkuliahan,
ruangan kuliah
dan daftar peserta. File-file yang dimasukkan ke database
berasal dari kantor
fakultas, dengan format yang sudah ditentukan. Pengisian secara
manual dapat
dilakukan dengan menggunakan form – form data yang tersedia.
Proses ini
dilakukan sebelum masa perkuliahan dimulai.
Setelah proses input daftar presensi selesai, operator lalu
mengatur
koneksi modul pencatat kehadiran dengan PC melalui form
koneksi.
-
29
Pengaturan dilakukan dengan memberikan alamat IP modul pencatat
kehadiran
yang disesuaikan dengan ruangan kuliah. Ketika pengaturan sudah
selesai,
operator wajib memeriksa dan memastikan bahwa koneksi tidak
bermasalah.
Aplikasi desktop dijalankan pukul 07:00 sampai 20:00 pada hari
Senin
hingga Jumat. Operator wajib membuka koneksi sebelum pukul 07:00
dengan
menekan start button pada form halaman utama. Setelah pukul
20:00 maka
koneksi harus diputus dengan penekanan tombol stop.
Setelah masa perkuliahan selesai, maka operator dapat mencetak
laporan
yang sudah diolah pada aplikasi desktop. Laporan tersebut
diteruskan kepada
kantor fakultas sebagai laporan daftar presensi untuk
ditindaklanjuti, apabila
ditemukan ada mahasiswa yang tidak mengikuti perkuliahan selama
lebih dari
3 pertemuan.
2. Cara Kerja Sistem pada Modul Pencatat Kehadiran
Modul pencatat kehadiran dinyalakan terlebih dahulu ketika
hendak
digunakan. Setelah modul menyala, maka modul akan memeriksa
koneksi
kepada PC. LED hijau akan menyala jika koneksi dengan PC
berhasil, ini
menandakan bahwa modul berada pada mode online. Jika koneksi
gagal maka
LED kuning akan menyala, modul berada pada mode offline.
Pada mode online, mikrokontroler akan memeriksa terlebih
dahulu
apakah ada data di EEPROM internal. Jika ada maka data pada
EEPROM akan
dikirim ke server terlebih dahulu sebelum modul meminta
informasi jadwal
perkuliahan.
Apabila jadwal telah diberikan oleh PC, pada LCD akan tampil
informasi
mengenai perkuliahan saat itu. Informasi yang ditampilkan yaitu
kode
-
30
matakuliah, nama matakuliah dan nama pengajar. Proses pengisian
daftar
presensi dapat dilakukan setelah informasi jadwal tertampil di
LCD.
Pengisian daftar presensi dilakukan dengan menggunakan label
barcode
KTM. Label barcode KTM didekatkan ke barcode scanner, lalu
tombol scan
ditekan. Data akan masuk ke mikrokontroler kemudain diolah dan
diteruskan
ke PC bagian aplikasi server. Setelah beberapa saat, akan muncul
konfirmasi
di LCD mengenai respon terhadap data yang dikirim tadi.
Mahasiswa dapat
mengamati informasi tersebut, dan apabila konfirmasi menyatakan
bahwa NIM
gagal tercatat atau merasa kurang yakin dengan informasi
tersebut, maka
mahasiswa dapat mengulangi proses pengisian daftar presensi.
Konfirmasi dari server setelah mahasiswa melakukan proses
scanning
pada label barcode KTM berupa informasi bahwa mahasiswa tersebut
berhasil
mengisi daftar presensi, ditambah dengan pesan yang menyatakan
status
kehadiran di perkuliahan. Status kehadiran yang dimaksud adalah
toleransi
untuk tidak menghadiri perkuliahan, tentunya mahasiswa yang
sudah
melanggar batas toleransi akan mendapatkan status kehadiran
bahwa
mahasiswa tersebut telah gagal dalam perkuliahan. Batas
toleransi yang
digunakan adalah sebanyak tiga kali untuk setiap matakuliah yang
diikuti,
lebih dari batas itu mahasiswa dianggap gagal mengikuti
perkuliahan.
Pada mode offline, data KTM disimpan pada EEPROM internal
mikrokontroler. Data yang disimpan ke dalam EEPROM berupa waktu
dan
NIM. Waktu yang tercatat diambil dari RTC. Mode offline juga
digunakan
ketika listrik PLN padam. Catu daya yang digunakan menggunakan
baterai.
Baterai yang digunakan dapat diisi ulang, sehingga tidak perlu
melakukan
penggantian baterai berkali – kali.
-
31
Modul pencatatan daftar presensi memiliki waktu toleransi 15
menit
untuk digunakan, artinya seluruh mahasiswa yang hendak
melakukan
pengisian daftar presensi hanya mendapat batas waktu sebesar 15
menit.
Waktu tersebut mulai dihitung saat ada data NIM yang masuk untuk
pertama
kali, dimana NIM tersebut ada pada daftar presensi. Aturan ini
digunakan saat
berada pada mode online.
3.3. Perancangan Perangkat Keras
Perangkat keras yang digunakan pada modul pencatat kehadiran
berupa komponen
atau modul elektronika. Pada bagian ini akan dibahas mengenai
perancangan dan
koneksi perangkat – perangkat tersebut. Bagian – bagian penyusun
modul pencatat
kehadiran dapat dilihat pada gambar 3.2 .
Gambar 3.2. Komponen penyusun Modul Pencatat Kehadiran.
Komponen atau modul elektronika yang digunakan untuk
merealisasikan modul
pencatat kehadiran antara lain:
-
32
1. Mikrokontroler
Mikrokontroler digunakan sebagai pengolah data dari label
barcode KTM dan
mengatur komunikasi data dengan PC.
2. Barcode scanner
Alat ini berfungsi untuk membaca data pada label barcode KTM
dan
mengirimkan ke mikrokontroler.
3. LCD
LCD digunakan sebagai sarana penampil informasi kepada
pengguna.
4. Modul Jaringan Ethernet
Modul ini berfungsi untuk komunikasi antara mikrokontroler
dengan PC
melalui jaringan ethernet.
5. Real Time Clock
RTC bertugas untuk memberikan waktu real saat listrik PLN padam,
dan
digunakan untuk acuan batas waktu pengisian daftar presensi.
6. MAX232
IC MAX232 berfungsi sebagai konverter tegangan level TTL ke
RS-232, dan
kondisi sebaliknya.
7. Buzzer dan LED
Buzzer dan LED digunakan sebagai pemberi isyarat tambahan yang
membantu
sarana penampil untuk memberikan informasi kepada pengguna.
3.3.1. Rangkaian Minimum Sistem Mikrokontroler
Rangkaian minimum sistem mikrokontroler merupakan rangkaian
dasar yang
digunakan untuk mengaplikasikan mikrokontroler ke dalam suatu
sistem. Rangkaian
minimum sistem mikrokontroler terdiri dari untai reset dan
osilator. Untai reset
-
33
memiliki fungsi untuk mengarahkan program mikrokontroler ke
alamat awal,
akibatnya mikrokontroler akan menjalankan program dari awal sama
seperti saat awal
mikrokontroler pertama kali dinyalakan. Osilator digunakan
sebagai sumber clock
mikrokontroler.
Gambar 3.3. Skematik minimum sistem mikrokontroler Atmega32.
Mikrokontroler yang digunakan merupakan mikrokontroler keluarga
AVR
yaitu ATmega32 , maka reset dilakukan dengan memberikan tegangan
level low pada
pin reset. Untuk mewujudkannya digunakan untai seperti terdapat
pada bagian untai
reset di gambar 3.3. Pada kondisi switch tidak ditekan maka
kondisi pada pin reset
ATmega32 akan high, ketika switch tersebut ditekan maka pin
reset akan low
sehingga mikrokontroler akan melakukan reset.
Osilator yang digunakan adalah osilator eksternal dengan kristal
11.0502 MHz.
Pemilihan kristal ini didasarkan atas kebutuhan untuk
perhitungan baudrate pada
pengiriman data serial. Apabila menggunakan kristal dengan
besarnya berupa bilangan
bulat maka akan terjadi error.
-
34
Konfigurasi pin – pin mikrokontroler ATmega32 yang digunakan
dapat dilihat
pada tabel 3.1.
Tabel 3.1. Konfigurasi pin – pin mikrokontroler.
Pin Mikrokontroler Keterangan
PD.0 pin untuk menerima data serial dari WIZ110SR
PD.1 pin untuk mengirim data serial ke WIZ110SR
PD.2 pin untuk jalur clock dari barcode scanner
PD.5 pin untuk jalur data dari barcode scanner
PD.6 pin untuk jalur SCL DS1307
PD.7 pin untuk jalur SDA DS1307
PC.0 pin untuk jalur RS LCD 16x4
PC.1 pin untuk jalur RD LCD 16x4
PC.2 pin untuk jalur EN LCD 16x4
PC.4 – 7 pin – pin data untuk LCD 16x4
PB.3 pin untuk LED berwarna merah
PB.2 pin untuk LED berwarna kuning
PB.1 pin untuk LED berwarna hijau
PB.0 pin untuk buzzer
3.3.2. Koneksi Modul Jaringan Ethernet dengan Mikrokontroler
WIZ110SR merupakan modul jaringan ethernet yang digunakan pada
sistem
yang dibuat. WIZ110SR berfungsi untuk melakukan pengiriman data
serial ke paket
ethernet, berlaku juga untuk kondisi sebaliknya. Modul ini
menggunakan konektor
DB9 dengan interface RS-232 untuk berkomunikasi dengan
mikrokontroler.
WIZ110SR dilengkapi dengan konektor RJ-45 untuk komunikasi pada
jaringan
ethernet.
Level tegangan yang diperlukan untuk transmisi data serial
mikrokontroler
ATmega32 adalah level TTL, sedangkan pada antarmuka RS-232
WIZ110SR
memerlukan level tegangan antara -3 volt sampai -25 volt untuk
logika 1 dan 3 volt
-
35
sampai 25 volt untuk logika 0. Perbedaan level tegangan ini
menyebabkan pin – pin
ATmega32 dan WIZ110SR tidak dapat dihubungkan secara
langsung.
Hal tersebut dapat diatasi dengan menggunakan konverter level
tegangan.
Konverter level tegangan yang dibuat menggunakan IC MAX232.
Rangkaian
pelengkap IC MAX232 dapat dilihat pada gambar 3.4.
Gambar 3.4. Skematik rangkaian pelengkap IC MAX232.
WIZ110SR digunakan sebagai client, sehingga pemilihan mode
berada pada
mode client. Data packing condition yang digunakan adalah
character condition
dengan menggunakan karakter ‘$’ dengan nilai 24h, sehingga
WIZ110SR akan
melakukan pengiriman data ketika didapati karakter ini pada
buffer data WIZ110SR.
3.3.3. Koneksi Barcode Scanner dengan Mikrokontroler
Barcode scanner yang digunakan Cipherlab 1000, dengan antarmuka
PS/2. Pin
data dan clock cipherlab 1000 dihubungkan dengan PD.2 dan PD.5
mikrokontroler.
Data dikirimkan per bit melalui PD.2, dan PD.5 digunakan sebagai
clock untuk data
tersebut. Kedua pin tersebut bernilai high saat tidak ada label
barcode yang terbaca.
-
36
Gambar 3.5. Koneksi barcode scanner dengan mikrokontroler.
Apabila ada label barcode yang terbaca maka PD.2 akan
menghasilkan data
disertai dengan clock pada PD.5. Ketika PD.5 berada dalam
kondisi low maka akan
terjadi interupsi eksternal 0 pada mikrokontroler. Setiap
terjadi interupsi eksternal 0,
bit – bit yang diterima melalui PD.2 akan disimpan. Bit – bit
tersebut akan diolah
ketika interupsi eksternal 0 berhenti.
3.3.4. Koneksi LCD dengan Mikrokontroler
Sarana penampil modul pencatat kehadiran menggunakan LCD
karakter 16x4.
LCD ini mampu menampilkan 64 karakter, dan dilengkapi dengan
backlight.
Konfigurasi pin – pin LCD yang terhubung dengan mikrokontroler
dapat dilihat pada
tabel 3.2.
Tabel 3.2. Konfigurasi pin – pin mikrokontroler dengan LCD.
Pin LCD Pin ATmega32
RS PC.0
R/W PC.1
EN PC.2
D4 PC.4
D5 PC.5
D6 PC.6
D7 PC.7
-
37
Mode LCD yang digunakan adalah mode 4 bit, sehingga pin D0 – D3
pada
LCD tidak digunakan. Pin kontras LCD dihubungkan ke ground agar
mendapatkan
kontras yang bernilai maksimal. Nilai kontras LCD dibuat
maksimal, hal ini dilakukan
untuk memperjelas karakter yang tertampil di LCD.
3.3.5. Rangkaian RTC
Real time clock pada modul pencatat kehadiran memanfaatkan
DS1307, IC ini
digunakan untuk mengetahui waktu real saat modul pencatat
kehadiran bekerja pada
offline mode. Rangkaian RTC menggunakan DS1307 dapat dilihat
pada gambar 3.6.
Catu daya pada RTC dilengkapi dengan catu daya cadangan
menggunakan baterai
CMOS 3V, hal ini dilakukan agar RTC tetap dapat bekerja saat
catu daya utama mati.
Gambar 3.6. Skematik rangkaian RTC dengan DS1307.
RTC terhubung dengan mikrokontroler dengan interface I2C. Pin
SDA
dihubungkan dengan PD.7 mikrokontroler, dan pin SCL dengan PD.6
mikrokontroler.
Kedua pin tersebut diberi resistor pull – up sebesar 10 KΩ.
-
38
3.3.6. Rangkaian LED dan Buzzer
Modul pencatat kehadiran dilengkapi dengan indikator berupa LED
dan buzzer.
buzzer. Buzzer berfungsi untuk memberikan isyarat berupa suara,
sebagai penanda
kepada pengguna agar pengguna tahu akan adanya informasi yang
dapat dibaca pada
LCD. Jumlah LED yang digunakan ada tiga buah, LED – LED ini
memiliki fungsi
yang hampir sama dengan buzzer. Konfigurasi indikator –
indikator tersebut dengan
mikrokontroler dapat dilihat pada gambar 3.7.
Gambar 3.7. Rangkaian LED dan buzzer.
LED – LED yang digunakan berwarna hijau, kuning, dan merah.
Ketiga LED
tersebut memiliki fungsi sebagai berikut:
� LED Hijau, berfungsi untuk memberitahu kepada pengguna bahwa
modul
pencatat kehadiran berada pada online mode.
� LED Kuning, berfungsi untuk memberitahu kepada pengguna
bahwa
modul pencatat kehadiran berada pada offline mode.
� LED Merah, berfungsi untuk memberitahu kepada pengguna bahwa
modul
pencatat kehadiran meminta reset atau koneksi terhadap server
terputus
-
39
Buzzer dan LED akan bekerja ketika mikrokontroler memberikan
level
tegangan low kepada pin – pin yang terhubung. Apabila
mikrokontroler memberikan
level high kepada pin – pin yang terhubung, tegangan pin – pin
tersebut akan setara
dengan tegangan catu daya, sehingga arus tidak cukup untuk
mengaktifkan buzzer
atau LED.
Nilai resistor pada rangkaian indikator LED yakni sebesar 560
ohm.
Perhitungan nilai resistor yang digunakan melibatkan arus dan
tegangan pada LED.
Jika tegangan LED sebesar 2 V dan arus yang diinginkan mengalir
sebesar 5 mA.
Perhitungan untuk nilai resistor dapat dilihat pada persamaan
berikut:
Vcc = VR + VL ………………………………………………(3.1)
Vcc = (I R x R) + VL …………………………………………(3.2)
5 V = (5 mA x R) + 2 V
Ω== 600mA 5
V 3R
Keterangan mengenai variabel pada persamaan diatas, sebagai
berikut:
Vcc = tegangan catu daya
VR = tegangan pada resistor
VL = tegangan pada LED
I R = arus yang melewati resistor
Hasil perhitungan menunjukkan nilai resistor yang digunakan
sebesar 600 Ω.
Nilai resistor tersebut tidak ada di pasaran, maka dari itu
resistor yang dipasang
merupakan pendekatannya. Resistor yang digunakan adalah 560
Ω.
-
40
3.3.7. Rangkaian Catu Daya
Catu daya yang digunakan ada dua buah yaitu catu daya dengan
sumber listrik
AC dan baterai. Catu dengan sumber listrik AC digunakan sebagai
catu daya utama.
Catu daya utama akan digunakan ketika listrik PLN tidak padam,
sedangkan baterai
untuk keadaan sebaliknya.
Rangkaian catu daya utama menggunakan transformator sebesar 1A
dengan
tegangan rms 12 V. Jenis transformator yang digunakan
transformator CT, sehingga
pada rangkaian diperlukan dua buah dioda penyearah. Capasitor
digunakan untuk
memperhalus riak gelombang keluaran dari penyearah. Rangkaian
catu daya utama
dapat dilihat pada gambar 3.8.
Gambar 3.8. Skematik Catu Daya Utama.
Dioda penyearah yang dipasang merupakan dioda 1 ampere dan
kapasitor yang
dipasang sebesar 4700uF. Perhitungan nilai kapasitor yang
dipasang diperlihatkan
pada persamaan di bawah ini.
dt
dvCI ×= ……………………………………………………(3.3)
Karena perubahan tegangan terhadap waktu selalu tetap, maka
persamaan di
atas menjadi:
T
VCI ×= ……………………………………………………(3.4)
-
41
Keterangan mengenai persamaan di atas sebagai berikut:
I = arus yang dibutuhkan beban
C = nilai kapasitor yang terpasang setelah penyearah
V = tegangan ripple yang terjadi
T = periode dari tegangan ripple
Periode dari tegangan ripple nilainya sama dengan periode
tegangan AC yang
telah disearahkan. Periode tegangan ripple yang terjadi adalah
sebesar 0,01s. Nilai ini
diambil dari rumus hubungan periode (T) dan frekuensi (f), rumus
ini dapat dilihat
pada persamaan 3.5.
f
1T = ……………………………………………………..…(3.5)
Nilai frekuensi yang diperoleh ialah sebesar 100 Hz. Nilai ini
didapatkan dari
penyearah gelombang penuh. Apabila diasumsikan bahwa modul
menarik arus sebesar
0,5A dan tegangan ripple yang terjadi sebesar 1 Vpp, menurut
persamaan 3.4 akan
didapatkan nilai kapasitor sebesar 5000 µF . Berikut ini
perhitungan mengenai nilai
kapasitor tersebut:
5000µF1V
0,01s0,5AC
0,01s
1VC0,5A
T
VCI
=×
=
×=
×=
Kapasitor 5000 µF tidak terdapat di pasaran, oleh karena itu
diperlukan
penggantian komponen dengan mencari nilai pendekatannya. Nilai
kapasitor yang
digunakan pada rangkaian sebesar 4700 µF . Rangkaian charger
baterai dapat dilihat
pada gambar 3.9.
-
42
Gambar 3.9. Skematik Rangkaian Charger Baterai.
Arus pengisian pada baterai melewati resisistor R5, resistor ini
digunakan
untuk membatasi arus agar arus yang masuk ke baterai tidak
terlalu besar. D2
digunakan sebagai proteksi ketika catu daya utama dimatikan, hal
ini dimaksudkan
untuk menghindari pencatuan opamp menggunakan baterai akibat
dari kondisi NC
(Normally Close) relay terhubung pada Vout1.
Pada rangkaian charger baterai, opamp LM324 digunakan sebagai
komparator.
Output akan bernilai high jika tegangan pada baterai lebih dari
tegangan referensi pada
kaki input inverting ( )(-V ). Nilai tegangan referensi tersebut
dibuat kira – kira bernilai
10 volt. Perhitungan tegangan referensi sebagai berikut:
Vout1R2R1
R2V )( ×
+=− ……………………………………(3.6)
10V12V12kΩ
10kΩV )( =×=−
Ketika kondisi output LM324 high maka kapasitor akan terisi dan
BC546
mengalami forward bias, akibatnya relay akan aktif. Ketika relay
aktif dan posisi
COM berada pada NO (Normally Open), maka pengisian baterai
berhenti dan LED1
-
43
akan menyala. Apabila dalam proses pengisian baterai mengalami
penurunan tegangan,
maka output LM324 akan bernilai low dan transistor akan tetap
aktif sampai isi
kapasitor habis. Ketika isi kapasitor habis maka baterai akan
kembali diisi. Dioda D1
berfungsi untuk menjaga agar pengosongan kapasitor tidak menuju
output opamp saat
low, tetapi menuju ke basis BC546.
Penentuan penggunaan catu daya menggunakan penyaklaran
otomatis,
sehingga ketika listrik padam maka catu daya yang digunakan
otomatis menjadi
baterai. Rangkaian penyaklaran ini dapat diperlihatkan pada
gambar 3.10.
Gambar 3.10. Skematik Penyaklaran Catu Daya.
Output akan menjadi tegangan yang terhubung ke modul.yaitu
sebesar 5 volt.
LM7805 diberi heat sink untuk menyerap panas akibat dari
konsumsi beban. Untuk
menyalakan modul digunakan saklar tipe push on push off.
3.4. Perancangan Perangkat Lunak
Perangkat lunak yang dibuat terdiri dari dua bagian yaitu
perangkat lunak modul
pencatat kehadiran dan perangkat lunak pada aplikasi desktop.
Bagian ini akan
membahas garis besar perancangan pada kedua perangkat lunak
tersebut.
-
44
3.4.1. Perangkat Lunak Modul Pencatat Kehadiran
Pada bagian ini dibahas tentang hal – hal yang berkaitan dengan
perangkat
lunak pada mikrokontroler yang ada pada modul pencatat
kehadiran. Bagian – bagian
dari perangkat lunak meliputi instruksi yang digunakan, header
data, format data pada
EEPROM, program utama dan beberapa bagian program.
3.4.1.1. Instruksi Modul Pencatat Kehadiran
Modul pencatat kehadiran mempunyai beberapa instruksi yang
digunakan
untuk berkomunikasi dengan server. Instruksi – instruksi
tersebut yaitu CNNCT,
TMNW dan JDWL. Setiap instruksi yang dikirimkan kepada server,
akan
mendapatkan respon yang berbeda.
Penjelasan dan keterangan mengenai respon – respon terhadap
instruksi
sebagai berikut:
1. CNNCT
Perintah CNNCT digunakan untuk memeriksa koneksi dengan
server. Tanggapan yang diberikan server terhadap instruksi ini
yaitu
CNNCTOK. Ketika perintah ini dikirimkan dan tidak ada data
respon,
dapat diketahui bahwa koneksi dengan server terputus.
2. TMNW
Instruksi TMNW berfungsi untuk meminta data waktu pada saat
itu. Respon dari server digunakan untuk membandingkan dengan
data
waktu RTC, dan melakukan penyesuaian jika terjadi perbedaan
dengan
RTC. Data yang diterima berupa tanggal, jam, menit dan
detik.
-
45
3. JDWL
Perintah ini digunakan untuk meminta data jadwal sesuai
dengan
waktu modul dinyalakan. Data yang diterima berupa kode
matakuliah,
nama matakuliah, dan nama pengajar.
Pada bagian instruksi TMNW dan JDWL, respon yang dikirimkan
oleh
server disertai dengan informasi yang diperlukan sesuai
permintaan instruksi.
Respon data terhadap ketiga instruksi ini dapat dilihat pada
tabel 3.3.
Tabel 3.3. Tabel Respon instruksi.
Instruksi Respon
CNNCT CNNCTOK
TMNW D[hari]/[bulan]/[tahun]/[jam]:[menit]:[detik]
JDWL [kode matakuliah];[nama matakuliah];[nama pengajar]
3.4.1.2. Header Data Modul Pencatat Kehadiran
Pengiriman data ke server dilakukan dengan memberikan tambahan
berupa
header data pada awal data. Header berfungsi sebagai penanda
terhadap data yang
dibawa sehingga memudahkan server dalam pembacaan data. Sistem
yang dibuat
pada modul pencatat kehadiran menggunakan dua buah header untuk
mengirim data
utama berupa NIM dan data presensi mahasiswa yang tersimpan di
EEPROM.
Pada saat mahasiswa mengisi daftar presensi dan modul dalam
keadaan
online, data NIM yang didapat dari barcode KTM tidak dikirimkan
secara langsung
ke server. Mikrokontroler terlebih dahulu akan memberi tambahan
header data
berupa NIM#. Adanya header ini, akan mempermudah server untuk
mengenali
bahwa data yang diterima mengandung NIM.
-
46
Bagian data kedua yang diberi header sebelum dikirimkan ke
server adalah
data presensi mahasiswa yang tersimpan di EEPROM. Data ini
merupakan data
yang tersimpan ketika ada pengisian daftar presensi saat modul
berkondisi offline
mode. Pemeriksaan data di EEPROM terjadi saat modul menyala dan
berada pada
online mode, modul akan memeriksa apakah di EEPROM ada data
presensi
mahasiswa. Bila di EEPROM terdapat data, maka data ini tidak
dikirimkan langsung
melainkan diberi header data terlebih dahulu. header data yang
digunakan yaitu
RDDT#.
Kedua header data tersebut memiliki tanggapan dari server yang
berbeda –
beda, tanggapan ini dapat dilihat pada tabel 3.4.
Tabel 3.4. Respon data NIM dan RTC.
Format Data Respon
[9 digit NIM];BHL;[status] NIM#[9 digit nim]
NODT
RDDT#[data EEPROM] RDDTOK
Pada bagian NIM terdapat dua respon, respon NODT diberikan
ketika NIM
tidak ditemukan pada daftar presensi. Pada respon yang pertama,
bagian status
menyatakan informasi tentang jumlah kehadiran total dari
mahasiswa. Penjelasan
mengenai status dapat dilihat pada tabel 3.5.
Tabel 3.5. Keterangan status.
Status Keterangan
OK kehadiran 100%
OK-1 tidak hadir 1 kali
OK-2 tidak hadir 2 kali
OK-3 tidak hadir 3 kali
GAGAL tidak hadir lebih dari 3 kali
-
47
3.4.1.3. Format Data Presensi Mahasiswa di EEPROM
Penulisan data pada EEPROM dirancang sedemikian rupa
sehingga
kapasitas data yang tersimpan diharapkan menjadi maksimal.
Penyimpanan data di
EEPROM digunakan saat modul bekerja secara offline mode.
Perancangan akan
penulisan data tersebut diperlukan karena keterbatasan ruang
memori EEPROM
yaitu sebesar 1 kB. Pengaturan penulisan data meliputi format
penulisan data dan
aturan yang ditetapkan dalam penulisan data.
Format penulisan yang digunakan mencakup tiga kategori data
yaitu
tanggal, waktu dan NIM. Struktur umum penulisan ketiganya
yaitu
[‘
-
48
Tabel 3.6. Inisial hari, bulan dan tahun.
Inisial Keterangan
H hari
B bulan
T tahun
Data waktu terdiri atas dua bagian yaitu jam, menit. Pada bagian
format
waktu, data untuk detik tidak diikutsertakan karena akan
diikutkan pada bagian
format data NIM. Panjang data setelah inisial sebesar satu byte,
baik untuk jam atau
menit. Inisial untuk waktu dapat dilihat pada tabel 3.7.
Tabel 3.7. Inisial jam dan menit.
Inisial Keterangan
J jam
M menit
Kategori data NIM ada tiga buah, yaitu untuk menunjukkan
fakultas, tahun
angkatan dan nomor urut angkatan. Data untuk fakultas diambil
dari digit satu dan
dua pada sembilan digit data NIM, sedangkan bagian tahun
angkatan diambil digit
ke lima dan enam. Digit tiga dan empat tidak diikutsertakan di
tahun angkatan,
karena nilainya akan selalu 20. Inisial hanya terdapat pada data
fakultas dan tahun
angkatan.
Gambar 3.12. Pengambilan data pada NIM.
-
49
Panjang data setelah inisial fakultas atau tahun angkatan adalah
sebesar
satu byte. Inisial yang digunakan dapat dilihat pada tabel
3.8.
Tabel 3.8. Inisial fakutas dan tahun angkatan.
Inisial Keterangan
N fakultas
O tahun angkatan
Nomor urut angkatan diambil dari digit tujuh, delapan dan
sembilan.
Format penulisan nomor urut angkatan tidak mengikuti aturan yang
sebelumnya,
pada bagian inisial diganti dengan nilai detik saat terjadi
pengisian daftar presensi.
Kemudian diikuti dengan nomor urut angkatan yang dapat
direpresentasikan
menjadi satu byte atau dua byte.
Satu byte diberikan untuk nomor urut angkatan di bawah 128. Dua
byte
akan mewakili nomor urut angkatan di atas 127. Hal ini
dikarenakan pada bagian
server digunakan encoding ASCII untuk penerimaan data, sehingga
satu byte data
maksimal hanya bernilai 127.
Posisi byte pertama untuk nomor urut angkatan di atas 127
menunjukkan
faktor pengali dari 127, dan byte berikutnya untuk sisa yang
diperlukan agar total
perhitungan dari byte pertama dikali 127 ditambah byte kedua
menjadi nomor urut
angkatan. Format penulisan nomor urut angkatan dapat dilihat
pada tabel 3.9.
Tabel 3.9. Format penulisan nomor urut angkatan.
Nomor Urut Angkatan Format penulisan data
0 - 127 ['
-
50
Keterangan untuk nilai x dan y dapat dilihat pada persamaan
berikut:
( ) YX127ngkatanNomorUrutA +×= ……………..……(3.7)
Aturan - aturan yang ditetapkan dalam penulisan data presensi
mahasiswa
di EEPROM sebagai berikut:
1. Tanggal hanya dicatat sebanyak satu kali.
2. Jam dan menit tidak ditulis ke dalam EEPROM ketika jam dan
menit
masih bernilai sama dengan data jam dan menit sebelumnya.
3. Data fakultas tidak ditulis ke EEPROM saat nilainya sama
dengan data
fakultas yang tercatat sebelumnya.
4. Data tahun angkatan tidak ditulis ke EEPROM saat nilainya
sama
dengan tahun angkatan yang tercatat sebelumnya.
5. Keempat aturan tersebut berlaku selama modul menyala dalam
kondisi
offline.
3.4.1.4. Program Utama Modul Pencatat Kehadiran
Program utama pada modul pencatat kehadiran ada dua bagian
yaitu
perangkat lunak untuk online mode dan offline mode. Program
untuk online mode
digunakan ketika alat berhasil terkoneksi dengan server,
sedangkan bagian
perangkat lunak offline mode akan digunakan ketika koneksi
jaringan ke server
putus atau listrik PLN padam.
-
51
MULAI
SELESAI
Inisialisasi LCD, timer,
interupsi eksternal, serial,
RTC
Ada Koneksi ?
Cek koneksi Server
ONLINE MODE OFFLINE MODETidakAda
Gambar 3.13. Diagram alir pemeriksaan koneksi.
Pada diagram alir ditunjukkan bahwa setelah melakukan
inisialisasi, modul
memeriksa koneksi server untuk menentukan mode yang digunakan.
Setelah
berhasil masuk ke dalam mode yang dipilih, maka proses pengisian
daftar presensi
dapat dilakukan.
Prinsip kerja dari modul pencatat kehadiran adalah mengirim data
ke
server dan menunggu respon dari server. Oleh karena menunggu
respon dari server,
maka modul memiliki waktu tunda terhadap respon server. Waktu
tunda
direalisasikan menggunakan timer mikrokontroler.
Modul akan mengaktifkan timer setiap selesai mengirimkan data ke
server.
Timer ini memiliki tujuan sebagai batasan waktu respon dari
server. Ketika timer
sudah habis maka akan terjadi interupsi timer, kemudian modul
akan memeriksa
data yang diterima. Jika tidak ada data yang diterima setelah
timer habis, maka dapat
dinyatakan koneksi terputus. Data dari server diterima melalui
interupsi serial.
-
52
Gambar 3.14. Diagram alir pengiriman dan penerimaan data.
3.4.1.4.1. Online mode
Pada saat modul berkondisi online mode, pertama kali modul
akan
meminta waktu berupa tanggal dan jam untuk disesuaikan dengan
waktu server.
Setelah melakukan penyesuaian waktu RTC, modul akan memeriksa
apakah pada
EEPROM terdapat data presensi mahasiswa, jika ada data maka data
tersebut
dikirim ke server. Data pada EEPROM merupakan data presensi
mahasiswa pada
saat modul berada pada offline mode.
Proses berikutnya, modul akan meminta jadwal yang ada pada saat
itu.
Modul akan menerima informasi jadwal dan menampilkan di LCD
berupa kode
matakuliah, nama matakuliah dan nama pengajar, jika tidak ada
jadwal maka
modul tidak dapat digunakan secara online mode walaupun
terkoneksi dengan
jaringan.
-
53
Mahasiswa dapat melakukan pengisian daftar presensi dengan
menggunakan KTM melalui barcode scanner, setelah mengisi daftar
presensi akan
muncul informasi mengenai kehadiran mahasiswa tersebut pada LCD.
Jika
koneksi terputus, modul akan meminta reset untuk kembali pada
kondisi awal.
Toleransi waktu yang digunakan untuk proses pengisian daftar
presensi
sebesar 15 menit. Waktu toleransi mulai dihitung ketika ada
mahasiswa yang
melakukan pengisian daftar presensi, dan mahasiswa tersebut ada
di dalam daftar
presensi.
Gambar 3.15. Diagram alir modul saat online mode.
-
54
3.4.1.4.2. Offline mode
Pada saat offline mode, modul akan menampilkan informasi di
LCD
berupa waktu dan pesan. Pesan yang tertampil mewakili apakah
modul dapat
digunakan atau tidak. Modul tidak dapat digunakan jika waktu
pada RTC salah
atau EEPROM sudah penuh terisi data. Kesalahan pada RTC dapat
terjadi saat
baterai cadangan RTC sudah habis atau ada gangguan saat RTC
diakses. Pada
mode ini, data – data berupa NIM dan waktu disimpan di
EEPROM.
Mulai
Selesai
Cek waktu RTC
Waktu salah ?
Cek isi EEPROM
Penuh ?
Tunggu mahasiswa
melakukan pengisian
daftar presensi
Ada data?
Simpan data di
EEPROMYa
Tidak
Ya
Tidak
Tampilkan waktu
Ada
Tidak
Ada interupsi
eksternal
Simpan Data
Gambar 3.16. Diagram alir modul saat offline mode.
3.4.1.5. Subrutin Penerima Data Barcode Scanner
Interupsi eksternal digunakan untuk menangani bagian pengambilan
data
dari barcode scanner, protokol yang digunakan yakni PS/2. Pin
mikrokontroler yang
digunakan adalah PD.5 dan PD.2. Clock diterima oleh PD.2,
sedangkan data
diterima PD.5.
-
55
Metode yang digunakan adalah meletakkan setiap bit yang diterima
ke
posisi MSB, dan menggeser ke arah kanan sebanyak satu kali
setiap ada data yang
masuk. Setelah data yang masuk mencapai satu byte, data disimpan
ke dalam sebuah
variabel. Berikut ini potongan kode program pada bagian
interupsi eksternal 0, yang
digunakan untuk melakukan proses penerimaan data barcode
scanner.
interrupt [EXT_INT0] void ext_int0_isr(void)
{
#asm("cli")
jml++;
if(jml1)
{ if(PIND.5==1)
{
karakter=karakter|0x80;
}
if(jml!=8)
{
karakter=karakter>>1;
}
}
if(jml==11)
{
jml=0;
krk[ttl]=karakter;
ttl++;
krk[ttl]=0x00;
}
#asm("sei")
}
Setelah menerapkan subrutin di atas diperoleh kode untuk setiap
digit
angka. Kode tersebut dapat dilihat pada tabel 3.10, nilai data
tersebut sama dengan
kode angka keyboard komputer.
Tabel 3.10. Kode heksadesimal untuk digit angka.
Angka Kode
(heksadesimal) Angka
Kode
(heksadesimal)
0 45 5 2E
1 16 6 36
2 1E 7 3D
3 26 8 3E
4 25 9 46
-
56
Gambar 3.17. Kode pada keyboard komputer.
3.4.2. Perangkat Lunak Aplikasi Desktop
Bagian ini akan membahas perancangan perangkat lunak pada PC
berupa
aplikasi desktop. Aplikasi desktop yang dibuat terdiri dari dua
bagian yaitu bagian
pengolah data dan aplikasi server. Pengolahan data meliputi
penanganan jadwal kuliah
dan peserta perkuliahan. Aplikasi server digunakan untuk
menangani komunikasi
terhadap modul pencatat kehadiran. Oleh karena aplikasi desktop
cukup kompleks,
maka aplikasi desktop yang dibuat terdiri dari beberapa
form.
Form – form yang digunakan untuk menangani jadwal dan peserta
kuliah
terdiri dari empat buah form data, yaitu pengajar dan mahasiswa,
matakuliah, jadwal,
dan peserta. Form – form untuk aplikasi server yakni form
koneksi dan halaman utama.
Selain beberapa form tersebut tedapat dua buah form lain yaitu
form laporan dan input
file.
3.4.2.1. Perancangan Form Data Pengajar dan Mahasiswa
Form pengajar dan mahasiswa digunakan untuk mengolah data
yang
berkaitan dengan pengajar maupun mahasiswa. Data yang diolah
meliputi NIM,
nama mahasiswa, kode pengajar, dan nama pengajar. Pada form ini,
terdapat tiga
menu utama yaitu input, edit, dan delete. Setiap menu dapat
dioperasikan untuk data
-
57
pengajar atau mahasiswa. Terdapat fasilitas untuk melakukan
pencarian yang
disesuaikan dengan kategori yang dipilih.
Gambar 3.18. Form Pengajar dan Mahasiswa.
Data pengajar dan mahasiswa disimpan pada dua buah tabel. Format
tabel
yang digunakan ada pada gambar 3.19. Primary key yang digunakan
tabel
mahasiswa adalah NIM, sedangkan untuk pengajar digunakan kode
pengajar.
Gambar 3.19. Tabel Mahasiswa dan Pengajar.
3.4.2.2. Perancangan Form Data Matakuliah
Form ini digunakan untuk pengolahan informasi matakuliah.
Informasi
yang termasuk di dalamnya ialah kode matakuliah, nama
matakuliah, sks, kode
pengajar, fakultas dan program studi. Terdapat tiga buah menu
utama untuk
menambah, mengubah dan menghapus matakuliah.
-
58
Gambar 3.20. Form Data Matakuliah.
Informasi matakuliah disimpan pada tabel yang diberi nama
tabel
matakuliah, dapat dilihat pada gambar 3.21. Primary key yang
digunakan adalah
kode matakuliah.
Gambar 3.21. Tabel Matakuliah.
3.4.2.3. Perancangan Form Data Peserta
Input peserta secara manual dilakukan melalui form ini, input
peserta
dilakukan dengan menambahkan NIM peserta matakuliah. Pada form
ini terdapat
tampilan informasi yang didalamnya berisikan kode matakuliah,
nama matakuliah,
-
59
kode pengajar, nama pengajar, sks dan total peserta. Matakuliah
yang diperbolehkan
untuk penambahan peserta hanya matakuliah yang telah memiliki
jadwal.
Peserta dapat ditambahkan ke suatu matakuliah apabila peserta
tersebut
telah terdapat pada tabel mahasiswa. Selain itu, peserta dapat
dihapus satu per satu
atau secara keseluruhan sesuai dengan kode matakuliah yang
dipilih.
Gambar 3.22. Form Data Peserta.
Peserta yang telah ditambahkan melalui form ini akan disimpan ke
dalam
tabel peserta yang memiliki format tabel pada gambar 3.23.
Gambar 3.23. Tabel Peserta.
-
60
Kolom [1] – [16] digunakan untuk mencatat waktu presensi.
Total
kehadiran menyatakan jumlah kehadiran selama perkuliahan
berjalan. Keterangan
mengenai status dapat dilihat pada tabel 3.5.
3.4.2.4. Perancangan Form Data Jadwal
Pengaturan mengenai jadwal perkuliahan dilakukan pada form
ini,
pengaturan meliputi ruangan dan waktu penyajian matakuliah.
Jadwal perkuliahan
berlaku untuk hari Senin sampai Jumat dengan rentang waktu
perkuliahan dari jam
07:00 sampai 20:00.
Gambar 3.24. Form Data Jadwal.
Informasi yang diperlukan pada form ini yaitu kode matakuliah,
hari, jam
mulai, jam selesai, ruangan dan fakultas. Keenam informasi
tersebut disimpan di
dalam tabel jadwal.
-
61
Gambar 3.25. Tabel Jadwal.
3.4.2.5. Perancangan Form Input File
Form input file digunakan untuk memasukkan file – file yang
berisi daftar
presensi. Setiap file mewakili daftar presensi satu buah
matakuliah. File yang
digunakan adalah file microsoft excel dengan ekstensi xls.
Format penulisan file
dapat dilihat pada tabel 3.11.
Gambar 3.26. Form Input File.
-
62
Tabel 3.11. Format File Excel.
Lokasi Keterangan
C1 Fakultas
C2 Progdi
C3 Kode Matakuliah
C4 Nama Matakuliah
C5 Kode Pengajar
C6 Nama Pengajar
C7 SKS
B10 - B12 Hari
C10 - C12 Jam Mulai
D10 - D12 Jam Selesai
E10 - E12 Ruangan
B17 - Bmax NIM
C17 - Cmax Nama Mahasiswa
Pada tabel 3.11 bagian NIM dan nama mahasiswa diberi indeks
max,
indeks tersebut memiliki arti bahwa pengisian peserta matakuliah
dimulai dari baris
17 sampai baris terisi seluruh peserta. File ini dibuat
berdasarkan jadwal matakuliah
setiap fakultas, dan dikirimkan ke server sesuai dengan gedung
perkuliahan tempat
server diletakkan..
3.4.2.6. Perancangan Form Laporan
Form ini digunakan untuk melihat laporan daftar presensi. Form
tersebut
dapat dilihat pada gambar 3.27. Rincian yang ditulis ke dalam
laporan yaitu
mengenai matakuliah yang telah memiliki jadwal dan peserta.
Laporan yang
disajikan terdiri dari informasi matakuliah, tanggal pertemuan,
dan peserta
matakuliah.
-
63
Gambar 3.27. Form Laporan.
Informasi matakuliah yang tertulis termasuk di dalamnya yakni
kode
matakuliah, nama matakuliah, kode pengajar, nama pengajar, sks,
fakultas dan
progdi. Informasi tersebut diperlihatkan pada gambar 3.28.
Gambar 3.28. Bagian laporan mengenai informasi matakuliah.
Tanggal pertemuan kuliah tercantum setelah bagian informasi
matakuliah.
Total pertemuan maksimal dibatasi sebanyak 16. Daftar peserta
matakuliah berada
-
64
pada posisi setelah tanggal pertemuan, daftar tersebut disajikan
dalam bentuk kolom.
Kolom – kolom tersedia dapat dilihat pada gambar 3.29.
Penjelasan mengenai status
terdapat pada bagian akhir laporan.
Gambar 3.29. Bagian akhir laporan.
3.4.2.7. Perancangan Form Koneksi
Pemberian identitas ruang kuliah dilakukan melalui form ini,
dimana
identitas tersebut merupakan IP modul pencatat kehadiran. Setiap
ruangan kuliah
akan memiliki IP yang berbeda – beda, tidak diperkenankan ada IP
yang sama.
Tampilan form koneksi diperlihatkan pada gambar 3.30. Alamat IP
dan ruangan
disimpan dalam tabel yang dinamai tabel ruangan. Gambar tabel
dapat dilihat pada
gambar 3.31.
-
65
Gambar 3.30. Form Koneksi.
Gambar 3.31. Tabel Ruangan.
3.4.2.8. Perancangan Form Halaman Utama
Form Halaman Utama merupakan form yang digunakan untuk
mengatur
akses koneksi modul pencatat kehadiran. Melalui form ini bagian
aplikasi server
dijalankan. Protokol yang digunakan yakni TCP dengan menggunakan
nomor port
8888. Koneksi hanya diberikan kepada modul pencatat kehadiran
yang meminta
koneksi. Koneksi terhadap jaringan dibuka dengan menekan tombol
START yang
terdapat pada form.
-
66
Gambar 3.32. Form Halaman Utama.
Diagram alir dari aplikasi server pada form ini dapat dilihat
pada gambar
3.33. Diagram alir menjelaskkan bagaimana respon terhadap data
yang masuk dengan
kondisi tombol START sudah ditekan.
Gambar 3.33. Diagram alir aplikasi server.