```bash # Clone & masuk folder cd WebSAW-LOCAL # Install dependency PHP composer install # Salin env cp .env.example .env php artisan key:generate # Database (MySQL) # Set di .env: DB_CONNECTION=mysql, DB_DATABASE=..., DB_USERNAME=..., DB_PASSWORD=... php artisan migrate #hati2 saat migrate jika ada data asli takutnya data yang sudah ada terhapus dan terupdate php artisan db:seed # Storage link (untuk gambar produk) php artisan storage:link # Frontend (wajib agar CSS/JS dan warna tampil) npm install npm run build # Saat development: jalankan di terminal terpisah: npm run dev ``` ## Menjalankan ```bash php artisan serve # Buka http://localhost:8000 ``` # WebSAW-LOCAL Sistem Penjualan Mainan Anak Berbasis Website dengan Rekomendasi Produk Menggunakan Metode SAW (Simple Additive Weighting). ## Fitur Utama - Login & Register User - Manajemen Produk - Manajemen Kriteria SAW - Sistem Rekomendasi Mainan - Keranjang Belanja - Checkout - Riwayat Transaksi - Dashboard Admin - Perhitungan SAW Otomatis ## Teknologi - Laravel 12 - MySQL - Bootstrap / Tailwind CSS - JavaScript - Chart.js - Metode SAW (Simple Additive Weighting) #### AuthController Mengelola proses autentikasi pengguna. | Method | Fungsi | |----------------|--------------------------------| | login() | Menampilkan halaman login | | authenticate() | Proses login | | register() | Menampilkan halaman registrasi | | store() | Menyimpan akun baru | | logout() | Keluar dari sistem | --------------------------------------------------- ### Admin - Admin: `admin@toy.com` / `password` #### DashboardController Mengelola dashboard admin. | Method | Fungsi | |-------------|---------------------------------| | index() | Menampilkan statistik penjualan | | chartData() | Menampilkan data grafik | ------------------------------------------------- #### ProductController Mengelola data produk mainan. | Method | Fungsi | |-----------|---------------------------| | index() | Menampilkan daftar produk | | create() | Form tambah produk | | store(). | Menyimpan produk | | edit() | Form edit produk | | update() | Memperbarui produk | | destroy() | Menghapus produk | ----------------------------------------- #### CriteriaController Mengelola kriteria SAW. | Method. | Fungsi | |-----------|--------------------| | index() | Daftar kriteria | | store() | Menambah kriteria | | update() | Mengubah kriteria | | destroy() | Menghapus kriteria | ---------------------------------- #### TransactionController Mengelola transaksi penjualan. | Method. | Fungsi | |----------------|---------------------------| | index(). | Daftar transaksi | | show(). | Detail transaksi | | updateStatus() | Mengubah status transaksi | ---------------------------------------------- ## Controller Logic SAW | Method | Fungsi | |--------------------------------|-----------------------------------------------------| | getRecommendations() | Menghasilkan rekomendasi produk | | getRecommendationsWithMatrix() | Menampilkan matriks keputusan dan normalisasi | | getFilteredProducts() | Filter produk berdasarkan usia, kategori, dan budget| | buildWeightsFromPriorities() | Mengubah prioritas pengguna menjadi bobot | | buildMatrix() | Membentuk matriks keputusan | | normalizeMatrix() | Melakukan normalisasi matriks | | calculatePreferenceScores() | Menghitung nilai preferensi | | ageRangeOverlaps() | Mengecek kesesuaian usia | ### User - User: `user@toy.com` / `password` #### RecommendationController Mengelola sistem rekomendasi produk. | Method | Fungsi | |-------------|-------------------------------| | index() | Form rekomendasi | | calculate() | Proses perhitungan SAW | | result() | Menampilkan hasil rekomendasi | ----------------------------------------------- ## Implementasi Metode SAW Logika perhitungan SAW berada pada: ```bash app/Services/ToyRecommendationService.php