2025-10-08
admin
Diperbarui 2025-10-11

Panduan Presensi Karyawan Otomatis dengan WhatsApp Attendance Bot

Pelajari cara menggunakan WhatsApp Attendance Bot untuk presensi karyawan dengan mudah. Panduan langkah demi langkah, fitur utama, dan daftar command lengkap untuk check-in & check-out yang akurat.
Panduan Presensi Karyawan Otomatis dengan WhatsApp Attendance Bot

📱 Panduan WhatsApp Attendance Bot

🎯 Fitur Utama

Bot ini adalah sistem presensi karyawan yang menggunakan:

  • 📍 Geolocation - Validasi lokasi karyawan
  • 📸 Face Recognition - Identifikasi otomatis dari foto
  • Real-time - Proses langsung dan cepat
  • 🔐 Secure - API key protection

🚀 Quick Start

1️⃣ Setup & Instalasi

# Install dependencies
npm install @whiskeysockets/baileys qrcode-terminal axios form-data

# Edit konfigurasi di whatsapp-bot.js
const API_BASE_URL = 'http://localhost:5000/api/v1'
const API_KEY = 'your-secret-api-key-here'  # Ganti dengan API key Anda

# Jalankan bot
node whatsapp-bot.js

# Scan QR code yang muncul dengan WhatsApp

2️⃣ Verifikasi Bot Berjalan

Setelah scan QR code, Anda akan menerima pesan:

✅ Attendance Bot Online!
📡 API: Connected
📍 Kirim lokasi + foto untuk presensi
⌨️ Ketik /help untuk bantuan

📍 Cara Melakukan Presensi

✅ CHECK-IN (Masuk Kerja)

Langkah 1: Kirim LIVE LOCATION (PENTING!)

1. Buka chat dengan bot
2. Klik ikon lampiran (+)
3. Pilih "Lokasi"
4. Pilih "LOKASI LIVE" atau "LIVE LOCATION" (bukan share location biasa!)
5. Pilih durasi (15 menit atau 1 jam)
6. Kirim

⚠️ PENTING: Harus LIVE LOCATION, bukan share location biasa!

Bot akan membalas DAN MEREPLY pesan lokasi Anda:

✅ Live Location Diterima!
📍 Lat: -6.208800
📍 Lng: 106.845600

📸 Kirim foto selfie untuk melanjutkan presensi!

Langkah 2: Kirim Foto Selfie

1. Ambil foto selfie (wajah harus jelas)
2. Kirim foto tanpa caption

Bot akan MEREPLY foto Anda dengan:

🔄 Memproses Presensi...

📍 Validasi lokasi kantor
📸 Face recognition
⏱️ Mohon tunggu...

Kemudian bot akan MEREPLY lagi dengan hasil:

🟢 CHECK-IN BERHASIL!

👤 John Doe
🆔 K001
⏰ 08:30:15
📊 Confidence: 95.5%
🏢 Kantor Pusat Jakarta
📍 -6.208800, 106.845600

✅ Presensi tercatat dalam sistem!

📸 Kirim foto selfie untuk melanjutkan presensi!

**Langkah 2: Kirim Foto Selfie**
  1. Ambil foto selfie (wajah harus jelas)
  2. Kirim foto tanpa caption
Bot akan membalas:

🟢 CHECK-IN BERHASIL!

👤 John Doe 🆔 K001 ⏰ 08:30:15 📊 Confidence: 95.5% 🏢 Kantor Pusat Jakarta 📍 -6.208800, 106.845600

✅ Presensi tercatat dalam sistem!

---

### 🔴 CHECK-OUT (Pulang Kerja)

**Langkah 1: Kirim Lokasi Live** (sama seperti check-in)

**Langkah 2: Kirim Foto dengan Caption**
  1. Ambil foto selfie
  2. Tambahkan caption: "checkout" atau "pulang" atau "out"
  3. Kirim
Bot akan membalas:

🔴 CHECK-OUT BERHASIL!

👤 John Doe 🆔 K001 ⏰ 17:30:45 📊 Confidence: 96.2% 🏢 Kantor Pusat Jakarta 📍 -6.208800, 106.845600

⏱️ Total Jam Kerja: 9.0 jam

✅ Presensi tercatat dalam sistem!

---

## ⌨️ Command List

### User Commands

