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)
Contoh Penamaan Variabel
<?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 (=).

Menugaskan Nilai ke Variabel
<?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");
?>
Tips: Variabel PHP tidak perlu dideklarasikan sebelum digunakan dan dapat berubah tipe data secara dinamis.

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 ("").

String
<?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;
?>
Perbedaan Kutip Tunggal dan Ganda:
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.

Integer
<?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.

Float
<?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.

Boolean
<?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.

Array
<?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];
?>
Tips: Array akan dibahas lebih detail dalam tutorial terpisah.

Object

Objek adalah instance dari class yang dapat berisi properti dan metode. Object digunakan dalam pemrograman berorientasi objek (OOP).

Object
<?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.

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.

Resource
<?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.

Type Juggling
<?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.

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:

Fungsi Pemeriksaan Tipe Data
<?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 $.

Konstanta
<?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.

Variabel Variabel
<?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
?>
Perhatian: Penggunaan variabel variabel dapat membuat kode sulit dibaca dan dipelihara. Gunakan dengan bijak dan hanya jika benar-benar diperlukan.

Variabel Superglobals

PHP memiliki beberapa variabel predefined yang bersifat superglobal, artinya dapat diakses dari mana saja dalam script.

Variabel Superglobals
<?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.

Keamanan: Selalu validasi dan bersihkan data dari variabel superglobal sebelum menggunakannya, terutama $_GET, $_POST, dan $_REQUEST, untuk mencegah serangan seperti XSS dan SQL Injection.

Praktik Terbaik

  1. Beri nama variabel yang deskriptif dan mudah dipahami
  2. Gunakan format penamaan yang konsisten (seperti camelCase atau snake_case)
  3. Inisialisasi variabel sebelum digunakan
  4. Gunakan tipe data yang sesuai dengan kebutuhan
  5. Selalu validasi data input dari pengguna
  6. Gunakan konstanta untuk nilai yang tidak berubah
  7. 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 PHP

Selanjutnya:

Operator
Path Belajar PHP
Step 1: Dasar-Dasar PHP

Memahami apa itu PHP dan cara instalasinya

๐Ÿ“„ Pengenalan๐Ÿ“„ Instalasi
Step 2: Sintaks & Variabel

Mempelajari cara menulis kode PHP yang benar

โœ… Sintaks Dasar๐Ÿ“ Variabelโœ… Operator
Step 3: Logika & Function

Memahami alur program dan pengorganisasian kode

๐Ÿ“„ Struktur Kontrol๐Ÿ“„ Function๐Ÿ“„ Array
Step 4: Web Development

Membuat aplikasi web interaktif

๐Ÿ“„ Form๐Ÿ“„ Session๐Ÿ“„ File
Step 5: Database & Keamanan

Mengelola data dan keamanan aplikasi

๐Ÿ“„ Database๐Ÿ“„ Pdo๐Ÿ“„ Security
Step 6: Advanced Topics

Topik lanjutan untuk pengembangan professional

๐Ÿ“„ Oop Basic๐Ÿ“„ Email๐Ÿ“„ Framework
Tips: Ikuti urutan step untuk hasil belajar optimal. Setiap step membangun pengetahuan dari step sebelumnya.
Tutorial Saat Ini
Level: Pemula

Cocok untuk yang baru mulai belajar PHP

Daftar Isi
Tips Belajar