Absensi GPS
Arsitektur Sistem
Backend
Frontend
API
  • Struktur
  • Alur Kerja
  • Implementasi GPS
  • Pengembangan dan Pengujian
Deployment
Pengujian
Arsitektur Sistem
Backend
Frontend
API
  • Struktur
  • Alur Kerja
  • Implementasi GPS
  • Pengembangan dan Pengujian
Deployment
Pengujian
  • Deployment

Deployment

Pendahuluan

Dokumen ini menjelaskan langkah-langkah untuk men-deploy aplikasi Absensi GPS, termasuk backend Laravel, frontend Vue.js, dan aplikasi Android. Deployment yang tepat akan memastikan semua komponen sistem dapat berkomunikasi dengan baik.

Persyaratan Sistem

Server Requirements

  • PHP 8.2 atau lebih tinggi
  • MySQL 8.0 atau lebih tinggi
  • Composer 2.0 atau lebih tinggi
  • Node.js 18.0 atau lebih tinggi
  • NPM 9.0 atau lebih tinggi
  • Webserver (Apache/Nginx)

Android Requirements

  • Android Studio 4.0 atau lebih tinggi
  • JDK 11 atau lebih tinggi
  • Gradle 7.0 atau lebih tinggi
  • Android SDK API level 28 atau lebih tinggi

Deployment Backend dan Frontend

1. Clone Repository

git clone https://github.com/username/absensi-gps.git
cd absensi-gps

2. Setup Backend

Instalasi Dependensi

composer install --optimize-autoloader --no-dev

Konfigurasi Environment

Salin file .env.example menjadi .env dan sesuaikan konfigurasi:

cp .env.example .env
php artisan key:generate

Edit file .env dan sesuaikan konfigurasi database:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=absensi_gps
DB_USERNAME=root
DB_PASSWORD=password

MOBILE_API_KEY=9a3b7c8d2e1f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8

Migrasi dan Seeding Database

php artisan migrate --seed

Optimasi Laravel

php artisan config:cache
php artisan route:cache
php artisan view:cache

3. Setup Frontend

Instalasi Dependensi

npm install

Build Frontend

npm run build

4. Konfigurasi Webserver

Apache

Buat file konfigurasi virtual host di /etc/apache2/sites-available/absensi-gps.conf:

<VirtualHost *:80>
    ServerName absensi-gps.local
    DocumentRoot /path/to/absensi-gps/public
    
    <Directory "/path/to/absensi-gps/public">
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog ${APACHE_LOG_DIR}/absensi-gps-error.log
    CustomLog ${APACHE_LOG_DIR}/absensi-gps-access.log combined
</VirtualHost>

Aktifkan virtual host dan restart Apache:

sudo a2ensite absensi-gps.conf
sudo systemctl restart apache2

Nginx

Buat file konfigurasi di /etc/nginx/sites-available/absensi-gps:

server {
    listen 80;
    server_name absensi-gps.local;
    root /path/to/absensi-gps/public;
    
    index index.php;
    
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
    
    location ~ /\.ht {
        deny all;
    }
}

Aktifkan konfigurasi dan restart Nginx:

sudo ln -s /etc/nginx/sites-available/absensi-gps /etc/nginx/sites-enabled/
sudo systemctl restart nginx

5. Setup Permissions

Atur permission yang tepat untuk direktori storage dan bootstrap/cache:

sudo chown -R www-data:www-data storage bootstrap/cache
sudo chmod -R 775 storage bootstrap/cache

Deployment Aplikasi Android

1. Konfigurasi API Endpoint

Buka file app/src/main/java/com/example/absensigps/util/Constants.kt dan sesuaikan API_KEY:

object Constants {
    const val API_KEY = "9a3b7c8d2e1f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8"
}

2. Build APK

Melalui Android Studio

  1. Buka proyek di Android Studio
  2. Pilih menu Build > Build Bundle(s) / APK(s) > Build APK(s)
  3. Tunggu proses build selesai
  4. APK akan tersedia di app/build/outputs/apk/debug/app-debug.apk

Melalui Command Line

cd android
./gradlew assembleDebug

APK akan tersedia di app/build/outputs/apk/debug/app-debug.apk

3. Distribusi APK

APK dapat didistribusikan melalui beberapa cara:

  1. Email: Kirim APK langsung ke email siswa
  2. Google Drive: Upload APK ke Google Drive dan bagikan link
  3. Website Sekolah: Sediakan link download di website sekolah
  4. Google Play Store: Untuk distribusi yang lebih luas (memerlukan akun developer)

Konfigurasi Jaringan

Agar aplikasi Android dapat menemukan server dengan benar, pastikan:

  1. Server dan perangkat Android berada dalam jaringan yang sama
  2. Port 80 (HTTP) atau 443 (HTTPS) terbuka di firewall server
  3. IP server bersifat statis atau menggunakan DHCP reservation

Pengujian Deployment

1. Backend API

Uji API menggunakan Postman atau curl:

curl -X GET \
  "http://absensi-gps.local/api/mobile/status" \
  -H "Authorization: Bearer 9a3b7c8d2e1f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8"

Response yang diharapkan:

{
  "success": true,
  "data": {
    "status": "online",
    "database": "online",
    "server_ip": "192.168.1.100",
    "server_time": "2025-05-15 20:30:00",
    "app_version": "1.0.0"
  }
}

2. Frontend Admin

Buka browser dan akses http://absensi-gps.local. Login dengan kredensial admin:

  • Email: admin@example.com
  • Password: password

3. Aplikasi Android

Install APK di perangkat Android dan pastikan:

  1. Aplikasi dapat menemukan server saat splash screen
  2. Login berhasil dengan ID Siswa dan Password yang valid
  3. Fitur absensi masuk dan keluar berfungsi dengan baik

Troubleshooting

Backend Issues

  1. Error 500: Periksa log di storage/logs/laravel.log
  2. Database Connection Error: Periksa konfigurasi database di .env
  3. Permission Issues: Pastikan permission direktori storage dan bootstrap/cache sudah benar

Frontend Issues

  1. Blank Page: Periksa console browser untuk error JavaScript
  2. API Error: Pastikan backend API berjalan dengan baik

Android Issues

  1. Cannot Find Server: Pastikan perangkat dan server berada dalam jaringan yang sama
  2. Login Failed: Periksa kredensial dan koneksi ke server
  3. GPS Error: Pastikan GPS diaktifkan dan aplikasi memiliki izin lokasi

Backup dan Restore

Database Backup

mysqldump -u root -p absensi_gps > absensi_gps_backup.sql

Database Restore

mysql -u root -p absensi_gps < absensi_gps_backup.sql

Kesimpulan

Deployment aplikasi Absensi GPS memerlukan konfigurasi yang tepat untuk backend, frontend, dan aplikasi Android. Dengan mengikuti langkah-langkah di atas, sistem Absensi GPS akan berjalan dengan baik dan siap digunakan oleh admin, guru, dan siswa.

Last Updated:: 5/15/25, 9:30 PM
Contributors: Nur Wahyudin