Top Banner
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.
40

BAB III PERANCANGAN SISTEM - UKSW...27 BAB III PERANCANGAN SISTEM Pada bab ini akan dijelaskan mengenai perancangan dari komponen penyusun pada sistem. Komponen – komponen yang dirancang

Feb 09, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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.