Penjelasan Program Absensi RFID dan ESP32 (Uji Kompetensi Edition) - 1. File

Bayangkan Anda sedang membangun sebuah mobil. Ketiga file ini memiliki peran seperti berikut:


1. config.h -> Buku Manual & Spesifikasi Mobil

Ini adalah file header (.h). Fungsinya adalah menjadi pusat definisi global untuk seluruh proyek. Semua file lain akan merujuk ke file ini.

Tugas Utamanya:

Intinya: config.h adalah sumber kebenaran tunggal untuk semua pengaturan dan konfigurasi. Jika Anda ingin mengubah pin buzzer atau nama server MQTT, Anda hanya perlu mengubahnya di satu tempat ini.


2. ConfigFile.ino -> Mekanik & Administrasi

File ini berisi semua fungsi yang berhubungan dengan manajemen konfigurasi dan penyimpanan data. Ia bertanggung jawab atas "pekerjaan kotor" mengelola file.

Tugas Utamanya:

Intinya: File ini adalah modul penyimpanan. Ia menangani semua interaksi dengan file system, sehingga file utama program tidak perlu pusing dengan cara membaca atau menulis file.


3. absensi-rfid.ino -> Sistem Utama & Sopir

Ini adalah file utama (file sketch .ino). Ini adalah "otak" yang mengendalikan seluruh alur kerja mobil dari awal hingga akhir.

Tugas Utamanya:

Intinya: File ini adalah logika bisnis utama. Ia mengatur semua bagian (RFID, Wi-Fi, MQTT, Buzzer) untuk bekerja sama mencapai tujuan akhir: mencatat absensi.


Ringkasan Cara Kerja Sama Ketiganya

  1. absensi-rfid.ino adalah sutradara. Ia memulai pertunjukan dengan setup().
  2. Di setup(), ia membaca config.h untuk tahu di mana pin-pin berada dan pengaturan default apa yang digunakan.
  3. Ia lalu memanggil ConfigFile.ino (ReadConfigFile()) untuk memuat pengaturan yang mungkin sudah disimpan sebelumnya.
  4. Di loop(), absensi-rfid.ino terus bekerja, membaca kartu, dan mengirim data.
  5. Jika pengguna mengubah pengaturan melalui WiFiManager, absensi-rfid.ino akan memanggil fungsi dari ConfigFile.ino (SaveConfigFile()) untuk menyimpan perubahan tersebut.
  6. Semua file ini terhubung dan saling mengetahui variabel-variabel penting berkat config.h.

Struktur ini membuat kode menjadi rapi, mudah dipelihara, dan modular.