Materi
Toko Batik Laras di Pekalongan mencatat berat kiriman setiap hari selama seminggu. Tarifnya bertingkat: sampai 2 kg Rp9.000 per kg, sampai 5 kg Rp8.000 per kg, di atas itu Rp7.000 per kg. Program di bawah menghitung total ongkir, jumlah hari tanpa kiriman, dan jumlah hari dengan ongkir di atas Rp50.000.
Buat tabel kecil dengan tujuh baris, satu per hari: berat, tarif yang dipilih match, dan ongkirnya. Ingat bahwa match (true) memakai lengan PERTAMA yang kondisinya benar, dan bahwa hari dengan berat 0 tidak pernah sampai ke match karena continue. Dua soal terakhir mengubah satu baris; telusuri ulang dengan baris yang sudah diganti. Perhatikan letak setiap echo: semuanya berada SETELAH perulangan, sehingga tidak ada yang tercetak bila perulangan berhenti karena galat.
<?php
// Rekap ongkos kirim Toko Batik Laras, Pekalongan, satu minggu
$beratHarian = [1, 3, 0, 7, 2, 12, 5]; // kg, Senin sampai Minggu
$totalOngkir = 0;
$hariKosong = 0;
$hariBesar = 0;
foreach ($beratHarian as $berat) {
if ($berat == 0) {
$hariKosong++;
continue;
}
$tarif = match (true) {
$berat <= 2 => 9000,
$berat <= 5 => 8000,
default => 7000,
};
$ongkir = $berat * $tarif;
if ($ongkir > 50000) {
$hariBesar++;
}
$totalOngkir += $ongkir;
}
echo "Total ongkir: Rp" . number_format($totalOngkir, 0, ',', '.') . "\n";
echo "Hari tanpa kiriman: $hariKosong\n";
echo "Hari ongkir di atas Rp50.000: $hariBesar\n";