322 lines
11 KiB
Markdown
322 lines
11 KiB
Markdown
# 🗺️ DIAGRAM INTERAKTIF: Device Anda vs Area Absensi
|
|
|
|
## 🔴 KONDISI SEKARANG: ANDA BERADA DI LUAR AREA
|
|
|
|
```
|
|
⭐ ANDA SEKARANG DI SINI
|
|
(13.980 km JAUH)
|
|
📱 Device Location
|
|
|
|
|
|
|
|
|
|
|
|
╔═══════════════════════════════════════╗
|
|
║ ║
|
|
║ UBHARAJAYA CAMPUS ║
|
|
║ 🏢 ║
|
|
║ Latitude: -6.8961 ║
|
|
║ Longitude: 107.6100 ║
|
|
║ ║
|
|
║ ┌─────────────────┐ ║
|
|
║ │ │ ║
|
|
║ │ AREA VALID ✓ │ Radius: 125m ║
|
|
║ │ Bisa Absen │ ║
|
|
║ │ │ ║
|
|
║ └─────────────────┘ ║
|
|
║ ║
|
|
║ ✓ Dalam Area (85m): DITERIMA ✅ ║
|
|
║ ⚠️ Tepi Area (125m): DITERIMA ✅ ║
|
|
║ ✗ Luar Area (200m): DITOLAK ❌ ║
|
|
║ ║
|
|
╚═══════════════════════════════════════╝
|
|
|
|
|
|
|
|
|
|
|
|
📍 ANDA DI SINI
|
|
(13.980 km JAUH)
|
|
Status: ❌ DILUAR AREA
|
|
```
|
|
|
|
---
|
|
|
|
## 🟢 KONDISI SETELAH MOCK LOCATION DIAKTIFKAN
|
|
|
|
```
|
|
Dari RUMAH Anda sekarang ⭐
|
|
(Menggunakan Mock Location)
|
|
↓
|
|
|
|
Pindah ke lokasi SIMULASI
|
|
↓
|
|
|
|
╔═══════════════════════════════════════╗
|
|
║ ║
|
|
║ UBHARAJAYA CAMPUS ║
|
|
║ 🏢 ║
|
|
║ Latitude: -6.8961 ║
|
|
║ Longitude: 107.6100 ║
|
|
║ ║
|
|
║ ┌─────────────────┐ ║
|
|
║ │ 📍 ANDA DI SINI│ 85m dari ║
|
|
║ │ AREA VALID ✓ │ pusat (ok!) ║
|
|
║ │ Bisa Absen │ ║
|
|
║ │ │ ║
|
|
║ └─────────────────┘ ║
|
|
║ Status: ✅ DALAM AREA ║
|
|
║ Absensi: DITERIMA ✅ ║
|
|
║ 🧪 MOCK LOCATION (Testing) ║
|
|
║ ║
|
|
╚═══════════════════════════════════════╝
|
|
|
|
|
|
(Rumah Anda masih di lokasi lama,
|
|
tapi app menggunakan mock location)
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 PERBANDINGAN VISUAL
|
|
|
|
### **SEBELUM AKTIVASI MOCK LOCATION**
|
|
|
|
```
|
|
┌─────────────────────────────────────────────┐
|
|
│ Attendance Screen │
|
|
├─────────────────────────────────────────────┤
|
|
│ │
|
|
│ 📍 Status Lokasi: │
|
|
│ │
|
|
│ Latitude: -6.8961 + offset │
|
|
│ Longitude: 107.6100 + offset │
|
|
│ Jarak: 13.980 km ❌ TERLALU JAUH │
|
|
│ │
|
|
│ 🧪 MOCK LOCATION: OFF ❌ │
|
|
│ │
|
|
│ ❌ DILUAR AREA ABSENSI │
|
|
│ Jarak > 125m (threshold) │
|
|
│ │
|
|
│ [Perbarui Lokasi] │
|
|
│ [ABSENSI] ← DISABLED (tidak bisa diklik) │
|
|
│ │
|
|
└─────────────────────────────────────────────┘
|
|
```
|
|
|
|
### **SESUDAH AKTIVASI MOCK LOCATION**
|
|
|
|
```
|
|
┌─────────────────────────────────────────────┐
|
|
│ Attendance Screen │
|
|
├─────────────────────────────────────────────┤
|
|
│ │
|
|
│ 📍 Status Lokasi: │
|
|
│ │
|
|
│ Latitude: -6.8955 ✅ UPDATED │
|
|
│ Longitude: 107.6105 ✅ UPDATED │
|
|
│ Jarak: 85.2m ✅ DALAM AREA │
|
|
│ │
|
|
│ 🧪 MOCK LOCATION: ON ✅ │
|
|
│ (Testing Mode) │
|
|
│ │
|
|
│ ✓ BERADA DALAM AREA ABSENSI │
|
|
│ Status: HIJAU (diterima) │
|
|
│ │
|
|
│ [Perbarui Lokasi] │
|
|
│ [ABSENSI] ← ENABLED (bisa diklik) ✅ │
|
|
│ │
|
|
└─────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 JENIS-JENIS LOKASI TESTING
|
|
|
|
### **Visual Representation:**
|
|
|
|
```
|
|
🏢 KAMPUS (0m)
|
|
✓ TERIMA
|
|
↑
|
|
┌───────────────┐
|
|
│ │
|
|
85m ← ✓ │ AREA VALID │ ✓ → 85m
|
|
TERIMA │ (125m) │ TERIMA
|
|
│ │
|
|
└───────────────┘
|
|
↓
|
|
⚠️ EDGE (125m)
|
|
✓ TERIMA
|
|
(warning)
|
|
|
|
|
|
DILUAR AREA:
|
|
200m → ✗ LUAR AREA (DITOLAK) ❌
|
|
400m → ❌ JAUH DI LUAR (DITOLAK) ❌
|
|
|
|
|
|
TABEL DETAIL:
|
|
|
|
NAMA LOKASI JARAK TERIMA? GUNAKAN UNTUK
|
|
─────────────────────────────────────────────────────────
|
|
🏢 Kampus 0m ✅ YES Test keakuratan
|
|
✓ Dalam Area 85m ✅ YES ⭐ PALING AMAN
|
|
⚠️ Tepi Area 125m ✅ YES Test boundary
|
|
✗ Luar Area 200m ❌ NO Test penolakan
|
|
❌ Jauh di Luar 400m ❌ NO Test stress
|
|
```
|
|
|
|
---
|
|
|
|
## 🔄 FLOW DIAGRAM: Dari Sekarang Sampai Bisa Absen
|
|
|
|
```
|
|
START: Device Anda Sekarang
|
|
│
|
|
├─ Lokasi: 13.980 km jauh ❌
|
|
├─ Status: DILUAR AREA ❌
|
|
├─ Absensi: DITOLAK ❌
|
|
│
|
|
│ SOLUSI DIPILIH: Gunakan Mock Location
|
|
│
|
|
↓
|
|
STEP 1: Login
|
|
│ └─ Buka app & login dengan NIM
|
|
↓
|
|
STEP 2: Buka Attendance Screen
|
|
│ └─ Berhasil login
|
|
↓
|
|
STEP 3: Klik Icon ⚙️ Settings
|
|
│ └─ Dialog "Location Debug Menu" muncul
|
|
↓
|
|
STEP 4: Aktifkan Mock Location (ON)
|
|
│ └─ Toggle digeser ke kanan (hijau)
|
|
↓
|
|
STEP 5: Pilih Lokasi "Dalam Area (85m)"
|
|
│ └─ Lokasi simulasi dipilih
|
|
├─ Latitude: -6.8955
|
|
├─ Longitude: 107.6105
|
|
└─ Jarak: 85m
|
|
↓
|
|
STEP 6: Klik "Close"
|
|
│ └─ Dialog ditutup
|
|
├─ Mock Location: ON ✅
|
|
├─ Lokasi: Dalam Area ✅
|
|
└─ Status: Menunggu update
|
|
↓
|
|
STEP 7: Klik "Perbarui Lokasi"
|
|
│ └─ Aplikasi refresh & gunakan mock location
|
|
├─ Lokasi berubah ke -6.8955, 107.6105
|
|
├─ Jarak: 85.2m
|
|
├─ Validasi: DITERIMA ✅
|
|
├─ Warna: HIJAU ✓
|
|
└─ Status: "Berada dalam area absensi" ✅
|
|
↓
|
|
RESULT: ✅ SUKSES
|
|
├─ Lokasi: DALAM AREA ✅
|
|
├─ Status: HIJAU ✓
|
|
├─ Button: ABSENSI aktif
|
|
└─ Aksi: Siap untuk klik "ABSENSI"
|
|
↓
|
|
NEXT: Ambil foto & submit absensi
|
|
```
|
|
|
|
---
|
|
|
|
## ⏱️ TIMELINE VISUAL
|
|
|
|
```
|
|
WAKTU AKSI STATUS BAR
|
|
─────────────────────────────────────────────────────
|
|
Sekarang Device di rumah (13.980 km) ░░░░░░░░░░ 0%
|
|
Status: Diluar area
|
|
|
|
+30 det Klik icon ⚙️ Settings ░░░░░░░░░░ 15%
|
|
Dialog muncul
|
|
|
|
+60 det Aktifkan toggle Mock Location ░░░░░░░░░░ 40%
|
|
Pilih lokasi testing
|
|
|
|
+90 det Pilih "Dalam Area (85m)" ░░░░░░░░░░ 65%
|
|
Lokasi dipilih
|
|
|
|
+120 det Klik Close & Perbarui Lokasi ░░░░░░░░░░ 85%
|
|
Mock location apply
|
|
|
|
+150 det Status berubah hijau ✓ ████████░░ 95%
|
|
Lokasi updated
|
|
|
|
+180 det Klik "ABSENSI" & selesai ██████████ 100%
|
|
✅ BERHASIL!
|
|
|
|
TOTAL: ~3 MENIT DARI SEKARANG
|
|
```
|
|
|
|
---
|
|
|
|
## 📍 KOORDINAT YANG DIGUNAKAN
|
|
|
|
### **Default Kampus:**
|
|
```
|
|
Latitude: -6.8961 (same as your device origin)
|
|
Longitude: 107.6100 (same as your device origin)
|
|
```
|
|
|
|
### **Mock Locations Available:**
|
|
|
|
```
|
|
Tipe Lat Lon Jarak Status
|
|
──────────────────────────────────────────────────
|
|
🏢 Kampus -6.8961 107.6100 0m ✅
|
|
✓ Dalam Area -6.8955 107.6105 85m ✅ ⭐
|
|
⚠️ Tepi Area -6.8948 107.6110 125m ✅
|
|
✗ Luar Area -6.8930 107.6120 200m ❌
|
|
❌ Jauh di Luar -6.8900 107.6150 400m ❌
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 RINGKASAN VISUAL
|
|
|
|
### **❌ KONDISI SEKARANG:**
|
|
```
|
|
┌──────────────────────────────┐
|
|
│ Device Anda: │
|
|
│ 📍 13.980 km dari kampus │
|
|
│ ❌ DILUAR AREA ABSENSI │
|
|
│ ❌ ABSENSI DITOLAK │
|
|
└──────────────────────────────┘
|
|
```
|
|
|
|
### **✅ KONDISI SETELAH SOLUSI:**
|
|
```
|
|
┌──────────────────────────────┐
|
|
│ Device Anda (dengan Mock): │
|
|
│ 📍 85m dari kampus (simulasi)│
|
|
│ ✅ DALAM AREA ABSENSI │
|
|
│ ✅ ABSENSI DITERIMA │
|
|
└──────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 CALL TO ACTION
|
|
|
|
**SEKARANG:**
|
|
```
|
|
KLIK ⚙️ → ON MOCK → PILIH "85m" → DONE!
|
|
|
|
1 MENIT, SELESAI! ⏱️
|
|
```
|
|
|
|
---
|
|
|
|
*Diagram ini menunjukkan:*
|
|
- ✅ Lokasi Anda sekarang: 13.980 km jauh
|
|
- ✅ Kenapa diluar area: Melebihi radius 125m
|
|
- ✅ Solusi: Gunakan mock location
|
|
- ✅ Hasil: Dalam area & bisa absen
|
|
- ✅ Waktu: 1-3 menit total
|
|
|