| Command | Deskripsi | Contoh |
|---------|-----------|---------|
| `/help` atau `/start` | Panduan lengkap | `/help` |
| `/locations` | Daftar lokasi kantor | `/locations` |
| `/status` | Status sistem bot & API | `/status` |
| `/mystatus [ID]` | Cek status presensi Anda | `/mystatus K001` |
| `/checkin` | Panduan check-in | `/checkin` |
| `/checkout` | Panduan check-out | `/checkout` |

### Response Examples

**`/locations`**

🏢 Lokasi Kantor (2)

  1. Kantor Pusat Jakarta 📍 Jl. Sudirman No. 1 🎯 Radius: 100m 📊 -6.2088, 106.8456
  2. Kantor Cabang Bogor 📍 Jl. Pajajaran No. 10 🎯 Radius: 50m 📊 -6.5944, 106.7892

💡 Anda harus berada dalam radius kantor untuk presensi!

**`/status`**

📊 System Status

🤖 WhatsApp Bot: Online 📡 API Server: Online 🏢 Office Locations: 2 ⏰ 07/10/2025 20:30:15

✅ Sistem siap digunakan!

**`/mystatus K001`**

📊 Status Presensi

🆔 Employee ID: K001 📅 07/10/2025

Status: Present 🟢 Check-in: 08:30:15 🔴 Check-out: 17:30:45 🏢 Kantor Pusat Jakarta

✅ Bisa check-in ❌ Sudah check-out

---

## ❌ Error Handling & Solutions

### Error: "Lokasi belum dikirim!"

**Penyebab:** Anda langsung kirim foto tanpa kirim lokasi dulu.

**Solusi:**
1. Kirim lokasi live terlebih dahulu
2. Tunggu konfirmasi bot
3. Baru kirim foto

---

### Error: "Lokasi sudah kedaluwarsa!"

**Penyebab:** Lokasi yang Anda kirim sudah lebih dari 5 menit.

**Solusi:**
1. Kirim ulang lokasi live yang baru
2. Langsung kirim foto (jangan menunggu lama)

---

### Error: "Lokasi Tidak Valid!"

**Penyebab:** Anda berada di luar radius kantor yang diizinkan.

**Solusi:**
1. Pastikan Anda berada di kantor
2. Cek lokasi kantor dengan `/locations`
3. Pastikan GPS aktif dan akurat
4. Coba pindah ke area yang lebih dekat dengan pusat kantor

---

### Error: "Wajah tidak dikenal"

**Penyebab:** Face recognition tidak mengenali wajah Anda.

**Solusi:**
1. Pastikan foto selfie jelas (tidak blur)
2. Wajah menghadap langsung ke kamera
3. Pencahayaan cukup terang
4. Tidak memakai masker/kacamata hitam
5. Hubungi admin untuk mendaftarkan wajah Anda jika belum terdaftar

---

### Error: "Sudah check-in hari ini"

**Penyebab:** Anda sudah melakukan check-in hari ini.

**Solusi:**
- Jika ingin check-out, kirim foto dengan caption "checkout"
- Jika memang salah check-in, hubungi admin

---

### Error: "Belum check-in hari ini"

**Penyebab:** Anda mencoba check-out padahal belum check-in.

**Solusi:**
1. Lakukan check-in terlebih dahulu
2. Kirim foto tanpa caption untuk check-in

---

## 💡 Tips & Best Practices

### 📸 Foto yang Baik

✅ **DO:**
- Wajah terlihat jelas
- Pencahayaan cukup
- Menghadap kamera
- Tidak blur
- Background netral

❌ **DON'T:**
- Foto blur atau gelap
- Wajah tertutup masker/kacamata
- Angle terlalu miring
- Terlalu jauh dari kamera
- Foto group/banyak orang

### 📍 Lokasi yang Akurat

✅ **DO:**
- Aktifkan GPS/Location Services
- Gunakan "Lokasi Live" atau "Lokasi Saat Ini"
- Kirim dari dalam area kantor
- Tunggu GPS akurat (biasanya 10-30 detik)

❌ **DON'T:**
- GPS mati
- Kirim lokasi palsu/fake
- Kirim dari luar kantor
- Menggunakan VPN yang mengubah lokasi

### ⏰ Timing

