Source Code SPK Pemilihan Lokasi SPKLU PHP MySQL (Metode SAW)

Buat kamu yang lagi cari referensi Sistem Pendukung Keputusan (SPK) untuk bahan skripsi, tugas akhir, atau proyek kuliah, kali ini saya mau perkenalkan source code aplikasi web bernama OptiSPKLU — SPK Pemilihan Lokasi Strategis SPKLU (Stasiun Pengisian Kendaraan Listrik Umum) menggunakan metode Simple Additive Weighting (SAW). Dibangun dengan PHP native tanpa framework, jadi selain siap pakai, source code ini juga enak dipelajari karena logikanya tidak "tersembunyi" di balik magic framework.

Source code ini sudah tersedia dan siap dibeli di Shopee. Link pemesanan ada di bagian akhir postingan ini ya.


1. Apa itu OptiSPKLU?

OptiSPKLU adalah aplikasi web yang membantu proses pengambilan keputusan dalam menentukan lokasi strategis pembangunan SPKLU dari beberapa kandidat lokasi yang ada, berdasarkan beberapa kriteria penilaian sekaligus (misalnya kepadatan lalu lintas, jarak dari SPBU eksisting, luas lahan, potensi jumlah pengguna, dan lain-lain).

Setiap kriteria bisa diberi bobot kepentingan yang berbeda-beda, lalu sistem akan menghitung nilai preferensi tiap alternatif lokasi secara otomatis menggunakan metode SAW, dan menghasilkan ranking lokasi terbaik yang bisa dipertanggungjawabkan secara matematis — bukan sekadar tebak-tebakan atau opini subjektif.

Kriteria pada aplikasi ini bersifat dinamis: admin bisa menambah/mengubah kriteria kapan saja, memilih jenisnya benefit atau cost, dan menentukan apakah penilaiannya memakai skala subkriteria (dropdown) atau input angka langsung.

2. Metode Simple Additive Weighting (SAW)

SAW adalah salah satu metode SPK paling populer karena konsepnya sederhana namun hasilnya cukup akurat: mencari penjumlahan terbobot dari rating kinerja pada setiap alternatif di semua kriteria. Metode ini banyak dipakai di jurnal-jurnal SPK karena mudah dijelaskan dan mudah divalidasi manual.

Tahapan perhitungan yang diimplementasikan di aplikasi ini:

1. Normalisasi bobot kriteria
  w_j = W_j / Σ W_j

2. Normalisasi matriks keputusan
  Benefit: r_ij = x_ij / max(x_ij)
  Cost    : r_ij = min(x_ij) / x_ij

3. Perkalian bobot dengan matriks ternormalisasi
  v_ij = w_j × r_ij

4. Nilai preferensi & ranking
  V_i = Σ v_ij, diurutkan menurun

Yang membedakan aplikasi ini dari yang lain, seluruh tahapan di atas dihitung dan ditampilkan step-by-step lewat fungsi perhitungan includes/SawCalculator.php — mulai dari matriks keputusan mentah, normalisasi bobot, matriks ternormalisasi (R), matriks terbobot (V), sampai ranking akhir. Jadi hasilnya transparan dan gampang dijelaskan waktu sidang atau presentasi tugas.

Aplikasi juga mendukung multi periode penilaian — setiap kali dibuat periode baru, riwayat hasil perhitungan periode sebelumnya tetap tersimpan dan bisa ditinjau ulang kapan saja.

3. Fitur Lengkap

3.1 Fitur Role Admin

  • Kelola periode penilaian (buat & aktifkan periode)
  • Kelola kriteria dinamis — benefit/cost, dengan atau tanpa subkriteria
  • Kelola alternatif lokasi, lengkap dengan penentuan titik koordinat langsung dari peta interaktif (klik/geser marker)
  • Input matriks nilai/keputusan untuk tiap alternatif
  • Jalankan proses perhitungan SAW dengan pratinjau step-by-step
  • Peta sebaran seluruh alternatif lokasi
  • Kelola pengguna — tambah, ubah data/role, hapus
  • Export laporan ke Excel dan PDF

3.2 Fitur Role User

  • Dashboard ringkas hasil penilaian
  • Hasil ranking lokasi terbaik (read-only)
  • Peta lokasi hasil ranking
  • Unduh laporan Excel/PDF

4. Screenshot Aplikasi

Biar kebayang tampilan aslinya, ini beberapa cuplikan layar OptiSPKLU:

