Operator Logika Bagian 2
Termasuk bagian Dasar-Dasar dalam perjalanan PHP di Coddy. Pelajaran 26 dari 71.
Operator NOT (!) membalik nilai boolean menjadi kebalikannya. Jika sesuatu bernilai true, nilainya menjadi false, dan sebaliknya:
<?php
$isLoggedIn = false;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(true)
$isLoggedIn = true;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(false)
?>Kamu dapat menggabungkan beberapa operator logika dalam satu ekspresi. Saat melakukannya, gunakan tanda kurung agar maksudmu jelas:
<?php
$age = 25;
$hasTicket = true;
$isVIP = false;
// Boleh masuk jika: punya tiket DAN (sudah dewasa ATAU merupakan VIP)
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>Tanpa tanda kurung, && dievaluasi sebelum ||. Namun, penggunaan tanda kurung membuat kodemu lebih mudah dibaca dan mencegah kesalahan. Saat menggabungkan operator, selalu kelompokkan kondisi secara logis agar maknanya tepat seperti yang kamu maksud.
Tantangan
MudahBaca empat nilai dari input: sebuah integer temperature, sebuah string isRaining (berupa "true" atau "false"), sebuah string hasUmbrella (berupa "true" atau "false"), dan sebuah string hasRaincoat (berupa "true" atau "false").
Ubah nilai string menjadi boolean dengan membandingkannya dengan "true".
Evaluasi tiga kondisi berikut dan cetak hasil masing-masing menggunakan var_dump(), setiap hasil pada baris baru:
- Periksa apakah TIDAK sedang hujan (gunakan operator
!) - Periksa apakah orang tersebut sebaiknya tetap di dalam: sedang hujan DAN mereka tidak memiliki payung maupun jas hujan (gunakan
!pada kedua barang) - Periksa apakah orang tersebut bisa pergi ke luar dengan nyaman: suhu setidaknya 15 DAN (tidak sedang hujan ATAU mereka memiliki payung atau jas hujan)
Contoh:
Jika input-nya adalah 20, true, false, dan true, output-nya seharusnya:
bool(false)
bool(false)
bool(true)Penjelasan:
!isRaining→ !true → falseisRaining && !hasUmbrella && !hasRaincoat→ true && true && false → falsetemperature >= 15 && (!isRaining || hasUmbrella || hasRaincoat)→ true && (false || false || true) → true && true → true
Coba sendiri
<?php
// Baca nilai input
$temperature = intval(fgets(STDIN));
$isRainingStr = trim(fgets(STDIN));
$hasUmbrellaStr = trim(fgets(STDIN));
$hasRaincoatStr = trim(fgets(STDIN));
// TODO: Ubah nilai string menjadi nilai boolean dengan membandingkannya dengan "true"
// TODO: Evaluasi dan cetak tiga kondisi menggunakan var_dump():
// 1. Periksa apakah TIDAK hujan
// 2. Periksa apakah orang tersebut harus tetap di dalam (hujan DAN tidak punya payung DAN tidak punya jas hujan)
// 3. Periksa apakah orang tersebut bisa keluar dengan nyaman
?>Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Perbandingan & Logika
Operator PerbandinganKesamaan & IdentitasOperator Logika Bagian 1Operator Logika Bagian 2Rangkuman: Logika Sederhana2Variabel dan Tipe Data
AngkaString dan Tanda KutipBooleanKonvensi PenamaanRangkuman, Inisialisasi VariabelVariabel KosongPenggabungan stringMengambil input PenggunaKonversi ke Tipe Data Lain5Logika Percabangan
Pernyataan ifIf-elseOperator ternaryOperator koalesensi nullPernyataan switchRangkuman: Membuat Keputusan3Operator Dasar
Operator AritmetikaOperator ModuloOperator PangkatPenugasan GabunganInkrementasi/DekrementasiPrioritas OperatorUlasan: Perhitungan SederhanaOperator stringLatihan sendiri: Compiler PHP online