✅ **DO:**
- Check-in saat tiba di kantor
- Check-out saat akan pulang
- Kirim lokasi dan foto berurutan (jangan terlalu lama jeda)

❌ **DON'T:**
- Check-in terlalu pagi/dini hari
- Check-out sebelum jam kerja selesai
- Menunda kirim foto setelah kirim lokasi

---

## 🔧 Troubleshooting

### Bot Tidak Merespons

**Cek:**
1. Bot masih online? (tanya admin)
2. Koneksi internet Anda stabil?
3. Nomor Anda terdaftar di sistem?

**Solusi:**
- Tunggu beberapa detik
- Coba kirim ulang
- Hubungi admin

### API Server Down

**Gejala:**

❌ Error! API server tidak dapat dijangkau

**Solusi:**
- Tunggu admin memperbaiki server
- Bot tetap bisa terima pesan, tapi tidak bisa proses presensi

### Face Recognition Gagal Terus

**Solusi Bertahap:**
1. Coba di tempat dengan pencahayaan lebih baik
2. Pastikan kamera bersih
3. Ambil foto dari jarak 30-50cm
4. Jika tetap gagal, hubungi admin untuk re-register wajah

---

## 📞 Kontak Admin

Jika mengalami masalah yang tidak bisa diselesaikan:
1. Screenshot error message
2. Catat waktu kejadian
3. Hubungi admin dengan informasi:
   - Nomor WhatsApp Anda
   - Employee ID
   - Waktu kejadian
   - Screenshot error

---

## 🔐 Security & Privacy

### Data yang Disimpan:
- ✅ Lokasi (koordinat GPS) - untuk validasi
- ✅ Waktu check-in/out - untuk record presensi
- ✅ Foto selfie - untuk face recognition
- ✅ Employee ID & confidence score

### Data yang TIDAK Disimpan:
- ❌ Riwayat lokasi real-time
- ❌ Foto selain untuk presensi
- ❌ Chat history

### Privacy:
- Foto hanya digunakan untuk face recognition
- Lokasi hanya digunakan untuk validasi area kantor
- Data tersimpan secure di server perusahaan

---

## 📊 Flowchart Presensi

START ↓ Buka chat dengan bot ↓ Kirim lokasi live ↓ Bot: "Lokasi diterima! Kirim foto" ↓ Ambil foto selfie ↓ Check-in? → Kirim foto tanpa caption ↓ atau Check-out? → Kirim foto dengan caption "checkout" ↓ Bot memproses:

  1. Validasi lokasi (dalam radius kantor?)
  2. Face recognition (wajah dikenal?)
  3. Check validitas (sudah check-in/out?) ↓ ✅ BERHASIL → Bot kirim konfirmasi + detail atau ❌ GAGAL → Bot kirim error + saran solusi ↓ END
---

## 🆘 FAQ

**Q: Apakah harus kirim lokasi live setiap kali presensi?**
A: Ya, karena sistem perlu memvalidasi Anda berada di kantor.

**Q: Berapa lama lokasi yang saya kirim valid?**
A: Lokasi valid selama 5 menit. Setelah itu harus kirim ulang.

**Q: Bisa presensi untuk orang lain?**
A: Tidak. Face recognition akan identifikasi wajah yang ada di foto.

**Q: Bagaimana jika lupa check-out?**
A: Hubungi admin untuk manual correction.

**Q: Bisa check-in/out berkali-kali dalam sehari?**
A: Tidak. Sistem hanya menerima 1 check-in dan 1 check-out per hari.

**Q: Apakah bot menyimpan history chat?**
A: Tidak. Bot hanya memproses pesan untuk presensi saja.

**Q: Bagaimana cara mendaftar wajah baru?**
A: Hubungi admin untuk didaftarkan melalui web interface.

---

## 📈 Version History

**v3.0.0** (Latest)
- ✨ Geolocation validation
- ✨ Face recognition auto-detect
- ✨ Simplified flow (location + photo only)
- 🔧 Bug fixes: senderNumber undefined
- 📝 Improved logging

**v2.0.0**
- Multiple reference photos
- Employee management via bot
- Admin commands

**v1.0.0**
- Basic face recognition
- WhatsApp integration

---

**Semoga panduan ini membantu! Untuk pertanyaan lebih lanjut, hubungi admin sistem.** 🚀


blog teknologi programming admin

Artikel Terkait