Menu
CoddyTech

Kesamaan & Identitas

Termasuk bagian Dasar-Dasar dalam perjalanan PHP di Coddy. Pelajaran 24 dari 71.

PHP menyediakan dua cara untuk memeriksa apakah nilai-nilai sama: operator kesetaraan (==) dan operator identitas (===). Memahami perbedaannya sangat penting untuk menulis kode yang andal.

Operator kesetaraan (==) membandingkan nilai setelah mengonversinya ke tipe yang sama. Ini disebut "perbandingan longgar":

<?php
var_dump(5 == "5");    // bool(true): string diubah menjadi angka
var_dump(0 == false);  // bool(true): keduanya menjadi 0
var_dump(1 == true);   // bool(true): keduanya menjadi 1
?>

Operator identitas (===) membandingkan nilai dan tipe data. Tidak ada konversi, jadi keduanya harus sama persis:

<?php
var_dump(5 === "5");   // bool(false): int dibandingkan dengan string
var_dump(5 === 5);     // bool(true): tipe dan nilai sama
var_dump(0 === false); // bool(false): int dibandingkan dengan bool
?>

Untuk perbandingan "tidak sama dengan", gunakan != (longgar) atau !== (ketat):

<?php
var_dump(5 != "5");    // bool(false): nilainya sama
var_dump(5 !== "5");   // bool(true): tipenya berbeda
?>

Sebagai praktik terbaik, utamakan === dan !== untuk menghindari kejutan akibat konversi tipe yang tidak terduga.

challenge icon

Tantangan

Mudah

Baca dua nilai dari input: sebuah angka (sebagai string) dan sebuah integer.

Gunakan operator kesetaraan dan identitas untuk mengevaluasi perbandingan berikut dan cetak hasil masing-masing menggunakan var_dump(), setiap hasil pada baris baru:

  1. Periksa apakah nilai string sama dengan integer menggunakan perbandingan longgar (==)
  2. Periksa apakah nilai string sama dengan integer menggunakan perbandingan ketat (===)
  3. Periksa apakah nilai string tidak sama dengan integer menggunakan perbandingan longgar (!=)
  4. Periksa apakah nilai string tidak sama dengan integer menggunakan perbandingan ketat (!==)

Catatan: Pertahankan nilai pertama sebagai string (jangan lakukan cast). Lakukan cast pada nilai kedua menjadi integer.

Contoh:

Jika inputnya adalah 42 dan 42, outputnya seharusnya:

bool(true)
bool(false)
bool(false)
bool(true)

Penjelasan:

  • "42" == 42 bernilai true (nilainya sama setelah konversi tipe)
  • "42" === 42 bernilai false (string vs int - different types)
  • "42" != 42 bernilai false (nilainya sama)
  • "42" !== 42 bernilai true (tipenya berbeda)

Coba sendiri

<?php
// Baca input
$stringValue = trim(fgets(STDIN));
$intValue = intval(trim(fgets(STDIN)));

// TODO: Tulis kodemu di bawah ini
// Gunakan var_dump() untuk mencetak hasil setiap perbandingan pada baris baru:
// 1. Kesetaraan longgar (==)
// 2. Kesetaraan ketat (===)
// 3. Ketidaksamaan longgar (!=)
// 4. Ketidaksamaan ketat (!==)

?>
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler PHP online