Format Data Presensi Mahasiswa di EEPROM

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. 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. 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] Keterangan untuk nilai x dan y dapat dilihat pada persamaan berikut: Y X 127 ngkatan NomorUrutA + × = ……………..……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