T1 612006026 BAB III

(1)

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.


(2)

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.


(3)

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


(4)

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.


(5)

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:


(6)

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


(7)

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.


(8)

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


(9)

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.


(10)

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


(11)

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 .


(12)

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


(13)

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

Ω =

= 600

mA 5

V 3 R

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 .


(14)

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 dv C

I= × ………(3.3)

Karena perubahan tegangan terhadap waktu selalu tetap, maka persamaan di atas menjadi:

T V C


(15)

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 1

T= ………..…(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µF 1V 0,01s 0,5A C 0,01s 1V C 0,5A T V C I = × = × = × =

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.


(16)

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:

Vout1 R2

R1 R2

V( ) ×

+ =

− ………(3.6)

10V 12V 12k

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


(17)

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.


(18)

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.


(19)

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.


(20)

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


(21)

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 [‘<’][inisial][data]. Jumlah data setelah inisial maksimal 2 byte. Karakter ‘<’ digunakan untuk awal sekaligus akhir pembacaan data, ini disebabkan setiap ada dua karakter ‘<” di tengahnya pasti ada inisial dan data. Inisial merupakan penanda untuk menentukan kategori data yang dibaca. Data ditulis setelah inisial, panjang data yang ditulis disesuaikan dengan kategori data.

Gambar 3.11. Struktur penulisan data di EEPROM.

Data tanggal terdiri dari tiga bagian yaitu hari, bulan dan tahun. Penulisan data tanggal hanya terjadi satu kali per penyalaan modul. Format data tanggal dapat dilihat pada tabel 3.6. Panjang data setelah inisial sebesar satu byte.


(22)

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.


(23)

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 ['<'][detik][nomor urut angkatan] > 127 ['<'][detik][x][y]


(24)

Keterangan untuk nilai x dan y dapat dilihat pada persamaan berikut:

NomorUrutAngkatan=

(

127×X

)

+Y………..……(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.


(25)

!!

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.


(26)

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.


(27)

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.


(28)

3.4.1.4.2. Offlinemode

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.

"

# $

%

% $

&& $ " & '

% (

(

"

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.


(29)

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(jml<10&&jml>1) { 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


(30)

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


(31)

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.


(32)

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,


(33)

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.


(34)

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.


(35)

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.


(36)

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.


(37)

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


(38)

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.


(39)

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.


(40)

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.


(1)

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.


(2)

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.


(3)

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


(4)

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.


(5)

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.


(6)

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.