ToySmart adalah sistem penjualan mainan anak berbasis website yang dilengkapi dengan fitur rekomendasi produk menggunakan metode Simple Additive Weighting (SAW). Sistem ini dikembangkan untuk membantu pelanggan menemukan mainan yang paling sesuai berdasarkan beberapa kriteria penilaian, sehingga proses pemilihan produk menjadi lebih mudah, cepat, dan objektif.
|
|
||
|---|---|---|
| app | ||
| bootstrap | ||
| config | ||
| database | ||
| public | ||
| resources | ||
| routes | ||
| storage | ||
| tests | ||
| .editorconfig | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| README.md | ||
| artisan | ||
| composer.json | ||
| composer.lock | ||
| package-lock.json | ||
| package.json | ||
| phpunit.xml | ||
| vite.config.js | ||
README.md
# 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
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:
app/Services/ToyRecommendationService.php