Variabel dan Tipe Data PHP
Variabel digunakan untuk menyimpan informasi yang dapat digunakan dan dimanipulasi dalam program PHP. Mari pelajari cara menggunakan variabel dan berbagai tipe data dalam PHP.
Variabel dalam PHP
Variabel dalam PHP dimulai dengan tanda dollar ($), diikuti dengan nama variabel. Nama variabel peka terhadap huruf besar/kecil (case-sensitive).
Aturan Penamaan Variabel
- Variabel dimulai dengan tanda
$
diikuti nama variabel - Nama variabel harus dimulai dengan huruf atau underscore (_)
- Nama variabel tidak boleh dimulai dengan angka
- Nama variabel hanya boleh berisi karakter alfanumerik dan underscore (A-z, 0-9, dan _)
- Nama variabel bersifat case-sensitive (
$nama
dan$Nama
adalah dua variabel berbeda)
<?php
// Contoh variabel yang valid
$nama = "Andi";
$_nama = "Budi";
$nama1 = "Citra";
$namaDepan = "Deni";
$nama_belakang = "Efendi";
// Contoh variabel yang tidak valid
// $1nama = "Invalid"; // Tidak boleh dimulai dengan angka
// $nama-belakang = "Invalid"; // Tidak boleh mengandung tanda hubung
// $nama! = "Invalid"; // Tidak boleh mengandung karakter khusus
?>
Menetapkan Nilai ke Variabel
Nilai ditetapkan ke variabel dengan menggunakan operator penugasan (=).
<?php
$nama = "Andi Saputra";
$usia = 25;
$tinggi = 175.5;
$aktif = true;
echo "Nama: " . $nama . "<br>";
echo "Usia: " . $usia . " tahun<br>";
echo "Tinggi: " . $tinggi . " cm<br>";
echo "Status: " . ($aktif ? "Aktif" : "Tidak Aktif");
?>
Tipe Data dalam PHP
PHP mendukung beberapa tipe data yang dapat dikelompokkan menjadi tipe data skalar (dasar), compound (gabungan), dan special.
1. Tipe Data Skalar
String
String adalah urutan karakter yang diapit oleh tanda kutip tunggal ('') atau tanda kutip ganda ("").
<?php
// String dengan tanda kutip tunggal
$str1 = 'Halo, dunia!';
// String dengan tanda kutip ganda
$str2 = "Halo, dunia!";
// String dengan tanda kutip ganda memungkinkan interpolasi variabel
$nama = "Andi";
$str3 = "Halo, $nama!"; // Output: Halo, Andi!
$str4 = 'Halo, $nama!'; // Output: Halo, $nama!
echo $str1 . "<br>";
echo $str2 . "<br>";
echo $str3 . "<br>";
echo $str4 . "<br>";
// Menggabungkan string dengan operator concatenation (.)
$depan = "John";
$belakang = "Doe";
$namaLengkap = $depan . " " . $belakang; // Output: John Doe
echo $namaLengkap;
?>
Kutip ganda memungkinkan variabel di dalam string diinterpolasi (diganti dengan nilai variabel), sedangkan kutip tunggal akan menampilkan string secara harfiah.
Integer
Integer adalah bilangan bulat tanpa desimal, bisa positif atau negatif.
<?php
// Contoh Integer
$a = 1234; // bilangan desimal
$b = -123; // bilangan negatif
$c = 0123; // bilangan oktal (setara dengan 83 desimal)
$d = 0x1A; // bilangan heksadesimal (setara dengan 26 desimal)
$e = 0b11111111; // bilangan biner (setara dengan 255 desimal)
echo $a . "<br>";
echo $b . "<br>";
echo $c . "<br>";
echo $d . "<br>";
echo $e;
?>
Float (Floating Point)
Float (juga disebut double atau real) adalah bilangan yang mengandung desimal atau dalam bentuk eksponensial.
<?php
// Contoh Float
$a = 1.234;
$b = 10.2e3; // 10.2 * 10^3 = 10200
$c = 4E-10; // 4 * 10^-10 = 0.0000000004
echo $a . "<br>";
echo $b . "<br>";
echo $c;
?>
Boolean
Boolean mewakili nilai kebenaran: TRUE atau FALSE.
<?php
// Contoh Boolean
$benar = true;
$salah = false;
if ($benar) {
echo "Kondisi ini benar!<br>";
}
if (!$salah) {
echo "Kondisi ini tidak salah, jadi benar!";
}
// Dalam konteks string, true akan dikonversi menjadi "1" dan false menjadi "" (string kosong)
echo "<br>Nilai \$benar sebagai string: " . $benar;
echo "<br>Nilai \$salah sebagai string: " . $salah;
?>
2. Tipe Data Compound
Array
Array adalah kumpulan nilai yang disimpan dalam satu variabel. PHP mendukung array terindeks dan array asosiatif.
<?php
// Array terindeks
$buah = array("Apel", "Jeruk", "Mangga");
// atau dengan sintaks pendek
$buah = ["Apel", "Jeruk", "Mangga"];
echo "Saya suka " . $buah[0] . ", " . $buah[1] . ", dan " . $buah[2] . ".<br>";
// Array asosiatif (key-value)
$siswa = array(
"nama" => "Andi",
"usia" => 17,
"kelas" => "XI IPA"
);
// atau dengan sintaks pendek
$siswa = [
"nama" => "Andi",
"usia" => 17,
"kelas" => "XI IPA"
];
echo "Nama: " . $siswa["nama"] . "<br>";
echo "Usia: " . $siswa["usia"] . "<br>";
echo "Kelas: " . $siswa["kelas"] . "<br>";
// Array multidimensi
$nilai = [
["Andi", "Matematika", 85],
["Budi", "Matematika", 78],
["Citra", "Matematika", 92]
];
echo "Nilai Matematika " . $nilai[0][0] . " adalah " . $nilai[0][2];
?>
Object
Objek adalah instance dari class yang dapat berisi properti dan metode. Object digunakan dalam pemrograman berorientasi objek (OOP).
<?php
// Mendefinisikan class
class Mobil {
// Properties
public $merek;
public $warna;
// Constructor
function __construct($merek, $warna) {
$this->merek = $merek;
$this->warna = $warna;
}
// Method
function infoMobil() {
return "Mobil " . $this->merek . " berwarna " . $this->warna;
}
}
// Membuat object dari class Mobil
$mobilSaya = new Mobil("Toyota", "Merah");
// Mengakses method dari object
echo $mobilSaya->infoMobil();
?>
OOP dalam PHP akan dibahas lebih detail dalam tutorial terpisah.
3. Tipe Data Special
NULL
NULL mewakili variabel tanpa nilai. Variabel bertipe NULL hanya memiliki satu nilai: NULL.
<?php
// Contoh NULL
$var = NULL;
$var2; // Variabel yang belum diberi nilai juga bersifat NULL
var_dump($var);
echo "<br>";
var_dump($var2);
// Mengecek apakah variabel bernilai NULL
if (is_null($var)) {
echo "<br>\$var bernilai NULL";
}
?>
Resource
Resource adalah tipe data khusus yang merujuk pada resource eksternal, seperti koneksi database, file, dll.
<?php
// Contoh resource: Koneksi file
$file = fopen("contoh.txt", "r");
// Menampilkan tipe data
var_dump($file);
// Menutup resource
fclose($file);
?>
Konversi Tipe Data
PHP secara otomatis mengonversi tipe data (type juggling), tetapi Anda juga dapat melakukan konversi tipe data secara eksplisit (type casting).
Type Juggling (Otomatis)
PHP secara otomatis mengonversi tipe data sesuai konteks penggunaan.
<?php
// String ke Number
$str = "10";
$result = $str + 5; // $result = 15 (integer)
echo $result . "<br>";
// Number ke String
$num = 10;
echo "Nilai: " . $num . "<br>"; // "Nilai: 10" (string)
// Boolean ke Number
$bool = true;
$result = $bool + 1; // $result = 2 (integer), karena true = 1
echo $result . "<br>";
// Array ke Boolean
$arr = array(1, 2, 3);
if ($arr) {
echo "Array tidak kosong dianggap TRUE";
}
?>
Type Casting (Eksplisit)
Anda dapat secara eksplisit mengonversi tipe data dengan menggunakan operator type casting.
<?php
// Konversi ke Integer
$a = (int) "10.5";
$b = (integer) "10.5";
echo $a . "<br>"; // 10
echo $b . "<br>"; // 10
// Konversi ke Float
$c = (float) "10.5";
$d = (double) "10.5";
$e = (real) "10.5";
echo $c . "<br>"; // 10.5
echo $d . "<br>"; // 10.5
echo $e . "<br>"; // 10.5
// Konversi ke String
$f = (string) 10.5;
echo $f . "<br>"; // "10.5"
// Konversi ke Boolean
$g = (bool) 10.5;
$h = (boolean) 0;
echo ($g ? "TRUE" : "FALSE") . "<br>"; // TRUE
echo ($h ? "TRUE" : "FALSE") . "<br>"; // FALSE
// Konversi ke Array
$i = (array) "Halo";
print_r($i); // Array ( [0] => Halo )
echo "<br>";
// Konversi ke Object
$j = (object) ["nama" => "Andi", "usia" => 25];
echo $j->nama . ", " . $j->usia; // Andi, 25
?>
Memeriksa Tipe Data dan Validasi
PHP menyediakan beberapa fungsi untuk memeriksa tipe data variabel:
<?php
$a = 10;
$b = "Halo";
$c = 10.5;
$d = true;
$e = array(1, 2, 3);
$f = NULL;
// Pemeriksaan tipe data
echo "is_int(\$a): " . (is_int($a) ? "true" : "false") . "<br>";
echo "is_string(\$b): " . (is_string($b) ? "true" : "false") . "<br>";
echo "is_float(\$c): " . (is_float($c) ? "true" : "false") . "<br>";
echo "is_bool(\$d): " . (is_bool($d) ? "true" : "false") . "<br>";
echo "is_array(\$e): " . (is_array($e) ? "true" : "false") . "<br>";
echo "is_null(\$f): " . (is_null($f) ? "true" : "false") . "<br>";
// Fungsi var_dump() untuk debugging
echo "<br>var_dump():<br>";
var_dump($a);
echo "<br>";
var_dump($b);
echo "<br>";
var_dump($c);
?>
Konstanta
Konstanta adalah identifier yang nilainya tidak dapat diubah selama eksekusi script. Tidak seperti variabel, konstanta tidak diawali dengan tanda $.
<?php
// Mendefinisikan konstanta
define("NAMA_SITUS", "PHP.co.id");
define("TAHUN_BERDIRI", 2023);
define("PI", 3.14159);
// Menggunakan konstanta
echo "Selamat datang di " . NAMA_SITUS . "<br>";
echo "Berdiri sejak " . TAHUN_BERDIRI . "<br>";
echo "Nilai PI: " . PI . "<br>";
// Konstanta bawaan PHP
echo "Versi PHP: " . PHP_VERSION . "<br>";
echo "Sistem Operasi: " . PHP_OS . "<br>";
echo "Baris saat ini: " . __LINE__ . "<br>";
echo "File saat ini: " . __FILE__ . "<br>";
// Mencoba mengubah nilai konstanta (akan menyebabkan error)
// NAMA_SITUS = "NewSite.com"; // Error!
?>
Variabel Variabel
PHP memungkinkan penggunaan variabel variabel, yaitu nama variabel yang dapat diubah secara dinamis.
<?php
$nama = "buah";
$$nama = "apel"; // Sama dengan $buah = "apel"
echo $nama . "<br>"; // Output: buah
echo $$nama . "<br>"; // Output: apel
echo $buah . "<br>"; // Output: apel
// Contoh lebih kompleks
$hewan = "kucing";
$kucing = "persia";
echo "Jenis {$hewan}: " . $$hewan; // Output: Jenis kucing: persia
?>
Variabel Superglobals
PHP memiliki beberapa variabel predefined yang bersifat superglobal, artinya dapat diakses dari mana saja dalam script.
<?php
// $GLOBALS - variabel untuk mengakses variabel global dari mana saja
$x = 10;
function test() {
echo $GLOBALS['x']; // Mengakses variabel global $x
}
test(); // Output: 10
echo "<br>";
// $_SERVER - informasi server dan lingkungan eksekusi
echo "Server Name: " . $_SERVER['SERVER_NAME'] . "<br>";
echo "PHP Self: " . $_SERVER['PHP_SELF'] . "<br>";
// $_GET - data dari URL query string
// Contoh: page.php?nama=andi&usia=25
// echo "Nama dari URL: " . $_GET['nama'] . "<br>";
// echo "Usia dari URL: " . $_GET['usia'] . "<br>";
// $_POST - data dari form dengan method="post"
// Contoh: setelah submit form dengan input name="email"
// echo "Email dari form: " . $_POST['email'] . "<br>";
// $_COOKIE - data cookie
// setcookie("user", "John", time() + 3600);
// echo "Cookie user: " . $_COOKIE['user'] . "<br>";
// $_SESSION - data session (perlu session_start())
// session_start();
// $_SESSION['username'] = "admin";
// echo "Session username: " . $_SESSION['username'] . "<br>";
// $_FILES - informasi file yang diunggah
// Diakses setelah form upload file disubmit
// $_REQUEST - kombinasi dari $_GET, $_POST, dan $_COOKIE
// echo "Nilai request: " . $_REQUEST['nama'] . "<br>";
// $_ENV - variabel lingkungan
// print_r($_ENV);
?>
Variabel superglobal sangat berguna untuk mengakses data dari berbagai sumber seperti form, URL, cookie, dan session.
Praktik Terbaik
- Beri nama variabel yang deskriptif dan mudah dipahami
- Gunakan format penamaan yang konsisten (seperti camelCase atau snake_case)
- Inisialisasi variabel sebelum digunakan
- Gunakan tipe data yang sesuai dengan kebutuhan
- Selalu validasi data input dari pengguna
- Gunakan konstanta untuk nilai yang tidak berubah
- Hindari penggunaan variabel global jika tidak diperlukan
Kesimpulan
Memahami variabel dan tipe data adalah dasar yang sangat penting dalam pemrograman PHP. Dengan menguasai konsep ini, Anda dapat menyimpan, mengelola, dan memanipulasi data dengan lebih efektif dalam aplikasi PHP Anda.
Sebelumnya:
Sintaks Dasar PHPSelanjutnya:
OperatorPath Belajar PHP
Memahami apa itu PHP dan cara instalasinya
Mempelajari cara menulis kode PHP yang benar
Memahami alur program dan pengorganisasian kode
Membuat aplikasi web interaktif
Mengelola data dan keamanan aplikasi
Topik lanjutan untuk pengembangan professional
Tutorial Saat Ini
Level: Pemula
Cocok untuk yang baru mulai belajar PHP