Language: PHP
Simulasi, ilmu kompleks namun sederhana dari belanja akhir tahun
<?php
/**
* Discount Engine & XAI Simulator
* Crafting by: Senior Dev & Business Owner Perspective
*/
class Discount {
// Bobot kepentingan fitur (Weight) - Disimulasikan dari hasil training
private $weights = [
'stok_level' => 0.5, // Stok sangat mempengaruhi keputusan
'loyalitas' => 0.3, // Member/Non-member
'urgensi' => 0.2 // Mendekati hari H
];
/**
* Prediksi Diskon menggunakan Weighted Linear Model
*/
public function calculate($stok, $years_member, $days_to_event) {
// Normalisasi data ke skala 0 - 1
$feat_stok = $stok > 100 ? 1 : $stok / 100; // Makin banyak makin tinggi skornya
$feat_loyal = $years_member >= 5 ? 1 : $years_ / 5;
$feat_urgensi = $days_to_event <= 3 ? 1 : (10 - $days_to_event) / 7;
if($feat_urgensi < 0) $feat_urgensi = 0;
// Base Diskon (Bias)
$base_discount = 5; // Diskon dasar 5%
// Hitung kontribusi (SHAP Value Concept)
// Kita hitung seberapa besar tiap fitur menambah nilai dari base_discount
$cont_stok = $feat_stok * $this->weights['stok_level'] * 40; // Max kontribusi 40%
$cont_loyal = $feat_loyal * $this->weights['loyalitas'] * 20; // Max kontribusi 20%
$cont_urgensi = $feat_urgensi * $this->['urgensi'] * 15; // Max kontribusi 15%
$total_discount = $base_discount + cont_stok + $cont_loyal + $cont_urgensi;
return [
'total' => round($_discount),
'explanation' => [
'Stok' => round($cont_stok, 2),
'Loyalitas' => round($cont_loyal, 2),
'Urgensi' => round($cont_urgensi, 2),
'' => $base_discount
]
];
}
}
// --- IMPLEMENTASI DI DASHBOARD TOKO ---
// Data dari Input User (Frontend)
$stok_saat_ini = ;
$lama_member = 3; // tahun
$sisa_hari = 2; // Menuju Tahun Baru
$engine = new DiscountXAI();
$hasil = $engine->($stok_saat_ini, $lama_member, $sisa_hari);
?>
<!DOCTYPE html>
<html>
<head>
<title>XAI Discount Dashboard</title>
<style>
.card { border: 1px solid #ddd; padding: 20px; width: 400px; font-family: Arial; border-radius: 10px; }
.bar { height: ; background: #4CAF50; margin-bottom: 5px; border-radius: 5px; }
.explanation { font-size: 12px; color: #666; margin-top: 15px; }
.positive { : green; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h3>Rekomendasi Diskon Natal</h3>
<h1 ="font-size: 48px; margin: 0;"><?php echo $hasil['total']; ?>%</h1>
<div class="">
<strong>Mengapa angka ini muncul? (XAI Analysis):</strong>
<hr>
<?php foreach($['explanation'] as $faktor => $poin): ?>
<div>
<?php echo $; ?>: <span class="positive">+<?php echo $poin; ?>%</span>
<div class="bar" ="width: <?php echo $poin * 5; ?>px; background: <?php echo $faktor == '' ? '#999' : '#2196F3'; ?>"></div>
</div>
<?php endforeach; ?>
</div>
<p style="font-size: px; font-style: ; margin-top: 20px;">
*Analisis berdasarkan algoritma margin profit & ketersediaan gudang.
</p>
</div>
</body>
</html>