Appearance
Meeting 3
Operator
Operator adalah simbol yang digunakan untuk membuat instruksi atau memanipulasi data terhadap suatu nilai asal sehingga akan memberikan nilai hasil atas prose operasi, operator berfungsi untuk berinteraksi dengan variabel, seperti menambahkan 2 variabel integer, atau mengalikan satu variabel dengan variabel lainnya. Semua itu membutuhkan penggunaan operator.
Arithmetic Operator
Operator aritmatika adalah operator untuk menghitung operasi matematika dasar
- Penjumlahan (
+), - pengurangan (
-), - perkalian (
*), - pembagian (
/)
php
<?php
$price = 2000;
$fee = 500;
$discount = 1000;
# contoh kasus pembelian ditambah dengan fee
$total = $price + $fee; // 2000 + 500
echo "Total price is Rp {$total}"; // Total price is Rp 1500<?php
$price = 2000;
$fee = 500;
$discount = 1000;
# contoh kasus pembelian ditambah dengan fee
$total = $price + $fee; // 2000 + 500
echo "Total price is Rp {$total}"; // Total price is Rp 1500php
<?php
$price = 2000;
$fee = 500;
$discount = 1000;
# contoh kasus pembelian di kurangi discount
$total = $price - $discount; // 2000 - 1000
echo "Total price is Rp {$total}"; // Total price is Rp 1000<?php
$price = 2000;
$fee = 500;
$discount = 1000;
# contoh kasus pembelian di kurangi discount
$total = $price - $discount; // 2000 - 1000
echo "Total price is Rp {$total}"; // Total price is Rp 1000php
<?php
$price = 2000;
$fee = 500;
$discount = 1000;
# contoh kasus pembelian 2 produk
$total = $price * 2; // 2000 * 2
echo "Total price is Rp {$total}"; // Total price is Rp 4000<?php
$price = 2000;
$fee = 500;
$discount = 1000;
# contoh kasus pembelian 2 produk
$total = $price * 2; // 2000 * 2
echo "Total price is Rp {$total}"; // Total price is Rp 4000php
<?php
$price = 2000;
$fee = 500;
$discount = 1000;
# complex implementation
$total = (($price * 5) + $fee) - $discount; // 7500
# contoh kasus split bill pembayaran 2 orang
$splitBill = $total / 2; // 7500 * 2
echo "Total price is Rp {$total}"; // Total price is Rp 3750<?php
$price = 2000;
$fee = 500;
$discount = 1000;
# complex implementation
$total = (($price * 5) + $fee) - $discount; // 7500
# contoh kasus split bill pembayaran 2 orang
$splitBill = $total / 2; // 7500 * 2
echo "Total price is Rp {$total}"; // Total price is Rp 3750Arithmetic Tambahan
- modulus dengan simbol
% - eksponensial dengan simbol
** - dan yang terakhir adalah negasi dengan simbol
-sebelum nama variabel-nya.
Assignment Operator
Assignment operator merupakan operator kombinasi antara assignment dan operator aritmatika, yaitu terdiri dari operasi penjumlahan, pengurangan, perkalian, pembagian hingga modulus
php
<?php
$price = 2000;
$discount = 1000;
$fee = 500;
# variable total sudah di hitung disini
$total = $price * 3; // pembelian 3 product
# contoh kasus pembelian ditambah dengan fee
$total += $fee; // $total = $total + $fee
echo "Total price is Rp {$total}"; // Total price is Rp 6500<?php
$price = 2000;
$discount = 1000;
$fee = 500;
# variable total sudah di hitung disini
$total = $price * 3; // pembelian 3 product
# contoh kasus pembelian ditambah dengan fee
$total += $fee; // $total = $total + $fee
echo "Total price is Rp {$total}"; // Total price is Rp 6500php
<?php
$price = 2000;
$discount = 1000;
$fee = 500;
# variable total sudah di hitung disini
$total = $price * 3; // pembelian 3 product
# contoh kasus pembelian di kurangi discount
$total -= $discount; // $total = $total - $discount
echo "Total price is Rp {$total}"; // Total price is Rp 5000<?php
$price = 2000;
$discount = 1000;
$fee = 500;
# variable total sudah di hitung disini
$total = $price * 3; // pembelian 3 product
# contoh kasus pembelian di kurangi discount
$total -= $discount; // $total = $total - $discount
echo "Total price is Rp {$total}"; // Total price is Rp 5000php
<?php
$price = 2000;
$discount = 1000;
$fee = 500;
# contoh kasus pembelian 3 produk
$price *= 3; // $price = $price * 3
$total = ($price + $fee) - $discount; // (6000 + 500) - 1000
echo "Total price is Rp {$total}"; // Total price is Rp 5500<?php
$price = 2000;
$discount = 1000;
$fee = 500;
# contoh kasus pembelian 3 produk
$price *= 3; // $price = $price * 3
$total = ($price + $fee) - $discount; // (6000 + 500) - 1000
echo "Total price is Rp {$total}"; // Total price is Rp 5500php
$price = 2000;
$fee = 500;
$discount = 1000;
# complex implementation
$total = (($price * 5) + $fee) - $discount; // 7500
# contoh kasus split bill pembayaran 2 orang
$total /= 2; // 7500 * 2
echo "Total price is Rp {$total}"; // Total price is Rp 3750$price = 2000;
$fee = 500;
$discount = 1000;
# complex implementation
$total = (($price * 5) + $fee) - $discount; // 7500
# contoh kasus split bill pembayaran 2 orang
$total /= 2; // 7500 * 2
echo "Total price is Rp {$total}"; // Total price is Rp 3750Comparison Operator
Operator perbandingan digunakan untuk membandingkan antara dua nilai. Hasil dari operator perbandingan bertipe data boolean, true atau false.
Comparison Operator Symbol
Berikut adalah operator perbandingan yang bisa kita gunakan dalam PHP:
| Simbol | Keterangan |
|---|---|
> | Lebih dari |
>= | Lebih dari sama dengan |
< | Kurang dari |
<= | Kurang dari atau sama dengan |
php
<?php
$stock = 1;
$isStockAvailable = $stock > 1; // false
$isStockAvailable2 = $stock >= 1; // true
var_dump($isStockAvailable); // bool(false)
var_dump($isStockAvailable2); // bool(true)
$total = 2000;
$discount = 2000;
$isCanGetDiscount = $discount < $total; // false
$isCanGetDiscount2 = $discount <= $total; // true
var_dump($isCanGetDiscount); // bool(false)
var_dump($isCanGetDiscount2); // bool(true)<?php
$stock = 1;
$isStockAvailable = $stock > 1; // false
$isStockAvailable2 = $stock >= 1; // true
var_dump($isStockAvailable); // bool(false)
var_dump($isStockAvailable2); // bool(true)
$total = 2000;
$discount = 2000;
$isCanGetDiscount = $discount < $total; // false
$isCanGetDiscount2 = $discount <= $total; // true
var_dump($isCanGetDiscount); // bool(false)
var_dump($isCanGetDiscount2); // bool(true)Penjelasan Code
- variable
$isStockAvailablebernilaifalsedi karenakan$stock > 1, variable$stockharus lebih dari1, sementar nilai dari variable$stockadalah1, sementara untuk variable$isStockAvailable2bernilaitruekarena kita memakai perbandingan>=lebih dari atau sama dengan1. - alasan mengapa nilai dari variable
$isCanGetDiscountbernilaifalsekarna nilai dari variable$totaldan$discountnernilai sama dan kita menggunakan perbandingan<, sementara di variable$isCanGetDiscount2kita menggunakan perbandingan<=sehingga bernilaitrue
Strictly Equal Comparison
Operator pencocokan tipe data secara eksplisit. Hasil dari operator perbandingan ini juga bertipe data boolean, true atau false. membandingan data dari nilainya hingga tipe data.
Operator Symbol
Berikut adalah operator perbandingan indentik:
| Simbol | Keterangan |
|---|---|
== | Sama secara nilai |
=== | Sama secara identik |
!= | Tidak sama secara nilai |
!== | Tidak sama secara identik |
<> | Sama dengan operator != |
php
<?php
# perbandingan sama secara nilai
var_dump(10 == '10'); // bool(true)
# perbandingan sama secara identik
var_dump(10 === '10'); // bool(false)
# perbandingan tidak sama secara nilai
var_dump(10 != '10'); // bool(false)
# perbandingan tidak sama secara identik
var_dump(10 !== '10'); // bool(true)<?php
# perbandingan sama secara nilai
var_dump(10 == '10'); // bool(true)
# perbandingan sama secara identik
var_dump(10 === '10'); // bool(false)
# perbandingan tidak sama secara nilai
var_dump(10 != '10'); // bool(false)
# perbandingan tidak sama secara identik
var_dump(10 !== '10'); // bool(true)Penjelasan Code
10 == '10'hanya membandingan sama dengan secara nilai, dengan hasiltruedikarenakan nilai 2 variable tersebut bernilai sama.10 === '10'hasil dari perbandingan identik ini adalahfalse, walaupun nilainya sama tetapi tipe datanya berbeda kita membandinganstringdenganinteger10 != '10'hasil dari perbandingan inifalse, dikarenakan nilai 2 variable tersebut bernilai sama, kita hanya membandingan nilainya saja.10 !== '10'hasil dari perbandingan initrue, karna tipe data variable satu tidak sama dengan tipe data variable dua
Logical Operator
Operator logika membutuhkan dua operan dan satu operator, Operator yang paling sering digunakan adalah operator and (&& / and), operator or (|| / or) dan operator negasi atau not (!).
Logical Operator Symbol
Berikut adalah operator perbandingan indentik:
| Operator | Simbol | Keterangan |
|---|---|---|
| and | && atau and | akan bernilai true jika kedua operan bernilai true |
| or | || | akan bernilai true jika salah satu operan bernilai true |
| negasi | ! | akan membalik yang true menjadi false dan yang false menjadi true. |
php
<?php
$total = 5000;
$discount = 2000;
$stock = 1;
# contoh kasus jika $stock lebih besar sama dengan 1 dan $total > $discount;
$getDiscount = $stock >= 1 && $total > $discount;
var_dump($getDiscount); // bool(true)
# $getDiscount bernilai true dikarenakan 2 operan bernilai true
# $stock >= 1 jumat stock lebih besar sama dengan 1 = true
# $total > discount total lebih besar dari diskon. = true<?php
$total = 5000;
$discount = 2000;
$stock = 1;
# contoh kasus jika $stock lebih besar sama dengan 1 dan $total > $discount;
$getDiscount = $stock >= 1 && $total > $discount;
var_dump($getDiscount); // bool(true)
# $getDiscount bernilai true dikarenakan 2 operan bernilai true
# $stock >= 1 jumat stock lebih besar sama dengan 1 = true
# $total > discount total lebih besar dari diskon. = truephp
<?php
$total = 5000;
$discount = 2000;
$stock = 0; // tidak ada stock
# contoh kasus jika $stock lebih besar sama dengan 1 dan $total > $discount;
$getDiscount = $stock >= 1 || $total > $discount;
var_dump($getDiscount); // bool(true)
# $getDiscount bernilai true dikarenakan salah satu operan bernilai true
# $stock >= 1 jumat stock lebih besar sama dengan 1 = false
# $total > discount total lebih besar dari diskon. = true<?php
$total = 5000;
$discount = 2000;
$stock = 0; // tidak ada stock
# contoh kasus jika $stock lebih besar sama dengan 1 dan $total > $discount;
$getDiscount = $stock >= 1 || $total > $discount;
var_dump($getDiscount); // bool(true)
# $getDiscount bernilai true dikarenakan salah satu operan bernilai true
# $stock >= 1 jumat stock lebih besar sama dengan 1 = false
# $total > discount total lebih besar dari diskon. = truephp
<?php
$stock = 0; // tidak ada stock
$isStockReady = $stock >= 1;
var_dump($isStockReady); // bool(true)
# menerapkan negasi
var_dump(!$isStockReady); // bool(false)<?php
$stock = 0; // tidak ada stock
$isStockReady = $stock >= 1;
var_dump($isStockReady); // bool(true)
# menerapkan negasi
var_dump(!$isStockReady); // bool(false)Increment and Decrement Operator
Operator increment (++) atau decrement (--) adalah jalan pintas dari operator += atau -= yang telah berlalu penjelasannya pada bagian operator assignment. Dan kedua operator tersebut hanya berfungsi pada variabel saja.
php
<?php
$stock = 10;
$stock++;
echo $stock; // 11
# sama saja dengan $stock += 1 atau $stock = $stock + 1<?php
$stock = 10;
$stock++;
echo $stock; // 11
# sama saja dengan $stock += 1 atau $stock = $stock + 1php
<?php
$stock = 10;
$stock--;
echo $stock; // 9
# sama saja dengan $stock -= 1 atau $stock = $stock - 1<?php
$stock = 10;
$stock--;
echo $stock; // 9
# sama saja dengan $stock -= 1 atau $stock = $stock - 1Percabangan
Percabangan adalah pernyataan yang menentukan apakah suatu kondisi terpenuhi, berdasark kondisi yang di tentukan. Untuk struktur kontrol percabangan pada PHP, terdapat beberapa macam. Ada if else, switch case, dan ternary. kita akan membahas ketiga jenis percabangan tersebut.
Percabangan IF
Percabangan if adalah percabangan yang paling dasar. Tugasnya adalah memeriksa nilai boolean atau sebuah ekspresi logika. Jika suatu variabel atau suatu ekspresi logika bernilai true, maka proses yang ada di dalam blok kode if akan dijalankan. Jika tidak, maka perintah/kode yang ada di dalam blok if tidak akan dijalankan.
php
<?php
$stock = 20;
if ($stock >= 10) {
# blok ini akan di eksekusi jika $stock lebih besar sama dengan 10
echo 'Stock Ready';
}<?php
$stock = 20;
if ($stock >= 10) {
# blok ini akan di eksekusi jika $stock lebih besar sama dengan 10
echo 'Stock Ready';
}php
<?php
$stock = 20;
if ($stock >= 10) {
echo 'Stock Ready';
} else {
# jika $stock kurang dari 10, maka akan menampilkan Stock Not Ready.
echo 'Stock Not Ready';
}<?php
$stock = 20;
if ($stock >= 10) {
echo 'Stock Ready';
} else {
# jika $stock kurang dari 10, maka akan menampilkan Stock Not Ready.
echo 'Stock Not Ready';
}php
<?php
$stock = 20;
if ($stock >= 10) {
echo 'Stock Ready';
} else if ($stock <= 10 && $stock >= 5) {
# blok ini akan di eksekusi jika $stock lebih kecil sama dengan 10
# dan $stock lebih besar sama dengan 5
echo 'Restock Warning';
} else {
# jika $stock kurang dari 10, maka akan menampilkan Stock Not Ready.
echo 'Stock Not Ready';
}<?php
$stock = 20;
if ($stock >= 10) {
echo 'Stock Ready';
} else if ($stock <= 10 && $stock >= 5) {
# blok ini akan di eksekusi jika $stock lebih kecil sama dengan 10
# dan $stock lebih besar sama dengan 5
echo 'Restock Warning';
} else {
# jika $stock kurang dari 10, maka akan menampilkan Stock Not Ready.
echo 'Stock Not Ready';
}Nilai yang anggap false
Ada beberapa hal di dalam bahasa pemrograman PHP yang dianggap true padahal ia bukan tipe data boolean, dan juga ada beberapa hal yang dianggap false padahal ia bukan tipe data boolean
| Nilai | Keterangan |
|---|---|
0 | Ada pun variabel integer mau pun float dengan nilai 0, dianggap false jika kita masukkan dalam kondisi if |
"" | String kosong juga dianggap akan dianggap false |
null | nilai null juga dianggap false dalam PHP |
Percabangan Switch Case
Percabangan yang kedua adalah switch .. case. perbandingan ini hanya menerima satu nilai saja, dan biasa nilai tersebut berupa string. Jika tanpa break, output yang di hasilkan menjadi.
php
<?php
$voucher = 'HAPPYNEWYEAR2024';
switch ($voucher) {
case 'FLASHSALE':
echo 'Promo flash sale diterapkan';
break;
case 'HAPPYNEWYEAR2024':
echo 'Promo tahun baru diterapkan';
break;
case 'RAMADHAN23':
echo 'Promo hari raya ramadhan diterapkan';
break;
default:
echo 'Promo tidak di temukan';
break;
}<?php
$voucher = 'HAPPYNEWYEAR2024';
switch ($voucher) {
case 'FLASHSALE':
echo 'Promo flash sale diterapkan';
break;
case 'HAPPYNEWYEAR2024':
echo 'Promo tahun baru diterapkan';
break;
case 'RAMADHAN23':
echo 'Promo hari raya ramadhan diterapkan';
break;
default:
echo 'Promo tidak di temukan';
break;
}Penjelasan Code
code di atas akan mengeluarkan output Promo tahun baru diterapkan, string pada variable $voucher akan di samakan dengan setiap string case yang sudah di buat, pada kasus ini nilai dari variable $voucher sama dengan case blok ke dua case 'HAPPYNEWYEAR2024':
Jika tanpa
breakoutput yang dihasilkan akan menjadi:Promo tahun baru diterapkanPromo hari raya ramadhan diterapkanPromo tidak di temukan, karena cara kerjaswitch .. caseakan mengeksekusi setiap blok dari blokcaseyang di temukan.
Percabangan Ternary
Ternary adalah cara singkat mendefinisikan logika percabangan. Percabangan ini sama dengan percabangan if..else, namun lebih singkat dan mudah untuk dipahami
php
<?php
$stock = 20;
if ($stock >= 10) {
echo 'Stock Ready';
} else {
# jika $stock kurang dari 10, maka akan menampilkan Stock Not Ready.
echo 'Stock Not Ready';
}
if ($stock >= 10) {
echo 'Stock Ready';
} else if ($stock <= 10 && $stock >= 5) {
# blok ini akan di eksekusi jika $stock lebih kecil sama dengan 10
# dan $stock lebih besar sama dengan 5
echo 'Restock Warning';
} else {
# jika $stock kurang dari 10, maka akan menampilkan Stock Not Ready.
echo 'Stock Not Ready';
}<?php
$stock = 20;
if ($stock >= 10) {
echo 'Stock Ready';
} else {
# jika $stock kurang dari 10, maka akan menampilkan Stock Not Ready.
echo 'Stock Not Ready';
}
if ($stock >= 10) {
echo 'Stock Ready';
} else if ($stock <= 10 && $stock >= 5) {
# blok ini akan di eksekusi jika $stock lebih kecil sama dengan 10
# dan $stock lebih besar sama dengan 5
echo 'Restock Warning';
} else {
# jika $stock kurang dari 10, maka akan menampilkan Stock Not Ready.
echo 'Stock Not Ready';
}php
<?php
$stock = 20;
echo $stock >= 10 ? 'Stock Ready' : 'Stock Not Ready';
# complex example
echo ($stock >= 10) ?
'Stock Ready' :
($stock <= 10 && $stock >= 5) ?
'Restock Warning' : 'Stock Not Ready';<?php
$stock = 20;
echo $stock >= 10 ? 'Stock Ready' : 'Stock Not Ready';
# complex example
echo ($stock >= 10) ?
'Stock Ready' :
($stock <= 10 && $stock >= 5) ?
'Restock Warning' : 'Stock Not Ready';Penjelasan Ternary Code
- (operan) ? kondisi
true: kondisifalse - percabangan ini sangant sederhana hanya membutuh kan tanda tanya (
?)sebagai acuanif
Percabangan
ternaryjuga bisa di gunakan pada nilai variable, contoh:
$warningStock = $stock >= 10 ? 'Stock Ready' : 'Stock Not Ready';
Perulangan
Perulangan adalah jenis control flow lainnya untuk mengatur arah jalannya program yang bertujuan membuat program menjadi lebih efektif dan efisien, contohnya berupa eksekusi ratusan baris kode yang sama berkali-kali. Jenis-Jenis metode perulangan pada PHP:
Perulangan For
Perulangan for adalah perulangan yang paling simpel. Kita bisa menggunakan metode ini dengan menentukan jumlah perulangan yang kita inginkan.
php
<?php
for ($i = 0; $i < 10; $i++) {
echo "Product {$i}";
}<?php
for ($i = 0; $i < 10; $i++) {
echo "Product {$i}";
}Penjelasan Code
- ekspresi pertama (
$i = 0) digunakan untuk menginisialisasivariabel - ekspresi kedua (
$i < 10) digunakan untukbooleanstatement, yang mana perulangan akan terus dilakukan selama statemen ini bernilaitrue, perulangan akan terus di lakukan sampai nilai variable$ilebih besar dari10 - ekspresi ketiga (
$i++) adalah suatu aksi yang akan selalu dijalankan setiap kali satu perulangan telah selesai dilakukan. variable $i akan terus di increment selama perulangan berjalan
Perulangan While
Perulangan ini biasa digunakan untuk kasus-kasus di mana kita tidak mengetahui secara pasti ada berapa jumlah perulangan yang harus dilakukan.
php
<?php
$i = 0;
while($i < 10) {
echo "Product {$i}";
$i++;
}<?php
$i = 0;
while($i < 10) {
echo "Product {$i}";
$i++;
}Penjelasan Code
- perulangan
whileakan selalu di eksekusi selama nilaibooleanstatement bernilaitrue - variable
$iakan selalu di increment selama perulangan berjalan
Penggunaan Pada Kasus
Penggunaan while biasa di gunakan pada logic pembuatan game, Contoh kasus game flappy bird, untuk membuat random jumlah pipa yang akan muncul.
Perulangan Do While
Perulangan do ... while sama persis dengan perulangan while.
- Pada
while, jika kondisi pertama kali bernilaifalse, perulangan tidak akan dieksekusi sama sekali. - Sedangkan pada
do...while, perulangan akan tetap dilakukan satu kali jika kondisi pertama sudah bernilaifalse.
php
<?php
while(false) {
echo "Product";
}<?php
while(false) {
echo "Product";
}php
<?php
do {
echo "Product";
} while (false);<?php
do {
echo "Product";
} while (false);Penjelasan code
Code pada while tidak akan di eksekusi sama sekali karna boolean statement bernilai false, namun pada code do ... while akan di eksekusi satu kali
Perulangan Foreach
Jenis perulangan ini khusus untuk tipe data array baik array asosiatif mau pun array terindeks. Kita bisa melakukan perulangan pada setiap elemen array tanpa harus tahu berapa panjang dari array itu sendiri.
php
<?php
$products = [
[
'name' => 'Handphone',
'price' => 2000000,
'rating' => 4.6
],
[
'name' => 'Tablet',
'price' => 5000000,
'rating' => 4
],
[
'name' => 'Laptop',
'price' => 14000000,
'rating' => 5
]
];
foreach($products as $product) {
echo "Product {$product['name']}";
}<?php
$products = [
[
'name' => 'Handphone',
'price' => 2000000,
'rating' => 4.6
],
[
'name' => 'Tablet',
'price' => 5000000,
'rating' => 4
],
[
'name' => 'Laptop',
'price' => 14000000,
'rating' => 5
]
];
foreach($products as $product) {
echo "Product {$product['name']}";
}Penjelasan code
foreach akan mengeksekusi seluruh data pada array hingga index terkahir
Perintah Break & Continue
Kita bisa melewatkan satu step perulangan dengan perintah continue. Kita juga bisa memberhentikan proses perulangan dengan perintah break sebelum perulangan sampai pada iterasi yang terakhir.
php
<?php
$products = [
[
'name' => 'Handphone',
'price' => 2000000,
'rating' => 4.6
],
[
'name' => 'Earphone',
'price' => 200000,
'rating' => 3
],
[
'name' => 'Tablet',
'price' => 5000000,
'rating' => 4
],
[
'name' => 'Laptop',
'price' => 14000000,
'rating' => 5
]
];
foreach($products as $product) {
if ($product['name'] == 'Handphone') {
continue; // skip to next iteration of the loop
}
if ($product['name'] == 'Tablet') {
break; // stop execution and end the script here
}
echo "Product {$product['name']}";
}<?php
$products = [
[
'name' => 'Handphone',
'price' => 2000000,
'rating' => 4.6
],
[
'name' => 'Earphone',
'price' => 200000,
'rating' => 3
],
[
'name' => 'Tablet',
'price' => 5000000,
'rating' => 4
],
[
'name' => 'Laptop',
'price' => 14000000,
'rating' => 5
]
];
foreach($products as $product) {
if ($product['name'] == 'Handphone') {
continue; // skip to next iteration of the loop
}
if ($product['name'] == 'Tablet') {
break; // stop execution and end the script here
}
echo "Product {$product['name']}";
}Penjelasan code
foreach di atas hanya akan mencetak Earphone saja, karena perintah continue pada data dengan nama Handphone jadi tidak akan mencetak Handphone dan perulangan akan berhenti setelah menemukan data product dengan nama Tablet.