Dokumentasi Kode dan Penjelasan di Readme
This commit is contained in:
parent
6fb2ab0d57
commit
bd1a63d16c
121
README.md
121
README.md
|
|
@ -11,8 +11,8 @@ # Salin env
|
|||
|
||||
# Database (MySQL)
|
||||
# Set di .env: DB_CONNECTION=mysql, DB_DATABASE=..., DB_USERNAME=..., DB_PASSWORD=...
|
||||
# php artisan migrate
|
||||
php artisan db:seed
|
||||
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
|
||||
|
|
@ -24,10 +24,121 @@ # Saat development: jalankan di terminal terpisah: npm run dev
|
|||
```
|
||||
|
||||
## Menjalankan
|
||||
|
||||
```bash
|
||||
php artisan serve
|
||||
# Buka http://localhost:8000
|
||||
- Admin: `admin@toy.com` / `password`
|
||||
- User: `user@toy.com` / `password`
|
||||
|
||||
|
||||
```
|
||||
# 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
|
||||
|
|
@ -354,16 +354,16 @@ protected function buildMatrix(Collection $products, Collection $criterias): arr
|
|||
$matrix = [];
|
||||
|
||||
foreach ($products as $product) {
|
||||
$row = ['product_id' => $product->id];
|
||||
foreach ($product->criterias as $pc) {
|
||||
$row = ['product_id' => $product->id]; //Membangun baris matriks untuk setiap produk, dimulai dengan ID produk.
|
||||
foreach ($product->criterias as $pc) { //Menyusun nilai kriteria untuk setiap produk berdasarkan relasi many-to-many antara produk dan kriteria.
|
||||
$criteria = $criterias->firstWhere('id', $pc->id);
|
||||
if ($criteria) {
|
||||
$row[$criteria->name] = (float) $pc->pivot->value;
|
||||
$row[$criteria->name] = (float) $pc->pivot->value; //Menyimpan nilai kriteria untuk produk tersebut dalam baris matriks.
|
||||
}
|
||||
}
|
||||
foreach ($criterias as $c) {
|
||||
if (!isset($row[$c->name])) {
|
||||
$row[$c->name] = $c->name === 'Harga' ? (float) $product->price : 0;
|
||||
if (!isset($row[$c->name])) { //
|
||||
$row[$c->name] = $c->name === 'Harga' ? (float) $product->price : 0; //Menyusun nilai kriteria default untuk produk tersebut.
|
||||
}
|
||||
}
|
||||
$matrix[$product->id] = $row;
|
||||
|
|
|
|||
Loading…
Reference in New Issue