bab iii perancangan sistem - uksw...27 bab iii perancangan sistem pada bab ini akan dijelaskan...
TRANSCRIPT
-
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.