Materi
Warung Bu Sari di Klaten mencetak struk dari program PHP di bawah. Semua soal di misi ini membaca program yang sama, jadi telusuri dulu nilai setiap variabel sebelum menjawab: harga dikali jumlah untuk tiap barang, lalu total, potongan 5%, dan jumlah bayar.
Tulis nilai antara di kertas. Perhatikan juga tipe tiap hasil: perkalian dua int tetap int, tetapi perkalian dengan 1.5 menghasilkan float walaupun nilainya bulat. Dua soal terakhir mengubah satu baris program; bayangkan baris itu sudah diganti, lalu telusuri ulang dari baris yang berubah saja. Perubahan kecil seperti jenis kutip atau satu huruf kapital tidak menghentikan program, tetapi mengubah keluarannya. Kesalahan jenis inilah yang paling sering lolos ke struk sungguhan.
<?php
// Struk Warung Bu Sari, Klaten
$namaToko = "Warung Bu Sari";
$pembeli = "Andi";
$hargaBeras = 68000; // per karung 5 kg
$jumlahBeras = 2;
$hargaMinyak = 18500; // per liter
$jumlahMinyak = 3;
$hargaTelur = 29000; // per kg
$jumlahTelur = 1.5;
$subBeras = $hargaBeras * $jumlahBeras;
$subMinyak = $hargaMinyak * $jumlahMinyak;
$subTelur = $hargaTelur * $jumlahTelur;
$total = $subBeras + $subMinyak + $subTelur;
// pelanggan tetap mendapat potongan 5%
$potongan = $total * 5 / 100;
$bayar = $total - $potongan;
echo "$namaToko\n";
echo 'Pembeli: ' . $pembeli . "\n";
echo "Total: Rp" . number_format($total, 0, ',', '.') . "\n";
echo "Potongan: Rp" . number_format($potongan, 0, ',', '.') . "\n";
echo "Bayar: Rp" . number_format($bayar, 0, ',', '.') . "\n";
var_dump($subTelur);