Variabel & Tipe Data

Variabel, tipe scalar (string, int, float, bool), null, konstanta, interpolasi string, heredoc, dan konversi tipe.

Part 2 dari 22 ± 40 menit Gratis

Variabel

Variabel adalah "kotak bernama" untuk menyimpan nilai. Di PHP, variabel diawali $ dan tidak perlu dideklarasikan tipenya (PHP menebak sendiri — disebut dynamic typing).

$nama = "Sari";
$umur = 25;
$nama = "Dewi";     // nilai boleh diganti kapan saja

Aturan penamaan: boleh huruf, angka, dan garis bawah; tidak boleh diawali angka. Gaya yang umum: camelCase atau snake_case — pilih satu dan konsisten (PSR-12 menyarankan camelCase untuk variabel).

Tipe data scalar

TipeContohKeterangan
string"halo", 'halo'Teks
int42, -7, 1_000_000Bilangan bulat; garis bawah memudahkan membaca angka besar
float3.14, 1.5e3Bilangan desimal
booltrue, falseBenar / salah
nullnull"Tidak ada nilai"

Tipe majemuk: array, object, callable, iterable — dibahas di bab berikutnya. Cek tipe dengan gettype($x), var_dump($x) (menampilkan tipe + nilai, sangat berguna untuk debugging), atau is_int(), is_string(), dst.

Kutip tunggal vs ganda

$nama = "Sari";
echo 'Halo $nama\n';      // Halo $nama\n  (apa adanya)
echo "Halo $nama\n";      // Halo Sari   + baris baru
echo "Halo {$nama}!";     // kurung kurawal untuk kepastian
echo "Total: {$data['harga']}";   // elemen array di dalam teks

Kutip ganda melakukan interpolasi (variabel dan escape seperti \n, \t dihitung). Kutip tunggal tidak. Untuk teks panjang, pakai heredoc (interpolasi) atau nowdoc (tanpa interpolasi):

$surat = <<<TEKS
Yth. {$nama},
Terima kasih sudah mendaftar.
TEKS;

Konstanta

const PPN = 0.11;                 // di luar class
define('NAMA_TOKO', 'Toko Maju'); // cara lama, tetap valid
echo PPN * 100;                   // tanpa $

Nilai konstanta tidak bisa diubah setelah dibuat. Konstanta ajaib berguna: __LINE__, __FILE__, __DIR__, PHP_INT_MAX, PHP_EOL.

Konversi tipe (type juggling)

PHP otomatis mengubah tipe saat diperlukan: "5" + 3 menghasilkan 8. Ini praktis tetapi sumber bug. Di PHP 8, string non-angka seperti "abc" + 1 melempar TypeError. Konversi eksplisit dengan cast:

$a = (int) "42abc";     // 42
$b = (float) "3.5";     // 3.5
$c = (string) 99;       // "99"
$d = (bool) "";         // false
$e = intdiv(17, 5);     // 3 (pembagian bulat)

Nilai yang dianggap false saat dikonversi ke bool: false, 0, 0.0, "", "0", [], null. Selain itu true.

Perbandingan: == vs ===

== membandingkan nilai setelah konversi tipe, === membandingkan nilai dan tipe. Biasakan memakai ===. PHP 8 memperbaiki perbandingan angka dengan string: 0 == "abc" kini false (di PHP 7 hasilnya true).

Operator null-safe untuk variabel kosong

Operator ?? (null coalescing) memberi nilai cadangan bila variabel belum ada atau null: $kota = $input['kota'] ?? 'Jakarta';. Operator ??= mengisi hanya jika masih kosong: $config['debug'] ??= false;

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X