===================================== SOAL 1 - SOAL 5 ===================================== Soal 1: $a = 5; $b = 3; echo $a + $b; Jawab : 8 Soal 2: $a = 10; $b = "10"; echo ($a == $b); Jawab : true (loose, "10" di-cast jadi int) Soal 3: $a = 10; $b = "10"; echo ($a === $b); Jawab : false (tipe beda, echo bool false = kosong) echo ($a === $b) menghasilkan: [] Soal 4: $x = 7; $x++; echo $x; Jawab : 8 Soal 5: $x = 20; $x -= 5; echo $x; Jawab : 15 ===================================== DEBUGGING ===================================== Debug 1 - program: nama = "Andi"; // salah, tanpa dollar sign echo $nama; Kesalahan: 'nama' tanpa $ dibaca sebagai nama KONSTANTA, bukan variabel. PHP 8: PHP Parse error: syntax error, unexpected token "=". (di PHP 7 errornya: Error: Undefined constant "nama") Perbaikan : $nama = "Andi"; Hasil benar: Andi Debug 2 - program: $a = 10 // salah, tanpa titik koma $b = 5; echo $a + $b; Kesalahan: titik koma hilang setelah $a = 10, baris berikutnya ikut dianggap bagian dari pernyataan $a = 10 yang tidak lengkap. Perbaikan : $a = 10; Hasil benar: 15 Debug 3 - program: if ($umur >= 17 & $ktp) { echo "Boleh"; } Kesalahan: '&' adalah operator BITWISE AND, bukan operator logika. Hasilnya bertipe int (1/0), bukan bool: 18 >= 17 & true -> 1 18 >= 17 && true -> true Bool $ktp di-cast jadi int 1, lalu di-AND dengan 1. Kebetulan $ktp selalu 0/1, tapi kalau diuji dengan nilai lain (mis. $ktp = 2) hasilnya salah: 1 & 2 = 0. Perbaikan : if ($umur >= 17 && $ktp) { echo "Boleh"; } Hasil benar: Boleh