PHP singkatan dari Hypertext Pre-processor, yang sebelumnya disebut Personal Home Pages adalah bahasa scripting server-side, Bahasa pemrograman yang digunakan untuk mengembangkan situs web statis atau situs web dinamis atau aplikasi Web.
Belajar kali ini kita tidak membutuhkan web browser untuk membuka file php tersebut, melainkan menjalankan di terminal.
- File php dibuat dengan extension
.php
. - sintak PHP dibuat dengan awalan
<?php
kemudian diakhiri dengan?>
. - Tidak boleh menggnakan spasi dalam penamaan berkas php.
- Untuk menampilkan tulisan menggunakan perintah
echo
. - Menjalankan file php di terminal menggunakan perintah
php <file-name>.php
.
Terdapat 2 jenis tipe data number di php.
- (int) => Desimal/base 10, Hexadesimal base 16, octa/ base 8, binary/ base 2.
- (Float ) => Belangan pecahan.
- Untuk memudahkan dalam membaca angkka, gunakan underscore ( _ ) misalkan 10_ 000_000.
- (Integer OverFlow) => beda tipe mesin komputer beda hasil antar 32 dan 64 bit, jka jumlah angka melebihi kapasitas dari mesin tersebut akan menjadi floating point.
Silahkan buka file TypeDataNumber.php
.
- Tipe dengan nilai benar atau salah.
- Nilainya bersifat case insensitive (TrUe | tRue | fAlsE | FalsE | true | false).
Silahkan buka file TypeDataBool.php
- Tipe data ini merupakan representasi dari teks.
- String bisa mengandung kosong " " atau banyak karakter "karakter".
- Bisa menggunakan single quote 'str'.
- Bisa menggunakan double quote "str",kelebihan dari dobel quot ini adalah bisa mneggunakan escape sequence seperti
\n
untuk ENTER,\t
untuk TAB dan yang lainnya.
Ketika membuat sebuah tipe data string kita bisa menggunakan cara heredoc nowdoc
- heredoc
echo <<<t
halo saya belajar $variable
Sekarang lagi belajar Typedata String
dan menggunkan heredoc
keren kan?
t;
- nowdoc
echo <<<'t' //menggunakan kutip
halo saya belajar PHP
Sekarang lagi belajar Typedata String
dan menggunkan heredoc
keren kan?
t;
nowdoc tidak bisa memparsing data variable
Silahkan buka file TypeDataString.php
- Variable merupakan untukk menyinpan data sehingga kita dapat menggunbakan lagi kode programnya.
- Data dari nilai variable tersebut dapat berubah, misalkan dari string bisa dibah ke integer.
- Dimulai dengan tanda $ (dolar) kemudian diikuti nama variable
$var = "string"
. - Tidak boleh mengandung spasi di variablenya
$var able = "string".
Membuat nama variabel dari nilai variable, fitur ini sangat membingungkan saat mode development nanti, jadi tidak disarankan menggunakan jika tidak diperlukan.
Penggunaan sintak ini meggunakan tanda dolar 2 kali $$
. Contoh:
$name = 'han';
$$name = 'hanasa';
$$name
itu sebenarnya $han
Silahkan buka file variabel.php
Kata lain dari variable yang mana nilai tidak bisa dirubah (immutable) dan disranakn dalam best practicenya menggunakan capital (UPPER_CASE) contoh sintak
define('NAMA_VAR', 'STRING');
echo NAMA_VAR;
Nilai NULL
merepresentasikan sebuah variable tanpa nilai, kita bisa menggunakan null
untuk menghapus data sebuah variable, NULL
sendiri bersifat case insesitive atau boleh kapital boleh huruf kecil tulisannya.
$name = "Hanasa";
$name = null;
echo "Name : $name";
Kadang kita ingin menegcek apakah data tersebut kosong alias null
, kita bisa meggunakan function is_null($var)
dan hasilnya boolean
$name = null;
echo is_null($name); // 1 atau true
Selain bisa menghapus nilai dari variable, php
juga bisa menghapus variable itu sendiri dengan function unset($var)
$age = 23;
unset($age);
echo $age; //error karena sudah dihapus
Untuk mengecek variabel apakah ada dan ada nilainya (tidak null
) kita bisa menggunakan function isset($var)
$age = 23;
$age = null;
isset($age); //false
$age = "24";
isset($age); //true
Tipe data ini bisa menampung beberapa jenis data dalam satu variable. Bisa itu int, str, bool.
Operasi | Keterangan |
---|---|
$array[index] | Mengakses data di array pada nomor index |
$array[index] = value | Mengubah data di array pada nomor index dengan value baru |
$array[] = value | Menambah data array |
unset($array[index]) | menghapus data di array, index otomatis hilang |
count($array) | menghitung jumlah data pada array |
Ketika kita membuat array nilai dari array tersebut mempunyai nilai yang berhubungan yaitu key dan value, key didalam sebuah array secara default berupa anggak dimulai dari 0, tetapi di php kita bisa membuat sesuai yang kita inginkan pada key-nya.
$name = [
"id" => "IDXuy56",
"name" => "Hanasa",
"address" => [
"city" => "Ciamis",
"country" => "Indonesia"
]
]
multi-dimensional arrays atau disebut dengan nested arrays
$bag = ["apple", "orange", "grape"];
$cart = ["cucumber", "carrot", $bag];
echo $cart[1] .PHP_EOL; //carrot
echo $cart[2][1] .PHP_EOL; //Orange
Operator | Keterangan |
---|---|
+$var | Positif |
-$var | Negatif |
$vara + $varb | Penambahan |
$vara - $varb | Pengurangan |
$vara * $varb | Perkalian |
$vara / $varb | Pembagian |
$vara % $varb | Faktorial atau sisa bagi |
$vara ** $varb | Perpangkatan |
Operator | Keterangan |
---|---|
$a += $b | $a = $a + $b |
$a -= $b | $a = $a - $b |
$a *= $b | $a = $a * $b |
$a %= $b | $a = $a % $b |
$a /= $b | $a = $a / $b |
$total = 0;
$buah = 12000;
$sayuran = 23000;
$total += $buah;
$total += $sayuran;
echo $total; //35000;
Operator | Nama | Hasil |
---|---|---|
$a && $b | And | true Jika $a dan $b keduanya true |
$a and $b | And | true Jika $a dan $b keduanya true |
$a || $b | Or | true Jika $a dan $b salah satunya true |
$a or $b | Or | true Jika $a dan $b salah satunya true |
!$a | Not | true Jika $a berniai false atau disebut kebalikan |
$a Xor $b | Xor | true Jika $a dan $b salah satunya true, tapi tidak keduanya |
var_dump(true && true); //true
var_dump(true && false); //false
Operator | Nama | Keterangan |
---|---|---|
$a !== $b | Tidak Identik | true jika $a dan $b tidak sama dengan atau tidak sama tipe data |
$a < $b | Kurang Dari | true jika $a kurang dari $b |
$a <= $b | Kurang dari atau sama dengan | true jika $a kurang dari atau sama dengan dari $b |
$a > $b | Lebih Dari | true jika $a lebih dari $b |
$a >= $b | Lebih dari atau sama dengan | true jika $a lebih dari atau sama dengan dari $b |
var_dump(10 !== "10"); //true
var_dump(10 == 10); //true
var_dump("10" == 10); //true
Operator | Nama | Keterangan |
---|---|---|
$a++ | Post Increment | Kembalikan $a lalu naikkan 1 |
++$a | Pre Increment | naikan 1 lalu kembalika $a |
$a-- | Post Decrement | Kembalikan $a lalu turunkan 1 |
++$a | Pre Decrement | turunkan 1 lalu kembalika $a |
$a = 2;
$c = $a++;
echo $c; // 2
Maksud dari hasil dari c menjadi 2 bukan 3 adalah karena sintaknya bisa sama seperti:
$c = $a; //$a simpan ke $c
$a = $a + 1 //kemudian
Operator | Nama | Keterangan |
---|---|---|
$a + $b | Union | Menggabungkan array $a + $b |
$a == $b | Equality | true jika $a dan $b memiliki key-value sama |
$a === $b | Identity | true jika $a dan $b memiliki key-value sama dan posisi sama |
$a != $b | Inequality | true jika $a dan $b tidak sama |
$a <> $b | Inequality | true jika $a dan $b tidak sama |
$a !== $b | Nonidentity | true jika $a dan $b tidak identik |
Contoh
$first = [
"first" => "Han Han" // sama
];
$last = [
"first" => "Sofari", //bentrok / sama
"last" => "Hanasa"
];
$full = $first + $last;
var_dump($full);
jika itu bentrok key nya dengan variable sebelumnya maka nilainya akan diabaikan dan hasilnya akan menjadi seperti ini:
//result
array(2) {
'first' =>
string(7) "Han Han"
'last' =>
string(6) "Hanasa"
}
Ini digunakan untuk menambahkan antara string
dengan type data yang lain, sebenarnya bisa saja menggunakan tanda plus (+) tetapi tidak disarankan karean tanda plus (+) hanya dignakan untuk operasi matematika. Seperti Contoh berikut:
$name = "Hanasa";
echo "nama saya " . $name . PHP_EOL;
$nilai = 100;
echo "nilai tugas: ". $nilai . PHP_EOL;
Catatan : PHP_EOL
=> kependekan dari PHP End Of Line sintak pengganti "\n"
untuk membuat garis baru.
Terkadang kita mau mengubah type data dari inputan user misalkan user meninput data dengan type string "100" kita harus mengubahnya ke type number (int/float), kita cukup menggunakan dengan formula (typedata)value
contoh:
$valueStr = (string)100;
var_dump($valueStr); // string(3) "100"
$valueName = (int)"Hanasa";
var_dump($valueName); // int(0)
Kalau kita mengubah nilai yang salah, misal dari (int)"Hanasa"
maka mengembalikan int(0)
Untuk mengakses karakter sama seperti array menggunakan kurung siku dan indexnya dimulai dari 0.
$name = "Hanasa";
echo $name[2]; // n
Jika kalian ingin menambahkan karakter string tanpa mengubahkan nilai variable, bisa kalian gunakan kurung kriwil {}
$myDonut = "Donut";
echo "i have 3 {$myDonut}'s"; //i have 3 Donut's
Hampir semuanya bahasa pemograman memppunyai fitur percabangan
if statement
digunakan untuk mengembalikan statement jika suatu nilai terpenuhi (bernilai true).else
digunakan untuk mengembalikan statement jika nilai berkondisi (false).- sedangkan
else if
atauelseif
digunakan jika kita mempunyai suatu kondisi bernilai (true) lebih dari satu.
switch statement
digunakan jika hanya membandingkan nilai dengan==
.- penggunaan lebih sederhana.
- Sintak ini merupakan hasil sintak lebih singkat dibanding
if statement
. - penggunaanya hanya dengan formula
$var ? statement1 : statement2
.
- cara ini digunakan untuk mengecek apakah sebuah data itu null atau tidak.
- coaliscing null menggunakan tanda '??'.
- Syntak
for
digunakan untuk melalukan perulangan. - Blok kode yang ada didalam
For
akan terus diulangi selagi kondisi terpenuhi.
for (init statement; kondisi; post statement){
//block perulangan
}
contoh
for ($nilai = 1; $nilai <= 10; $nilai++){
echo "nilai saya $nilai".PHP_EOL;
}
while loop
perulangan versi sederhana dibandingfor
.- di
while loop
, hanya terdapat kondisi perulangan tanpa init statement dan post statement.
$counter = 1; //init statement
while($counter <= 10){ //kondisi
echo "ini penghitung ke-$counter" . PHP_EOL;
$counter++; // post statement
}
Do While Loop
mirip sekali dengan perulangan denganwhile loop
. Namun perbedaanya pada pengecekan kondisi.- Pengecekan kondisi dilakukan setelah perulangan dilakukan.
Do while loop
akan melakukan hasil perulangan minimal 1 kali meski kondisi bersifat false.
$counter = 1; //init statement
do{
echo "Ini penghitung ke-$counter" . PHP_EOL;
$counter++; //post statement
} while($counter <= 10); //kondisi
Break itu untuk menghentikan seluruh perulangan. Sedangkan Continue itu untuk menghentikan perulangan saat ini kemudian melanjutkan perulangan selanjutnya (skip).
Contoh untuk break
for($i = 1; true; $i++){
echo "ini i yang ke-$i".PHP_EOL;
if ($i >= 23 ){
break; //berhenti perulangannya jika lebih sama dengan 23
}
}
Contoh untuk Continue
for ($i = 0; $i < 10; $i++){
if($i % 2 == 0){
continue;
}
echo "Bilangan ke-$i".PHP_EOL;
}
foreach
sering digunakan untuk melakukan iterasi array dari pada menggunakan for
.
$barang = ["Tepung", "Gula", "Garam"];
for($i = 0; $i < count($barang); $i++){
echo "barang $barang[$i] masih ada dengan index ke-$i" .PHP_EOL;
}
goto
merupakan fitur untuk melocati sebuah kode program yang ada dibawahnya. Fitur Goto ini jarang sekali digunakan karena sangat membingungkan.
Kode goto
menggunakan sintakdengan menambahkan tanda (:) colon.
goto a;
echo "Hello Dunia". PHP_EOL; // diloncati
a:
echo "Hello A". PHP_EOL;
Function merupakan blok kode program yang akan berjalan saat ketiak nama function tersebut dipanggil. formula dari function:
function name(){
//lakukan sesuatu
}
name() //menjalankan function name
cara membuat argument dalam function sama seperti membuat sebuah $variable
, argument bisa lebih dari satu dan harus dipisah dengan koma (,).
function sayHello($name){
echo "halo $name" . PHP_EOL;
}
sayHello("Hanasa"); // halo Hanasa
Fitur ini memungkinkan kamu untuk membuat parameternya tidak diisi ketika dipanggil functionnya akan berjalan dengan baik karena memiliki nilai default.
function beli($sayur = "kol"){
echo "saya telah membeli $sayur" .PHP_EOL;
}
beli("Tahu"); //saya telah membeli Tahu
beli(); // saya telah membeli kol => karena ini mengambil nilai default
Catatan ketika membuat sebauh default parameter, ini harus disimpan di index terakhir.
// SALAH
function beli($sayur = "Kol", $buah, $bumbu){
echo "saya telah membeli $sayur $buah dan $bumbu" .PHP_EOL;
}
// BENAR
function beli($sayur, $buah, $bumbu = "merica"){
echo "saya telah membeli $sayur $buah dan $bumbu" .PHP_EOL;
}
Nilai pada Argument itu type datanya bersifat dinamis, kalian bisa memperlakukan secara bebas, bisa string, int,
ataupun bool
. Tetapi di PHP kita bisa menentukan nilainya dengan secara ketat.
Cara ini dapat mengubah sebuah type data dari type data yang lain ke type data yang sudah ditentukan.
function totalBelanja(int $pasar, int $transport){ // type integer/number
$total = $pasar + $transport;
echo "total belanja saya adalah $total" .PHP_EOL;
}
totalBelanja(20000, 5000); // total 25000
totalBelanja("20000", "5000"); // ini akan diubah dari string ke int
Variable-length Argument List ini memiliki kemmapuan untuk menyimpan banyak nilai, kemudian akan diubah menjadi array. Cara menggunakan dengan tanda titik tiga kali (...).
function belanja(...$items){
foreach($items as $item){
echo "saya belanja $item" .PHP_EOL;
}
}
//tanpa membuat array
belanja("kable", "monitor", "pulsa");
//menggunakan array
$buah = ["anggur", "apel", "lengkeng", "tomat"];
//paggil
belanja(...$buah);
Secara default function tidak mengembalikan nilai apapun tetapi jika kita mau mengembalikan nilai kita bisa mengembalikan nilai dengan return
dan dalam sebuah function kita hanya dapat mengembalikan satu nilai saja.
function totalBelanja(int $pasar, int $parkir, int $bensin){
return $pasar + $parkir + $bensin;
}
$total = totalBelanja(24000, 3000, 5000);
var_dump($total);
Selain itu dalam sebuah function kiat bisa menentukan typedata apa yang akan dikembalikan mau itu string, int ataupun bool
dengan menggunakn titik dua (:).
function sum($ang, $ka): int{ // menentukan typedata integer
return $ang + $ka;
}
Vraibale function merupakan kemampuan memanggil sebuah function dari value yang terdapat di sebuah variable.
function sayHalo(){
echo "Halo Semuanya" . PHP_EOL;
}
$halo = "sayHalo"; //menyimpannya ke variable
$halo(); // memanggil dengan variable
Ada lagi selain menyimpan ke dalam variable yaitu menyimpan sebagai parameter.
//buat function 1
function filterFunc(string $name, $filter){
echo $filter($name) .PHP_EOL;
}
//buat function 2
function sapa(string $name){
echo "halo $name".PHP_EOL;
}
//panggil function 1 kemudian masukan sapa() sebagai parameter
filterFunc("Han Han", "sapa");
Anonymous Function memrupakan function tanpa nama (disebut juga closure)
$sayhello = function (string $name) {
echo "Helo $name" .PHP_EOL;
}; //jangannlupa titik komanya ";"
$sayhello("Hanasa");
Selain itu kita bisa mengirim function sebagai argument/parameter
//buat function anonym
$sapa = function ($name, $filter){
echo $filter($name) .PHP_EOL;
};
//panggil dan masukan function sebagai argument
$sapa("Han Han", function (string $name) {
echo "Halooo $name";
});
Kemudian untuk memanggil sebuah variable dari luar, kita harus memanggil secara explicite
jangan lupa gunakan method use()
.
$fullName = "Han Han Hanasa";
$sayBye = function () use($fullName){ //gunakan method use
echo "Good bye $fullName" .PHP_EOL;
};
SILAKAN BUKA FILE anonym-function.php
Arrow function diperkenalkan pada php versi 7.4, Pada dasarnya sama seperti anonymouse function
namun penulisannya lebih singkat dan juga kalau memanggil sebuah variable dari luar tanpa menggunakan use()
.
$firstName = "Hanasa";
$lastName = "Sofari";
$sayHallo = fn() => "Halo $firstName $lastName" .PHP_EOL;
echo $sayHallo();
Callback merupakan sebuah cara untuk memanggil function sesuai yang yang diberikan di argument. Ada 2 cara untuk menggunakan callback yaitu:
- menggunakan
callable
dancall_user_func
.
function sayHello(string $name, callable $func){ //callable
$getName = call_user_func($func, $name); //call_user_func
echo "Hello $getName" .PHP_EOL;
}
- Menggunakan secara langsung.
function sayHello(string $name, $func){
$getName = $func($name); //langsung panggil
echo "Helo $getName" .PHP_EOL;
}
Recursive function adalah kemampuan untuk memanggil functionnya sendiri, contohnya digunakan pada kasus factorial.
function loop($val){
if ($val == 1 ){
return 1;
} else {
return $val * loop($val - 1); //memanggil function sendirinya
}
}
var_dump(loop(5));
Tapi harus hati-hati saat menggunakan recursive function yaitu akan mengakibatkan kehabisan memory jika melakukan perulangan yang sangat banyak.
Ada banyak sekali function atau method untuk memanipulasi sebuah string, kalian bisa lihat referensinya di String Function
$arr = [1,2,3,4,5];
//menggabungkan string dari array
var_dump(join(",",$arr));
Function ini digunakan untuk menengecek tipe data dari data. Is Function.
$arr = [12,"ahan", 7878];
var_dump(is_array($arr)); // is_array()
PHP memiliki method untuk mengambil file php dari yang lain, ini supaya tidak bertumpuk pada satu file php.
require
jika dipanggil filenya tidak ada maka terjadi error dan terhenti programnya.
require "./lib/getName.php";
echo getName("Hanasa");
- sedangkan
include
jika filenya tidak ada program akan tetap berjalan namun akan ada peringatan.
include "./lib/getSum.php";
echo getSum(12,3);
include_once & require_once untuk meload file hanya sekali tanpa medeklare kembali isi logic dari file tersebut sehingga menghindari error.
//Error
include "./lib/getSum.php";
include "./lib/getSum.php";
echo getSum(12,3);
echo getSum(17,3);
include_once "./lib/getSum.php";
include_once "./lib/getSum.php";
echo getSum(12,3);
echo getSum(17,3);
Scope variable adalah dibagian mana saja sebuah variable bisa diakses, di PHP ada 3 jenis scope
- Global
- Lokal
- Static
variable global ini dibuat di luar function jadi function tidak bisa mengakses varible ke dalam function.
$name = "Hanasa";
$umur = 23;
function getName(){
echo "Halo $name dan dia berusia $umur tahun" .PHP_EOL;
}
// Akan error. karena $name dan $umur bersifat global
Variable ini hanya bisa diakses di dalam function itu sendiri dan juga tidak bisa diakses oleh function lainnya.
function sayHalo(){
$name = "Han Han"; //local scope
echo "Halooo $name" .PHP_EOL;
}
Static scope hanya bisa dibuat di local varible, ketika varible bersifat static maka siklus dari variable tersebut memiliki siklis yang tidak akan berhenti dan akan memiliki value yang terakhir kali diakse.
function hitung(){
static $co = 1; //static
echo "ini hitungan ke-$co".PHP_EOL;
$co++;
}
hitung(); //ini hitungan ke-1
hitung(); //ini hitungan ke-2
Mengakses variable yang sama dengan nama variable yang berbeda. Saat kita mengubah isi value dari refrence, maka secara otomatis value akan berubah. Untuk melakukan refrence kita harus menggubakan tanda &
.
$name = "Han";
$han = &$name;
$han = "Hanasa";
echo $name; // Hanasa