Landing page OptiSPKLU
Landing page
Kelola alternatif lokasi OptiSPKLU
Kelola Alternatif Lokasi
Kelola kategori OptiSPKLU
Kelola Kriteria
Laporan export PDF dan Excel OptiSPKLU
Laporan (Export PDF & Excel)
Input nilai matriks keputusan OptiSPKLU
Input Nilai (Matriks Keputusan)
Perhitungan SAW OptiSPKLU
Perhitungan SAW
Dashboard user OptiSPKLU
Dashboard User
Peta lokasi user OptiSPKLU
Peta Lokasi (User)

5. Teknologi yang Digunakan

  • PHP Native 8.2 / 8.3 (tanpa framework)
  • MySQL 8.x / MariaDB 10.4+
  • Bootstrap 5 + Bootstrap Icons (responsive)
  • Leaflet + OpenStreetMap (integrasi peta lokasi)
  • PhpSpreadsheet (export Excel) & Dompdf (export PDF)
  • XAMPP / Laragon Ready
Composer tidak diperlukan untuk menjalankan aplikasi ini karena folder vendor/ (PhpSpreadsheet & Dompdf) sudah disertakan langsung di dalam paket. Composer hanya dibutuhkan kalau suatu saat kamu ingin menambah/mengubah dependency PHP secara manual. Catatan: aplikasi butuh koneksi internet aktif saat dijalankan, karena tile peta OpenStreetMap serta beberapa library CSS/JS dimuat dari CDN.

6. Struktur Folder Project

optispklu/
├── admin/              # Halaman khusus role admin
├── user/               # Halaman khusus role user
├── assets/css/       # CSS custom
├── config/          # Konfigurasi DB & aplikasi
├── database/        # db_optispklu.sql siap import
├── includes/        # header/footer/auth/SawCalculator
├── vendor/          # Dependency PHP (sudah disertakan)
├── composer.json
├── index.php        # Landing page
├── login.php / register.php / logout.php
└── dashboard.php   # Router sesuai role

7. Cocok Untuk Siapa Source Code Ini?

  • Mahasiswa yang butuh studi kasus SPK / Sistem Pendukung Keputusan untuk skripsi atau tugas akhir
  • Mahasiswa yang mengerjakan tugas mata kuliah kecerdasan buatan / SPK / riset operasi
  • Yang mau belajar implementasi PHP native tanpa framework dari project yang sudah jadi
  • PLN, pemda, atau pihak swasta yang butuh alat bantu awal untuk memetakan opsi lokasi SPKLU

8. Cara Instalasi Singkat

Instalasinya mudah, tidak perlu Composer maupun command line yang rumit:

  1. Pastikan XAMPP atau Laragon sudah terpasang, modul Apache & MySQL dalam kondisi Running
  2. Salin seluruh folder project ke htdocs (XAMPP) atau www (Laragon)
  3. Buka phpMyAdmin, buat database db_optispklu, lalu import file database/db_optispklu.sql
  4. Sesuaikan config/database.php bila kredensial MySQL berbeda dari default
  5. Akses aplikasi lewat browser: http://localhost/optispklu/

Database yang disertakan sudah berisi data contoh lengkap (1 periode aktif, 6 kriteria, subkriteria, 5 alternatif lokasi dengan koordinat, dan nilai matriks keputusan), jadi aplikasi bisa langsung dicoba tanpa perlu input data dari nol. Panduan lebih detail — termasuk instalasi di Laragon dan cara membuat akun admin baru — sudah disertakan lengkap di file README.md dalam paket source code.


9. Keamanan yang Diterapkan

  • Password di-hash dengan password_hash() (bcrypt)
  • Semua form POST dilindungi CSRF token
  • Query database 100% pakai prepared statement (PDO) — aman dari SQL Injection
  • Output di-escape dengan htmlspecialchars() — mencegah XSS dasar
  • Folder config/, database/, dan vendor/ diblokir akses langsung via .htaccess
  • Registrasi publik tidak dapat membuat akun admin (selalu default role user)

10. Cara Pemesanan

Paket yang kamu dapatkan setelah pembelian:

  • Full source code
  • File database .sql lengkap — skema + data contoh siap pakai
  • Folder vendor/ (PhpSpreadsheet & Dompdf) sudah disertakan, tidak perlu Composer
  • README instalasi step-by-step (XAMPP & Laragon)
  • Panduan troubleshooting umum

Source code OptiSPKLU sudah tersedia di Shopee. Silakan cek link produk di bawah ini untuk detail harga dan cara pembeliannya:

Kalau ada pertanyaan seputar instalasi atau custom fitur, boleh banget tinggalkan komentar di bawah postingan ini atau chat langsung lewat Shopee.

Posting Komentar