Anda di halaman 1dari 111

PHP Dasar | 1

Belajar PHP Dasar


Dari web https://jagongoding.com/web/php/

Ini adalah seri tutorial belajar PHP 7 dasar, semua materi pada seri ini disesuaikan untuk
pemula yang ingin memulai perjalanannya sebagai programmer PHP.

Kita akan mempelajari bahasa pemrograman PHP dari bagiannya yang paling dasar. Mulai
dari file PHP, variabel, tipe data, logika, pembahasan tentang fungsi, pembahasan tentang
string, array dan lain sebagainya.

Jika sebelumnya anda pernah belajar bahasa Java, C++, atau bahasa pemrograman yang
lainnya, mempelajari bahasa pemrograman PHP akan lebih mudah karena ia masih memiliki
beberapa struktur yang sama.

Akan tetapi jika PHP adalah bahasa pemrograman yang pertama kali anda pelajari, anda
tidak perlu khawatir. Dengan mengikuti tutorial PHP ini, insyaallah anda akan bisa
menguasainya dengan mudah.

1. Hello World
Daftar Isi

o Persiapan

o Apa itu File PHP?

o Komentar dalam File PHP

o Membuat File PHP Baru

o Menjalankan File PHP

o Hasil Akhir

o Pembahasan Selanjutnya

Dalam seri tutorial Belajar PHP Dasar ini, kita akan mempelajari bahasa pemrograman PHP
dari bagiannya yang paling dasar. Mulai dari file PHP, variabel, tipe data, logika, fungsi dan
hal-hal lainnya.

Pada pertemuan pertama ini kita akan membahas mulai dari persiapan yang harus
dilakukan sebelum memulai pemorgaman PHP, kita juga akan membahas tentang apa itu
file PHP dan cara menjalankannya.

Persiapan

Beberapa persiapan sebelum anda memulai tutorial PHP dasar ini:


PHP Dasar | 2

1. Anda sudah paham garis besar apa itu web server dan bagaimana kerjanya
2. Anda sudah paham garis besar tentang cara kerja protokol HTTP/HTTPS
3. Anda sudah menyiapkan perangkat anda untuk menjalankan PHP
4. Tutorial ini menggunakan PHP 7.4, anda disarankan untuk senantiasa menggunakan
versi paling baru PHP untuk mengikuti tutorial ini

Apa itu File PHP?

Kita masuk dari pembahasan yang pertama, yaitu tentang file PHP.

File PHP adalah file yang berekstensi *.php, diawali dengan sintaks <?php dan diakhiri
dengan sintaks ?>.

Contoh:

<?php

echo "Halo dunia!";

Kode 1: Hello world dengan php

Jika file kita murni PHP saja, tidak bercampur dengan file yang lain. Kita boleh untuk tidak
menutup file tersebut dengan ?> seperti contoh pada Kode 1 di atas. Dan ini adalah cara
yang disarankan.

Ada pun jika kode program kita bercampur dengan “konten” non-php. Maka kita perlu
menggunakan sintaks penutup (?>) untuk memperjelas mana yang harus dieksekusi
sebagai file php, dan mana yang bukan.

Perhatikan kode program pada Kode 2 di bawah di mana sintaks PHP bercampur dengan
sintaks HTML.

<!DOCTYPE html>

<html>

<body>

<h1>Halaman HTML</h1>

<?php

echo "Halo dunia!";

?>
PHP Dasar | 3

</body>

</html>

Kode 2: Hello world php yang bercampur dengan konten non php

Kode program pada contoh Kode 2 di atas harus disimpan dengan ekstensi .php. Jika tidak,
maka itu akan dianggap teks HTML biasa.

Komentar dalam File PHP

Kita telah mengetahui dari contoh di atas bahwasanya sintaks php adalah semua yang diapit
oleh tag <?php dan ?>. Akan tetapi, ada satu bagian file php yang keberadaannya seperti
tidak ada, alias tidak dianggap: yaitu baris komentar.

Baris komentar dalam php ada 2 jenis: inline dan multiple lines. Anda bisa memanfaatkan
komentar dalam PHP untuk menulis catatan tentang fungsi atau alur dari kode program
yang anda tulis.

Contoh Komentar Inline

Pada PHP, ada dua cara untuk mendefinisikan komentar inline. Yang pertama seperi
umumnya komentar pada bahasa pemrograman yang lain, yaitu menggunakan
sintaks double slash (//). Dan cara yang kedua adalah dengan menggunakan tanda pagar
atau hashtag (#).

Perhatikan contoh pada Kode 3 berikut:

<?php

# Ini adalah komentar satu baris dengan tanda pagar (#)

// ini juga komentar satu baris tapi dengan tanda double-slash (//)

echo "Halo dunia!";

Kode 3: komentar inline php

Contoh Komentar Multiple-Lines

Jenis komentar yang kedua adalah komentar multiple lines. Ia diawali tanda /** dan diakhiri
dengan tanda */.

Agar lebih bagus, biasanya setiap baris komentar akan ditambahkan tanda bintang *.

<?php
PHP Dasar | 4

/**

* Terkadang anda ingin menggunakan komentar dalam bentuk beberapa baris

* Anda bisa menulisnya seperti ini

* NB: Ini biasa digunakan untuk menjelaskan logika/alur program yang cukup panjang

*/

echo "Halo dunia!";

Kode 4: komentar multiple-lines php

Seperti yang anda saksikan pada Kode 3 dan Kode 4, kita bisa menambahkan komentar
pada file php kita tanpa mempengaruhi program kita sama sekali. Untuk komentar inline, kita
bisa menggunakan tanda # mau pun tanda //. Ada pun untuk multiple lines, anda bisa
menggunakan tanda /** dan ditutup dengan tanda */.

Membuat File PHP Baru

Anda bisa menggunakan berbagai macam teks editor untuk membuat file php. Semisal
sublime text, atom, visual code, vim, nano, nodepad++ dan sebagainya. Bahkan anda juga
bisa menggunakan notepad pada windows. Yang terpenting adalah: anda harus menyimpan
file tersebut dengan ekstensi .php.

Setelah anda menyiapkan teks editor yang akan anda gunakan, lakukan langkah-langkah
berikut:

1. Buat file baru


2. Copy kode program Kode 1 di atas
3. Lalu simpan dengan nama file hello-world.php.
4. Buat file baru lagi.
5. Copy kode program Kode 2 di atas
6. Lalu simpan dengan nama file hello-world-2.php.

Menjalankan File PHP

Secara umum ada dua cara untuk menjalankan atau mengeksekusi file php. Anda bisa
melakukannya dengan:

CLI

Untuk CLI, artinya anda mengeksekusi file php lewat terminal atau command line. Tidak
dieksekusi dengan HTTP Request melalui Browser atau pun media lainnya. Hal ini sangat
PHP Dasar | 5

berguna untuk tugas-tugas yang dijalankan secara otomatis misal mengirim tagihan
perpanjangan domain setiap tahun.

Anda bisa melakukannya dengan perintah php, diikuti dengan nama file setelahnya.

php hello-world.php

Atau misal:

php kirim-tagihan-yang-sudah-jatuh-tempo.php

Web Server

Menjalankan file php melalui Web Server artinya melalui HTTP Request. Contoh paling
sederhana adalah seorang user membuka url localhost:8000/hello-world.php. Lalu web
server menangkap request tersebut dan mem-bypass ke interpreter php untuk
mengeksekusinya. Untuk kemudian mengembalikan output kepada browser sebagai HTTP
Response.

Untuk Web Server, anda bisa menggunakan Nginx atau pun Apache. Atau cara yang paling
simpel adalah dengan menggunakan php built in server. Yaitu server kecil sederhana
bawaan PHP untuk kebutuhan selama proses pengembangan aplikasi PHP.

Anda bisa menjalankan PHP Built in Server dengan perintah berikut:

php -S localhost:8000

Perintah di atas akan membangun web server sederhana yang me-listen port 8000 dengan


hostname localhost. Jika di dalam direktori tersebut terdapat file hello-world.php, anda bisa
membukanya di browser dengan mengunjungi alamat http://localhost:8000/hello-world.php.

Untuk mengeksekusi file php dengan Nginx, anda bisa membaca tutorialnya di cara install
nginx dan php di Ubuntu.

Hasil Akhir

Hasil akhir dari tutorial ini bisa anda lihat pada rekaman layar Video 1. Di dalam video
tersebut saya mendemonstrasikan cara menjalankan file yang telah kita buat
menggunakan php built-in server.

Dalam video tersebut Saya menggunakan Arch Linux, cara yang sama juga bisa anda
lakukan pada OS yang lainnya.

Pembahasan Selanjutnya

Dalam tutorial ini kita telah mengetahui apa itu file PHP, bagaimana cara membuatnya dan
bagaimana cara menjalankannya. Pada pertemuan selanjutnya, kita akan mempelajari
tentang variabel dan tipe data dalam PHP.
PHP Dasar | 6

Ikuti terus setiap seri dari Tutorial PHP Dasar, jika anda mendapati pertanyaan atau
masalah, silakan tulis di kolom komentar.

2. Tipe Data Dan Variabel


Daftar Isi

o Persiapan
o Apa Itu Tipe Data?
o Macam-Macam Tipe Data Dalam PHP
o Apa itu Variabel?
o Peraturan Penamaan Variabel
o Pembuatan Variabel
o Hasil Akhir
o Pembahasan Selanjutnya
o Referensi

Persiapan

Tutorial ini adalah pertemuan ke-2 dari seri Tutorial PHP Dasar. Pastikan anda telah
mengikuti tutorial sebelumnya yang membahas tentang: cara membuat file PHP dan
bagaimanca cara menjalankannya.

Pada pertemuan ini, kita akan membahas sesuatu yang sangat penting dan sangat
mendasar dalam bahasa pemrograman PHP: yaitu tentang tipe data dan variabel.

Apa Itu Tipe Data?

Tipe data adalah klasifikasi jenis data atau bentukan dari suatu data. Ia menjelaskan suatu
data: dari jenis apakah ia tersusun? Apakah bilangan riil? Atau kah bilangan pecahan? Atau
kah ia data yang tersusun dari bentukan karakter?

Intinya tipe data adalah klasifikasi jenis dari data yang kita ingin simpan dalam sebuah
variabel. Hampir seluruh bahasa pemrograman yang ada mendukung berbagai macam jenis
tipe data, seperti: integer untuk bilangan rill, boolean untuk true dan false, string untuk
kumpulan karakter, dan sebagainya [1].

Macam-Macam Tipe Data Dalam PHP

Ada berbagai macam tipe data: mulai dari tipe data asli dan tipe data buatan. Untuk PHP
sendiri, ia mendukung setidaknya 8 tipe data skalar. Akan tetapi dalam tutorial ini,
PHP Dasar | 7

sementara kita akan fokuskan dahulu pada pembahasn 5 tipe data saja, karena 5 tipe data
ini adalah tipe data yang paling dasar.

5 tipe data tersebut adalah:

Tipe Data Keterangan


Integer Berisi bilangan bulat
Float Berisi bilangan desimal
Boolean Berisi 2 nilai saja: true dan false
String Berisi data teks yang diapit oleh tanda '' atau ""
Array Berisi himpunan data

PHP adalah bahasa pemrograman yang bersifat dinamic typing, yang artinya ia tidak
memiliki aturan ketat terhadap pendefinisian tipe data pada setiap variabel. PHP akan
otomatis menentukan tipe data dari suatu variabel tertentu ketika program dijalankan.

Sebentar lagi, kita akan mempelajari cara pembuatan variabel PHP untuk semua tipe data di
atas.

Apa itu Variabel?

Variabel adalah suatu “wadah” yang digunakan untuk menyimpan suatu data atau nilai. Kita
bisa menyimpan berbagai macam data dari berbagai macam tipe, misalkan kita menyimpan
data teks untuk nama mahasiswa, atau data desimal untuk nilai ipk mahasiswa, dan
seterusnya.

Peraturan Penamaan Variabel

Untuk menyimpan suatu data pada variabel, kita perlu memberi nama terhadap variabel
tersebut.

Dalam PHP, terdapat beberapa peraturan dalam pemberian nama variabel sebagaimana
pada tabel berikut:

Peraturan Keterangan
diawali tanda $ Setiap nama variabel dalam bahasa pemrograman PHP didefinisikan dengan
tanda $ lalu diikuti oleh nama variabel itu sendiri
nama diawali huruf Nama variabel PHP harus diawali huruf, atau tanda underscore (_).
atau underscore (_) Kita bisa membuat variabel dengan nama $_nilai atau $nilai123 akan
tetapi tidak bisa membuat variabel dengan nama $1nilai
case sensitive PHP membedakan huruf besar dan kecil dalam penamaan variabel. Maka
variabel $nilai, $niLai dan juga $nIlAi dianggap 3 variabel yang berbeda
hanya boleh huruf dan nama variabel hanya boleh tersusun dari huruf [a-z] atau [A-Z], dan juga
angka angka [0-9]. Kita tidak bisa memberi nama variabel misalkan dengan
tanda ^ atau & dan lain sebagainya. Kita juga tidak bisa
menggunakan spasi dalam penamaan variabel di PHP
inisiasi dengan tanda = Kita bisa memberi nilai terhadap suatu variabel dengan menggunakan operator
sama dengan (=).

Contoh: $nama = "Nurul Huda";


PHP Dasar | 8

NB: Penamaan suatu variabel disarankan agar menggunakan nama yang sesuai
dengan tugas variabel tersebut. Misalkan menggunakan
nama $nilaiMatematika untuk menyimpan nilai matematika, dan tidak menggunakan
nama $a untuk menyimpan nama hari misalnya.

Pembuatan Variabel

Untuk pembuatan variabel dalam PHP, kombinasi sintaksnya adalah sebagai berikut:

<?php

$namaVariabel = [nilai variabel];

Bagian $namaVariabel adalah nama yang anda berikan untuk variabel tersebut,


sedangkan [nilai variabel] adalah nilai yang akan anda masukkan ke dalam variabel
tersebut.

Nilai variabel ini lah yang menentukan tipe data dari variabel itu sendiri. Jika anda
memasukkan angka, maka tipe datanya menjadi tipe data numeric (integer/float), jika anda
masukkan true/false maka jadinya adalah boolean, dan seterusnya.

Tipe Data Integer

Tipe data yang pertama adalah integer. Ia adalah tipe data yang digunakan untuk
menyimpan bilangan bulat.

Kita akan membuat variabel dengan tipe data integer lalu menampilkannya dengan


perintah echo. Kita juga bisa menampilkan tipe data dari variabel tersebut dengan
perintah var_dump.

Perhatikan kode program berikut:

<?php

# inisiasi dan inisialisasi variabel

$a = 10;

$b = 5;

$c = $a + 5;

$d = $b + (10 * 5);

$e = $d - $c;

# Tampilkan data dengan perintah echo


PHP Dasar | 9

echo "Variabel a: {$a} <br>";

echo "Variabel b: {$b} <br>";

echo "Variabel c: {$c} <br>";

echo "Variabel d: {$d} <br>";

echo "Variabel e: {$e} <br>";

# mengetahui tipe data dari variabel

var_dump($e);

Kode program di atas akan menghasilkan output seperti berikut:

Variable a: 10

Variable b: 5

Variable c: 15

Variable d: 55

Variable e: 40

int(40)

Tipe Data Float

Untuk tipe data float, caranya sama saja dengan integer. Hanya saja, ia menerima data
desimal dengan angka . sebagai pembaginya.

Perhatikan dan praktikkan contoh berikut:

<?php

$nilaiMatematika = 5.1;

$nilaiIPA = 6.7;

$nilaiBahasaIndonesia = 9.3;

# hitung nilai rata-rata

$rataRata = ($nilaiMatematika + $nilaiIPA + $nilaiBahasaIndonesia) / 3;


PHP Dasar | 10

# Tampilkan data

echo "Matematika: {$nilaiMatematika} <br>";

echo "IPA: {$nilaiIPA} <br>";

echo "Bahasa Indonesia: {$nilaiBahasaIndonesia} <br>";

echo "Rata-rata: {$rataRata} <br>";

# lihat tipe data dari variabel $rataRata

var_dump($rataRata);

Kode program di atas akan menghasilkan output seperti berikut:

Matematika: 5.1

IPA: 6.7

Bahasa Indonesia: 9.3

Rata-rata: 7.0333333333333

float(7.0333333333333)

Tipe Data Boolean

Tipe data boolean hanya bisa menampung nilai true atau false.

Tipe data ini adalah tipe data yang paling simpel, akan tetapi butuh logika yang kuat untuk
bisa memanfaatkannya dengan benar.

Berikut ini contoh penggunaan tipe data boolean pada PHP:

<?php

$apakahSiswaLulus = true;

$apakahSiswaSudahUjian = false;

var_dump($apakahSiswaLulus);
PHP Dasar | 11

echo "<br>";

var_dump($apakahSiswaSudahUjian);

Output:

bool(true)

bool(false)

Tipe Data String

Tipe data string adalah tipe data yang digunakan untuk menyimpan teks. Semua teks
tersebut diapit oleh tanda petik satu ('') mau pun tanda pentik dua ("").

Pada contoh-contoh di atas, sebenarnya kita telah menggunakan tipe data ini ketika kita
memanggil fungsi echo yang diikuti setelahnya dengan teks.

Akan tetapi data string tersebut tidak kita simpan ke dalam sebuah variabel. Akan tetapi
langsung kita tampilkan dengan perintah echo.

Sekarang, saya akan beri contoh bagaimana membuat variabel, lalu mengisinya dengan
data string.

Perhatikan kode program berikut:

<?php

$namaDepan = "Ibnu"; # pakai tanda petik dua

$namaBelakang = 'Jakaria'; # pakai tanda petik satu

# menggabungkan dua variabel dengan tanda

# petik dua

$namaLengkap = "{$namaDepan} {$namaBelakang}";

# anda juga bisa menggabungkan string dengan menggunakan tanda titik (.)

$namaLengkap2 = $namaDepan . ' ' . $namaBelakang;

# [Tampilkan Data]
PHP Dasar | 12

# kita bisa memasukkan variabel lain jika menggunakan tanda petik dua

echo "Nama Depan: {$namaDepan} <br>";

# ada pun jika pakai tanda petik satu, kita tidak bisa memasukkan variabel

# di dalam string akan tetapi menggabungkannya dengan operator titik (.)

echo 'Nama Belakang: ' . $namaBelakang . '<br>';

echo $namaLengkap;

Output:

Nama Depan: Ibnu

Nama Belakang: Jakaria

Ibnu Jakaria

Terdapat beberapa hal yang perlu dibahas terkait tipe data string. Seperti misalnya
memotong teks string, me-replace suatu kata dalam string, mengubah string menjadi
UPPERCASE atau menjadi lowercase, dan sebagainya.

Hal tersebut akan kita pelajari pada akhir-akhir tutorial PHP dasar ini pada
pembahasan: Belajar Memanipulasi String Dalam PHP.

Tipe Data Array

Tipe data array berfungsi untuk menyimpan himpunan data. Himpunan data tersebut diapit
oleh tanda kurung siku ([]).

Sebagai contoh, saya memiliki 3 mahasiswa, dan saya ingin menyimpan ketiga nama
mahasiswa dalam variabel.

Maka saya bisa melakukan hal tersebut dengan menggunakan tipe data array sebagai
berikut:

<?php

$listMahasiswa = ["Wahid Abdullah", "Elmo Bachtiar", "Lendis Fabri"];

Untuk mengakses isi dari variabel array, kita bisa menggunakan indeks. Indeks dimulai
dari 0. Sehingga jika saya akan menampilkan nama pertama dari variabel $listMahasiswa,
saya akan menggunakan indeks 0 seperti di bawah:
PHP Dasar | 13

<?php

echo $listMahasiswa[0]; // "Wahid Abdullah"

Contoh di atas masih sangat sederhana sekali. Array merupakan tipe data yang cukup
kompleks. Kita tidak akan mempelajarinya sampai detil pada tahap ini agar tidak terlalu
membingungkan.

Sebagai gantinya, kita akan membahas lebih lanjut tentang array pada akhir-akhir
pertemuan Tutorial PHP Dasar ini pada pembahasan tentang: Bekerja Dengan Array Pada
PHP.

Hasil Akhir

Semua kode program di atas hanyalah potongan-potongan saja. Untuk kode program
secara utuh anda bisa lihat di bawah ini:

Kode program file tipe-data.php

Jika file tipe-data.php saya buka, saya mendapatkan hasil seperti ini:

Pembahasan Selanjutnya

Pada pertemuan ini, kita telah mempelajari tentang pengertian tipe data, macam-macamnya
pada PHP. Kita juga telah mempelajari apa itu variabel, bagaimana cara pembuatannya,
peraturan penamaan dan sebagainya.

Pada lanjutan seri tutorial dasar php ini, kita akan membahas tentang Macam-Macam


Operator Dalam PHP
PHP Dasar | 14

3. Macam Macam Operator


Daftar Isi

o Apa itu Operator?


o Operator Aritmatika
o Operator Penugasan (Assignment)
o Operator Perbandingan
o Operator Logika
o Operator Increment dan Decrement
o Hasil Akhir
o Pembahasan Selanjutnya

Tutorial ini adalah tutorial ke-3 dari seri Tutorial PHP Dasar. Pada tutorial sebelumnya kita
telah membahas tentang tipe data dan variabel dalam PHP. Pada pertemuan ini, kita akan
membahas tentang macam-macam operator dan contoh penggunaannya dalam PHP.

Apa itu Operator?

Kita telah mengerti apa itu variabel dengan berbagai macam tipe datanya. Akan tetapi
variabel saja tanpa adanya sentuhan lain, itu kurang bermanfaat.

Kita bisa memanipulasi variabel dengan berbagai cara menggunakan operator. Operator
berfungsi untuk berinteraksi dengan variabel, seperti misalnya menambahkan 2
variabel integer, atau mengalikan satu variabel dengan variabel lainnya. Semua itu
membutuhkan penggunaan operator.

Di dalam PHP, terdapat berbagai macam operator yang bisa kita gunakan. Kita akan
membahas beberapa operator yang paling dasar di dalam PHP dan juga bagaimana cara
penggunaannya.

Operator Aritmatika

Operator aritmatika adalah operator untuk menghitung operasi matematika dasar. Mulai dari:

 penjumlahan (+)
 pengurangan (-)
 perkalian (*)
 dan pembagian (/).

Bentuk paling sederhananya, ekspresi aritmatika terdiri dari dua buah operan dan satu buah
operator. Misalnya kita akan menjumlah kan angka 10 dan angka 5, kita bisa menulisnya
seperti berikut:

<?php
PHP Dasar | 15

$a = 10 + 5;

Tidak hanya 2 operan seperti contoh di atas. Di dalam PHP, kita juga bisa mendefinisikan
ekpsresi aritmatika yang lebih kompleks. Misalnya:

<?php

$a = (10 + (-3 * 5)) / 3;

Operator Aritmatika Tambahan

Selain operator aritmatika dasar yang telah disebutkan di atas, masih ada operator
aritmatika lainnya di dalam PHP. Operator tersebut adalah:

 modulus dengan simbol %


 eksponensial dengan simbol **
 dan yang terakhir adalah negasi dengan simbol - sebelum nama variabel-nya.

Perhatikan dan praktikkan kode program di bawah ini:

<?php

$a = 5;

$b = 10;

# operator aritmatika standar

echo "{$a} + {$b} = " . ($a + $b) . " <br>";

echo "{$a} - {$b} = " . ($a - $b) . " <br>";

echo "{$a} * {$b} = " . ($a * $b) . " <br>";

echo "{$a} / {$b} = " . ($a / $b) . " <br>";

# modulus

echo "{$a} % {$b} = " . ($a % $b) . " <br>";

# eksponensial

echo "{$a} ** {$b} = " . ($a ** $b) . " <br>";


PHP Dasar | 16

# negasi

echo "-a = " . (-$a) . " <br>";

Kode program di atas akan menghasilkan output sebagai berikut:

5 + 10 = 15

5 - 10 = -5

5 * 10 = 50

5 / 10 = 0.5

5 % 10 = 5

5 ** 10 = 9765625

-a = -5

Operator Penugasan (Assignment)

Operator penugasan atau assignment adalah operator yang berfungsi untuk memberi nilai


kepada suatu variabel. Nilai tersebut bisa berupa nilai tunggal yang sudah jelas, atau juga
bisa nilai yang berupa hasil dari suatu ekspresi tertentu; misal ekspresi aritmatika atau juga
ekspresi logika.

Operator penugasan dalam PHP adalah operator =. Kita telah menggunakan operator
tersebut sejak awal ketika mulai membuat variabel di dalam PHP.

Perhatikan dan praktikkan kode program di bawah:

<?php

$nilaiMatematika = 8;

$rataRata = (10 + 7 + $nilaiMatematika) / 3;

$namaDepan = "Nurul";

$namaLengkap = "{$namaDepan} Huda";

$a = 5;

$a += 10; # sama dengan $a = $a + 10;

echo var_dump($a) . "<br>";


PHP Dasar | 17

$a -= 20; # sama dengan $a = $a - 20;

echo var_dump($a) . "<br>";

$a *= 100; # sama dengan $a = $a * 100;

echo var_dump($a) . "<br>";

$a /= 10; # sama dengan $a = $a / 10;

echo var_dump($a) . "<br>";

Kode program di atas akan menghasilkan output:

int(15)

int(-5)

int(-500)

int(-50)

Operator Perbandingan

Operator perbandingan digunakan untuk membandingkan antara dua nilai. Hasil yang
didapatkan dari operator perbandingan adalah suatu nilai dengan tipe data boolean,
yaitu true atau false.

Jika pernyataan perbandingannya benar, nilai yang dikembalikan adalah true. Dan jika
pernyataan perbandingannya salah, nilai yang akan didapatkan pun menjadi false.

Berikut adalah operator perbandingan yang bisa kita gunakan dalam PHP:

Simbol Keterangan
> Lebih dari
>= Lebih dari atau sama dengan
< Kurang dari
<= Kurang dari atau sama dengan

Berikut ini contoh penggunaan operator perbandingan pada PHP. Silakan dipraktikkan agar
bisa lebih paham.

<?php
PHP Dasar | 18

$nilai = 90;

# membanding variabel

$lulus = $nilai > 80;

echo "{$nilai} > 80 = ";

var_dump($lulus);

echo "<br>";

# membandingkan langsung angka

echo "3 >= 3 = ";

var_dump(3 >= 3);

echo "<br>";

echo "3 < 6 = ";

var_dump(3 < 6);

echo "<br>";

echo "5 <= 3 = ";

var_dump(5 <= 3);

echo "<br>";

# anda juga bisa membandingkan antar 2 string

echo "'a' < 'b' = ";

var_dump('a' < 'b');

echo '<br>';

echo "'abc' < 'b' = ";


PHP Dasar | 19

var_dump('abc' < 'b');

echo '<br>';

Output:

90 > 80 = bool(true)

3 >= 3 = bool(true)

3 < 6 = bool(true)

5 <= 3 = bool(false)

'a' < 'b' = bool(true)

'abc' < 'b' = bool(true)

Perbandingan Equal dan Identik

Dalam PHP, selain perbandingan seperti di atas. Kita juga bisa menggunakan perbandingan
equal dan juga identik. Perbandingan equal tidak memperdulikan tipe data sehingga ia
menganggap sama antara 10 dan "10". Sedangkan perbandingan yang bersifat identik, ia
menganggap penting tipe data sehingga dua nilai akan dikatakan sama jika dia sama dari
sisi nilai dan sama dari sisi tipe datanya.

Simbol Keterangan
== sama secara equal
=== sama secara identik
!= tidak sama secara equal
!== tidak sama secara identik
<> sama dengan operator !=

Berikut ini kode program yang harus anda praktikkan agar lebih mudah memahami
perbedaan antara operator perbandingan == dan === atau antara operator != dan !==.

<?php

var_dump(10 == "10");

echo "<br>";

var_dump(10 === "10");

echo "<br>";
PHP Dasar | 20

var_dump(10 === 10);

echo "<br>";

var_dump(10 != "10");

echo "<br>";

var_dump(10 !== "10");

echo "<br>";

var_dump(10 <> "10");

echo "<br>";

Output:

bool(true)

bool(false)

bool(true)

bool(false)

bool(true)

bool(false)

Operator Logika

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

Operator Simbol Keterangan


and && atau and akan bernilai true jika kedua operan bernilai true.
or || atau or akan bernilai true jika salah satu operan bernilai true.
negasi ! akan membalik yang true menjadi false dan yang false menjadi true.
<?php

$a = true && true; # true


PHP Dasar | 21

$b = true and false; # false

$c = false && false; # false

$d = true || false; # false

# ekspresi berikut akan diselesaikan dari kiri ke kanan

$e = true && false && false;

# ekspresi yang berada di dalam kurung diselesaikan terlebih dahulu

$f = "a" === "a" && ((3 > 5) or 3 + 5 >= 7);

# negasi

$g = !true;

$h = !(true && !false);

# var_dump semua variabel di atas untuk melihat hasilnya

var_dump($a); echo "<br>";

var_dump($b); echo "<br>";

var_dump($c); echo "<br>";

var_dump($d); echo "<br>";

var_dump($e); echo "<br>";

var_dump($f); echo "<br>";

var_dump($g); echo "<br>";

var_dump($h); echo "<br>";

Output:

bool(true)

bool(true)

bool(false)
PHP Dasar | 22

bool(true)

bool(false)

bool(true)

bool(false)

bool(false)

Operator Increment dan Decrement

Operator increment (++) atau decrement (--) adalah jalan pintas dari operator += atau -
= yang telah berlalu penjelasannya pada bagian operator penugasan. Dan kedua operator
tersebut hanya berfungsi pada variabel saja.

Anda bisa mencoba kode program di bawah agar lebih jelas bagaimana cara kerja kedua
operator tersebut:

<?php

/**

* Increment

*/

$a = 1;

echo "a = {$a} <br>";

$a++;

echo "a = {$a} <br>";

$a++;

echo "a = {$a} <br>";

# isi dari variabel $a dimasukkan lebih dulu ke variabel $b

# lalu variabel $a menambah dirinya sendiri dengan angka 1

$b = $a++;

echo "b = {$b} <br>";

echo "a = {$a} <br>";


PHP Dasar | 23

/**

* Decrement

*/

$a--;

echo "a = {$a} <br>";

$a--;

echo "a = {$a} <br>";

# isi dari variabel $a dimasukkan lebih dulu ke variabel $b

# lalu variabel $a mengurangi dirinya sendiri dengan angka 1

$b = $a--;

echo "b = {$b} <br>";

echo "a = {$a} <br>";

Anda juga bisa menaruh operator tersebut sebelum nama variabel:

<?php

$a = 5;

--$a;

# variabel $a menambah dirinya sendiri dengan angka 1

# lalu hasil terbaru tersebut akan dimasukkan ke variabel $b

$b = --$a;

# begitu juga yang $c.

$c = ++$b;

Hasil Akhir

Hasil akhir dari tutorial ini bisa anda lihat pada kode program di bawah:

Kode program operator.php


PHP Dasar | 24

Hasil tangkapan layar

Ketika file operator.php saya eksekusi, berikut ini adalah output yang saya dapatkan:

Pembahasan Selanjutnya

Sampai disini, kita telah belajar tentang php file, variabel dan tipe data, macam-macam
operator.

Dan pada tutorial selanjutnya, kita akan mempelajari salah satu struktur kontrol pada PHP,
yaitu: Logika Percabangan dan Macam-Macamnya.

Jangan lupa bagikan tutorial ini kepada teman-temanmu, ya!

Terima kasih banyak.

4. Logika Percabangan
Daftar Isi

o Struktur Kontrol
o Macam-Macam Percabangan Pada PHP
o Percabangan If
o Contoh Menampilkan Nilai Huruf Menggunakan If
o Hal-Hal yang dianggap true atau false
PHP Dasar | 25

o Percabangan Switch Case


o Contoh Menampilkan Nilai Huruf Menggunakan Switch Case
o Ternary
o Kapan harus menggunakan if, switch case, atau ternary?
o Kesimpulan
o Pembahasan Selanjutnya

Sampai sini kita telah belajar tentang php file, variabel dan tipe data, dan macam-macam
operator.

Pada tutorial kali ini, kita akan mempelajari tentang sesuatu yang sangat penting:
yaitu logika percabangan pada PHP.

Jika anda merasa tutorial ini bermanfaat, anda bisa membagikan seri tutorial belajar PHP
dasar ini ke teman-teman anda, rekan kerja, atau ke grup sosial media.

Struktur Kontrol

Kita telah mempelajari beberapa unsur dasar dalam PHP. Kita sudah bisa membuat
variabel, memanipulasinya dengan operator, mengetahui tipe datanya, dan juga kita bisa
menampilkannya dengan perintah echo.

Akan tetapi, program yang kita tulis sejauh ini masih sangat sederhana. Semua baris
berjalan begitu saja dari atas ke bawah. Nah, bagaimana jika kita akan menampilkan
sesuatu berdasarkan kondisi? Seperti misalnya: kita akan menampilkan string “lulus” jika
variabel $nilai lebih dari 70, dan kita akan menampilkan string “tidak lulus” jika nilainya di
bawah itu?

Itu lah fungsi control structure atau struktur kontrol. Struktur kontrol memungkinkan kita
untuk melakukan tindakan di luar alur default pengeksekusian program (yaitu dari atas ke
bawah). Dengan menggunakan struktur kontrol, kita bisa mengeksekusi sebagian kode
program, dan tidak mengeksekusi sebagian yang lain.

Di dalam PHP, terdapat dua jenis struktur kontrol: yaitu logika percabangan, dan juga blok
kode perulangan.

Dalam kesempatan ini kita akan mempelajari dan mempraktikkan logika percabangan pada
PHP. Ada pun pada tutorial selanjutnya, kita akan ambil pembahasan tentang perulangan.

Macam-Macam Percabangan Pada PHP

Untuk struktur kontrol percabangan pada PHP, terdapat beberapa macam. Ada if else,
ada switch case, dan ada ternary. Dalam tutorial ini 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.
PHP Dasar | 26

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.

Contoh:

<?php

$lulus = true;

echo 'Memeriksa variable $lulus <br>';

if ($lulus) {

echo "Variabel lulus bernilai true <br>";

Kode 1: contoh sederhana penggunaan if

Coba anda ganti variabel $lulus pada Kode 1 di atas menjadi false, lalu jalankan lagi
programnya.

Pengecualian menggunakan else

Bagaimana jika ternyata kondisi yang didefinisikan di dalam if ternyata tidak terpenuhi alias
bernilai false?

Kita bisa menangani hal tersebut dengan membuat blok kode else. Kita ubah Kode 1 di atas
menjadi seperti berikut:

<?php

$nilai = 60;

echo 'Memeriksa variable $nilai <br>';

echo "Nilai: {$nilai} <br>";

if ($nilai >= 70) {

echo "Selamat, siswa !";


PHP Dasar | 27

} else {

echo "Mohon maaf, siswa tidak lulus";

echo "<br>";

Kode 2: contoh sederhana penggunaan if dan else

Membuat lebih dari 1 kondisi dengan elseif


<?php

$nilai = 60;

echo 'Memeriksa variable $nilai <br>';

echo "Nilai: {$nilai} <br>";

if ($nilai >= 85) {

echo "Sangat mengesankan!";

} elseif ($nilai >= 70) {

echo "Selamat anda lulus!";

} else {

echo "Jangan menyerah, anda pasti bisa!";

echo "<br>";

Kode 3: contoh penggunaan if, else if dan else

Contoh Menampilkan Nilai Huruf Menggunakan If

Sebagai contoh, kita akan menampilkan peringkat huruf berdasarkan variabel $nilai. Kondisi
yang akan kita gunakan adalah seperti pada Tabel 1.
PHP Dasar | 28

Rentang Nilai Peringkat Huruf


85-100 A
75-84 B
60-74 C
50-59 D
0-49 E

Tabel 1: pengkondisian peringkat huruf

Untuk membuat pengkondisian pada Tabel 1, setidaknya kita membutuhkan 5 buah


pengkondisian.

Perlu dipahami, bisa jadi PHP adalah bahasa pemrograman pertama yang anda
pelajari, sehingga anda masih beranggapan bahwa menulis kode program adalah
proses yang kaku. Bagaimana maksudnya? Yaitu anda beranggapan: untuk
membuat seperti ini caranya harus seperti ini, untuk membuat seperti itu, caranya
harus seperti itu.

Itu padangan yang salah, karena proses penulisan kode sangat bersifat fleksibel.
Tergantung dengan logika masing-masing penulisnya. Karena satu masalah yang
sama jika dikerjakan oleh orang yang berbeda, bisa menghasilkan solusi yang
berbeda pula.

Di sini saya memberi contoh sederhana bagaimana cara mengimplementasi logika


pada tabel 1, dan ini tentu saja bukan satu-satunya cara, anda bisa membuat cara anda
sendiri.

Silakan coba dan praktikkan kode program berikut:

<?php

$nilai = 56;

echo "Nilai: {$nilai} <br>";

if ($nilai >= 85 and $nilai <= 100) {

echo "Predikat: A";

} elseif ($nilai >= 75) {

echo "Predikat: B";

} elseif ($nilai >= 60) {

echo "Predikat: C";


PHP Dasar | 29

} elseif ($nilai >= 50) {

echo "Predikat: D";

} elseif ($nilai >= 0) {

echo "Predikat: E";

} else {

echo "Nilai tidak valid.";

echo "<br>"; # untuk membuat baris baru pada HTML

Kode 4: implementasi pengkondisian peringkat huruf dari table 1

Coba ubah isi dari variabel $nilai lalu refresh halaman web untuk memeriksa apakah
pengkondisian yang kita buat sudah benar atau tidak.

Hal-Hal yang dianggap true atau 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.

Apa saja? Berikut ini adalah beberapa di antaranya:

Bilangan numeric selain 0 dianggap true

Semua bilangan numeric selain 0, maka dianggap true. Ada pun variabel integer mau


pun float dengan nilai 0, maka ia dianggap false jika kita masukkan dalam kondisi if.

<?php

$nilai = 0;

if ($nilai) {

echo "nilai: {$nilai} dianggap true";

} else {

echo "nilai: {$nilai} dianggap false";

Kode 5: numeric bernilai 0 dianggap false dan selain itu maka dianggap true
PHP Dasar | 30

Anda bisa mengganti isi dari variabel $nilai menjadi angka negatif mau pun positif dan lihat
seperti apa hasilnya.

String yang tidak kosong dianggap true

String kosong juga dianggap akan dianggap false, dan string yang tidak kosong akan
dianggap true.

Anda bisa mencoba kode program pada Kode 5 di bawah ini:

<?php

$nama = "";

if ($nama) {

echo "dianggap true";

} else {

echo "dianggap false";

Kode 5: string kosong dianggap false

Coba ganti isi dari variabel $nama menjadi nilai string yang lain, lalu lihat seperti apa
hasilnya.

Nilai null dianggap false

Selain itu, nilai null juga dianggap false dalam PHP.

<?php

$nilai = null;

if ($nilai) {

echo "dianggap true";

} else {

echo "dianggap false";

}
PHP Dasar | 31

if (@$namaLengkap) {

echo "Jika variabel namaLengkap telah didefinisikan sebelumnya dan ia bukan 0 atau

string kosong atau null";

} else {

echo "Jika variabel namaLengkap tidak pernah didefinisikan sebelumnya. Tanda @

membuatnya bernilai NULL jika belum didefinisikan sebelumnya";

Kode 6: nilai null dianggap false

Anda bisa memperhatikan dalam contoh Kode 6 di atas, terdapat tanda @ sebelum


variabel $namaLengkap. Tanda @ tersebut berfungsi untuk memberi nilai null terhadap
suatu variabel yang tidak pernah didefinisikan sebelumnya.

Ini membuat program kita tidak error, karena menampilkan atau menggunakan sebuah
variabel yang sebelumnya tidak pernah didefinisikan akan menyebabkan error.

Percabangan Switch Case

Percabangan yang kedua adalah switch .. case. Ini adalah alternatif yang bisa kita gunakan
untuk memecahkan permasalahan logika dalam PHP.

Akan tetapi, penggunaan switch .. case ditujukan untuk kasus-kasus yang lebih sederhana


dari pada if .. else.

Perhatikan Kode 7 berikut ini lalu praktikkan.

<?php

$url = '/about';

switch ($url) {

case '/':

echo 'Selamat datang di dashboard.';

break;

case '/about':
PHP Dasar | 32

echo 'Selamat datang di halaman about.';

break;

case '/contact':

echo 'Selamat datang di halaman kontak.';

break;

default:

echo 'Maaf halaman yang anda cari tidak ditemukan.';

echo '<br>';

Kode 7: contoh sederhana switch case

Silakan anda ubah nilai dari variable $url pada Kode 7 di atas, lalu refresh halaman web.
Dan lihat apakah percabangan kita dengan switch case telah berfungsi dengan benar atau
tidak.

Jika tanpa Break

Dalam blok kode switch .. case, kita harus menggunakan statement break. Karena kalau


tidak, setelah sistem berhasil menemukan case yang bernilai true, dia akan tetap
mengeksekusi case yang dibawahnya meskipun kondisinya sudah tidak sesuai lagi.

Coba hapus setiap perintah break pada Kode 7 hingga menjadi seperti pada Kode


8 berikut:

<?php

$url = '/about';

switch ($url) {

case '/':

echo 'Selamat datang di dashboard.';

case '/about':

echo 'Selamat datang di halaman about.';


PHP Dasar | 33

case '/contact':

echo 'Selamat datang di halaman kontak.';

default:

echo 'Maaf halaman yang anda cari tidak ditemukan.';

echo '<br>';

Kode 8: menghapus statement break pada switch .. case

Jalankan halaman web, lalu perhatikan apa yang terjadi.

Contoh Menampilkan Nilai Huruf Menggunakan Switch Case

Kita telah memiliki kondisi peringkat nilai huruf pada Tabel 1 di atas. Kita juga telah
menyelesaikannya menggunakan if else.

Sekarang, kita ingin mencoba mengimplementasikan tabel logika tersebut dengan


menggunakan switch ... case.

Bagaimana caranya?

Jawabannya adalah: tidak bisa.

Serius?

Ya!

Karena switch ... case hanya menerima satu variabel saja, dan ia hanya mengeksekusi
setiap case dengan nilai yang sesuai.

Dan kita tidak bisa membuat case dengan sebuah ekspresi logika.

Sehingga untuk menerapkan logika pengkondisian pada Tabel 1, kita harus menggunakan if


... else.

Ternary

Ternary adalah cara singkat mendefinisikan logika percabangan. Ia mirip dengan if


else (tanpa elseif).

Dan ternary didefinisikan hanya dalam satu baris saja.

Misal kita punya blok if else seperti ini:

<?php
PHP Dasar | 34

$nilai = 50;

if ($nilai > 70) {

echo "Selamat, anda lulus!";

} else {

echo "Mohon maaf, anda harus mengulang";

echo "<br>";

Kode 9: contoh if else

Maka anda bisa mengubahnya seperti ini:

<?php

$nilai = 50;

echo $nilai > 70 ? "Selamat, anda lulus!" : "Mohon maaf, anda harus mengulang";

Kode 10: contoh sederhana penggunaan ternary

Bagaimana, lebih singkat kan? Anda hanya perlu tanda ? dan tanda :.

Anda juga bisa menggunakannya untuk mengisi sebuah nilai ke dalam variabel seperti
pada Kode 10 berikut:

<?php

$nilai = 50;

$pesan = $nilai > 70 ? "Selamat, anda lulus!" : "Mohon maaf, anda harus mengulang";
PHP Dasar | 35

Kode 10: contoh sederhana penggunaan ternary untuk pengisian variabel

Null Colleasing Operator

Operator null colleasing didefinisikan dengan simbol ?? dan ?:. Ia adalah operator yang


digunakan untuk memeriksa antar dua operan: jika operan pertama tidak null atau tidak
dianggap false, maka ia akan dipilih. Jika tidak, maka operan ke dua yang akan dipilih.

Intinya, dengan operator ini, anda bisa menyingkat statement tenary berikut:

<?php

echo @$namaPeserta ? $namaPeserta : "Nama tidak diisi";

Menjadi:

<?php

echo @$namaPeserta ?: "Nama tidak diisi";

Lebih singkat bukan?

Kapan harus menggunakan if, switch case, atau ternary?

Kapan harus menggunakan if?

Ketika anda memiliki logika yang cukup rumit. Melibatkan lebih dari satu variabel
atau juga membutuhkan ekspresi logika yang panjang, maka gunakanlah if.

Kapan harus menggunakan ternary?

Ketika anda memiliki blok if sederhana yang hanya terdiri dari  if dan else saja, anda
bisa menggunakan ternary untuk mengubah kode anda menjadi lebih singkat.

Kapan harus menggunakan switch .. case?

Sejujurnya saya pribadi sangat jarang sekali menggunakan switch case. Anda bisa
menggunakan switch case jika cabang pengkondisian anda hanya melibatkan satu
variabel saja dan tidak mengandung operator logika semisal lebih dari ( >) atau
kurang dari (<) dan sebagainya.

Kesimpulan

Struktur kontrol memungkinkan kita untuk melakukan tindakan di luar


alur default pengeksekusian program: yaitu dari atas ke bawah. Dengan menggunakan
struktur kontrol, kita bisa mengeksekusi sebagian kode program, dan tidak mengeksekusi
sebagian yang lain.
PHP Dasar | 36

Di dalam PHP, terdapat dua jenis struktur kontrol: yaitu logika percabangan, dan juga blok
kode perulangan.

Untuk logika percabangan, terdapat dua jenis utama: yaitu if .. else dan switch .. case. Juga
ada alternatif lain seperti ternary dan null colleasing operator yang kesemuanya telah kita
dalam artikel ini.

Pembahasan Selanjutnya

Pada tutorial selanjutnya, kita masih berada dalam pembahasan struktur kontrol pada PHP.
Dan yang akan kita bahas adalah: Struktur Kontrol Blok Perulangan.

Jangan lupa share tutorial ini, ya!

Terima kasih banyak.

5. Perulangan
Daftar Isi

o Struktur Kontrol
o Fungsi Perulangan
o Jenis-Jenis metode perulangan pada PHP
o Perulangan for
o Perulangan while
o Perulangan do while
o Perulangan Foreach
o Perulangan Rekursif
o Pembahasan Selanjutnya

Struktur Kontrol

Pada pembahasan logika percabangan di pertemuan sebelumnya, kita telah mengetahui


fungsi struktur kontrol. Struktur kontrol membuat developer bisa untuk mengeksekusi
sebagian penggalan kode program, dan tidak mengeksekusi sebagian yang lain.

Di tutorial kali ini, kita akan membahas jenis lain dari struktur kontrol pada PHP: yaitu
perulangan.
PHP Dasar | 37

Fungsi Perulangan

Pada tutorial tentang variabel PHP, kita telah mencoba membuat array lalu menampilkan
salah satu item dari array tersebut dengan menggunakan indeks.

Nah, pertanyaannya, jika array tersebut memiliki ratusan atau ribuan item, bagaimana kita
akan menampilkannya?

Apakah kita akan menulis perintah echo sebanyak jumlah item pada array tersebut?

Oke, itu kalau kita tahu jumlah item pada array tersebut. Kalau tidak tahu, bagaimana?

Di sini lah kenapa kita membutuhkan perulangan!

Gambar 1: ilustrasi. Sumber gambar: link.

Dengan blok kode perulangan, kita bisa membuat suatu statement atau perintah dalam PHP
dengan satu kali tulis. Untuk kemudian kita biarkan sistem yang akan menjalankannya
berulang kali.

Misal kita ingin menampilkan tulisan: “Saya berjanji tidak akan mengulangi


lagi” sebanyak 100 kali. Kita cukup menggunakan satu perintah echo saja, lalu kita
masukkan kode tersebut ke dalam blok kode perulangan, dan mengaturnya agar sistem
mengeksekusinya sebanyak 100 kali. Keren bukan?

Lalu, pertanyaannya adalah: bagamaina caranya?

Jenis-Jenis metode perulangan pada PHP

Sebelum menjawab pertanyaan tersebut. Kita ketahui dulu bahwa di dalam PHP, terdapat
beberapa metode perulangan yang bisa kita gunakan. Mulai dari:
PHP Dasar | 38

 perulangan for
 perulangan while
 perulangan do-while
 perulangan foreach
 purulangan rekursif

Pada tutorial ini kita akan mencobanya satu-persatu.

Perulangan for

Perulangan for adalah perulangan yang paling simpel. Kita bisa menggunakan metode ini
dengan menentukan jumlah perulangan yang kita inginkan. Misalkan saya ingin
menampilkan tulisan “Saya berjanji tidak akan mengulangi” sebanyak 100x, saya bisa
melakukannya seperti ini:

<?php

for ($i = 0; $i < 100; $i++) {

echo "Saya berjanji tidak akan mengulangi <br>";

Perulangan for membutuhkan 3 buah ekspresi yang mana ekspresi tersebut masing-masing


dipisahkan oleh tanda titik koma (;).

Penjelasan:

 ekspresi pertama digunakan untuk menginisialisasi variabel


 ekspresi kedua digunakan untuk boolean statement, yang mana perulangan akan
terus dilakukan selama statemen ini bernilai true
 ekspresi ketiga adalah suatu aksi yang akan selalu dijalankan setiap kali satu
perulangan telah selesai dilakukan.

Contoh-contoh yang lain dari perulangan for:

<?php

# inisialisasi variabel tidak harus dari angka 0

for ($i = 1; $i <= 10; $i++) {

echo "Perulangan ke-{$i} <br>";

Kita juga bisa menggunakan nama variabel sesuka kita:


PHP Dasar | 39

<?php

for ($x = 1; $x < 11; $x++) {

echo "Nilai x = {$x} <br>";

Kita juga bisa menggunakan kelipatan lebih dari 1:

<?php

for ($i = 2; $i < 100; $i += 2) {

echo "Nilai i = {$i} <br>";

Atau hitung mundur:

<?php

for ($i = 10; $i > 0; $i--) {

echo "Nilai i = {$i} <br>";

Atau perulangan di dalam perulangan:

<?php

# kode program ini akan menampilkan * dalam bentuk persegi

# dengan ukuran 5x5

for ($i = 0; $i < 5; $i++) {

for ($j = 0; $j < 5; $j++) {

echo "* ";

}
PHP Dasar | 40

echo "<br>";

Menampilkan Array

Kita juga bisa menampilkan seluruh isi dari suatu array menggunakan perulangan for.

Kita bisa mengetahui panjang dari suatu array dengan perintah count(array).

<?php

$listMahasiswa = ['Nurul Huda', 'Wahid Abdullah', 'Elmo Bachtiar'];

for ($i = 0; $i < count($listMahasiswa); $i++) {

echo "Nama: {$listMahasiswa[$i]} <br>";

Perintah Break dan Continue

Kita bisa men-skip satu step perulangan dengan perintah continue. Kita juga


bisa memberhentikan proses perulangan dengan perintah break sebelum ia sampai pada
iterasi yang terakhir.

Perhatikan contoh berikut:

<?php

# inisialisasi variabel tidak harus dari angka 0

for ($i = 1; $i <= 50; $i++) {

if ($i % 10 === 0) {

continue; # skip perulangan jika nilai $i habis dibagi 10

echo "Perulangan ke-{$i} <br>";


PHP Dasar | 41

if ($i > 40) {

break; # hentikan perulangan jika $i lebih dari 20

Contoh di atas akan men-skip pada setiap kelipatan 10. Dan dia juga akan berhenti secara
paksa sebelum variabel $i kurang dari atau sama dengan 50.

Dengan mempraktikkan contoh-contoh di atas, kita sekarang sudah memahami dan juga
punya gambaran yang jelas tentang bagaimana cara kerja perulangan for di dalam bahasa
pemrograman PHP.

Perulangan while

Jenis perulangan yang kedua adalah perulangan while.

Ia hampir sama dengan for. Akan tetapi ia lebih ditujukan untuk kasus-kasus di mana kita
tidak mengetahui secara pasti ada berapa jumlah perulangan yang harus dilakukan.

Contohnya adalah: ketika kita membuat game seperti Flappy Bird, maka kita akan selalu
menggambar pipa baru selama user belum mati.

Kondisi “selama user belum mati”, membuat kita tidak benar-benar tahu berapa kali pipa
baru akan di-generate dan ditampilkan pada layar. Bisa jadi 100 kali, 500 kali atau bahkan
hanya 3 kali saja.

Nah, dalam kasus-kasus yang tidak jelas seperti itu, perulangan yang cocok untuk kita
gunakan adalah perulangan while.

Berikut ini adalah contoh penggunaan while while:

<?php

$i = 0;

# perulangan ini akan dilakukan selama nilai $i kurang dari 20.

while ($i < 20) {

echo "Perulangan ke-{$i} <br>";


PHP Dasar | 42

$i++;

Penjelasan:

Perulangan while hanya menerima satu ekspresi saja: yaitu ekspresi boolean. Di mana


perintah yang ada di dalam blok kode while, akan senantiasa dilakukan secara berulang-
ulang selama ekspresi boolean tersebut bernilai true.

Perulangan tanpa batas yang jelas

Contoh berikut akan menampilkan nilai $i selama ia bukan kelipatan 3. Dan kita akan
mengubah nilai $i secara random pada setiap perulangan dilakukan.

Silakan praktikkan kode berikut, lalu refresh halaman berkali-kali (kita tidak tahu berapa kali
sistem akan melakukan perulangan yang kita minta).

<?php

# kita mulai dari angka 1

$i = 1;

# perulangan akan dilakukan selama variabel $i bukan kelipatan 3

while ($i % 3 !== 0) {

echo "Nilai i = {$i} <br>";

# ubah nilai $i secara random dari angka 1-100

$i = rand(1, 100);

Perulangan tanpa batas dengan while

Dengan perulangan while, kita bisa memerintahkan sistem untuk melakukan perulangan
tanpa batas.

Bagaimana bisa? Itu bisa terjadi jika ekspresi boolean yang kita tulis selalu bernilai true.
Entah nilai true secara langsung, atau nilai true yang tidak langsung misalkan ekspresi: 1 >
0 (satu lebih dari nol).

NB: Jangan lakukan! Ini hanya ilustrasi:


PHP Dasar | 43

<?php

while (true) {

echo "Jangan lakukan ini, atau PC anda akan macet!! <br>";

Perintah Break dan Continue

Sama seperti for, dengan while kita juga bisa men-skip suatu perulangan dengan


perintah continue. Dan kita juga bisa memberhentikan proses perulangan sebelum ia
mencapai akhir, dengan perintah break;

Perhatikan contoh berikut:

<?php

# kita mulai dari angka 1

$i = 1;

# perulangan akan dilakukan selama variabel $i bukan kelipatan 3

while ($i % 3 !== 0) {

if ($i % 5 === 0) {

# skip ke perulangan selanjutnya jika $i adalah kelipatan 5

# jangan lupa di-random dulu agar tidak terjadi perulangan tanpa batas

$i = rand(1, 500);

continue;

echo "Nilai i = {$i} <br>";

if ($i > 50 && $i < 60) {

break; # jika $i bernilai lebih dari 50 dan kurang dari 60 maka stop paksa
PHP Dasar | 44

# ubah nilai $i secara random dari angka 1-500

$i = rand(1, 500);

Dengan mempraktikkan contoh-contoh di atas, seharusnya kita sekarang sudah memahami


bagaimana cara kerja while di dalam bahasa pemrograman PHP.

Perulangan do while

Perulangan do ... while sama persis dengan perulangan while. Ia sama-sama mengevaluasi


ekspresi boolean. Selama ekspresi tersebut bernilai true, perulangan akan terus dilakukan.
Dan jika nilai boolean tersebut false, perulangan akan dihentikan.

Bedanya hanya satu:

 Kalau dalam metode while, ekspresi boolean akan diperiksa terlebih dahulu sebelum


memulai perulangan.
 Ada pun dengan do ... while, ia akan mengeksekusi perulangan terlebih dahulu, baru
setelah itu ia akan mengevaluasi kondisi boolean.

Apa konsekuensinya?

 Pada while, jika kondisi pertama kali bernilai false, perulangan tidak akan dieksekusi
sama sekali.
 Sedangkan pada do...while, perulangan akan tetap dilakukan satu kali jika kondisi
pertama sudah bernilai false.

Agar lebih jelas, perhatikan dan coba contoh berikut:

<?php

while (false) {

echo "Perulangan ke-1 dengan while! <br>";

do {

echo "Perulangan ke-1 dengan do while! <br>";

} while (false);
PHP Dasar | 45

Pada kode program di atas, perintah di dalam perulangan while sama sekali tidak


dieksekusi, karena ekspresi boolean-nya bernilai false.

Sedangkan dalam perulangan do ... while, perintah tersebut akan dieksekusi terlebih dahulu,
baru setelah itu ia akan mengevaluasi kondisi boolean, jika true dia akan melakukan
perulangan selanjutnya, dan jika tidak, dia akan berhenti.

Perulangan Foreach

Jenis perulangan selanjutnya adalah menggunakan 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.

Sintaksnya ada dua versi, kita bisa menggunakan yang mana saja sesuai dengan
kebutuhan.

Sintaks singkat

Sintaks perulangan foreach versi singkat adalah sebagai berikut:

<?php

$listMahasiswa = ['Nurul Huda', 'Wahid Abdullah', 'Elmo Bachtiar'];

foreach ($listMahasiswa as $mahasiswa) {

echo "Nama : {$mahasiswa} <br>";

Penjelasan:

 Perulangan foreach (versi singkat) hanya menerima 2 buah variabel yang dipisahkan


kata kunci as
 Variabel pertama adalah variabel bertipe data array
 Dan variabel kedua adalah variabel item dari array tersebut

Kelebihan menggunakan foreach:

 Sintaks lebih singkat dari pada perulangan for untuk menampilkan array


 Item array per-indeks sudah disimpan dalam satu variabel sehingga kita tidak perlu
memanggil indeksnya lagi
PHP Dasar | 46

Sintaks lengkap

Nah, untuk sintaks foreach versi lengkap. Kita ketambahan beberapa ekspresi yaitu


tanda => dan variabel $key (nama variabelnya bebas).

Untuk lebih jelasnya silakan perhatikan kode program berikut:

<?php

$listMahasiswa = ['Nurul Huda', 'Wahid Abdullah', 'Elmo Bachtiar'];

foreach ($listMahasiswa as $key => $mahasiswa) {

echo "[{$key}] Nama : {$mahasiswa} <br>";

Penjelasan:

 Sintaks foreach versi lengkap ketambahan tanda => dan satu variabel


 Variabel $key di dalam kode program di atas berisi nilai indeks dari iterasi yang
sedang dilakukan
 Variabel $key bisa menggunakan nama bebas.

Kelebihan:

 Dengan menggunakan sintaks lengkap, kita bisa mengetahui urutan iterasi dari
perulangan yang sedang dilakukan.
 Sehingga kita bisa memanfaatkannya untuk proses pengkondisian tertentu.

Perulangan Rekursif

Jenis perulangan terakhir yang bisa kita gunakan dalam bahasa pemrograman PHP adalah:
perulangan rekursif.

Semua metode perulangan yang telah kita coba di atas adalah metode perulangan iteratif.
Sifatnya sama: yaitu melakukan perulangan pertama, kedua, ketiga, dan seterusnya.

Berbeda dengan perulangan rekursif yang memiliki cara kerja yang sangat berbeda.

Ia dikatakan rekursif karena perulangannya yang tidak “berhenti”. Ia adalah fungsi yang


senantiasa memanggil dirinya sendiri.

Sebagai ilustrasi, bayangkan kita memiliki 2 buah cermin. Lalu kita letakkan 2 cermin
tersebut saling berhadapan.

Apa yang akan terjadi? Bayangan yang dihasilkan akan saling berpantulan tanpa akhir,
bukan?
PHP Dasar | 47

Atau, sebagai ilustrasi yang lain: misalkan kita me-remote komputer yang sedang me-
remote kita dengan Team Viewer. Kita akan mendapatkan hasil yang kira-kira seperti efek
cermin tadi:

Gambar 2: ilustrasi fungsi rekursif. Sumber gambar: link.

Untuk perulangan rekursif, kita akan mempelajarinya pada pembahasan tersendiri


yaitu: Belajar Fungsi Rekursif PHP.

Pembahasan Selanjutnya

Pada tutorial selanjutnya, insyaallah kita akan membahas tentang Fungsi. Fungsi adalah
suatu kumpulan baris kode untuk melakukan suatu tugas tertentu. Yang mana tugas
tersebut bisa kita eksekusi berkali-kali di banyak tempat yang berbeda.

Lebih jelasnya: langsung saja buka pembahasan tentang Belajar Fungsi pada PHP.

Oiya, jangan lupa share seri belajar PHP dasar ini, ya!

6. Belajar Fungsi (1/3)


Daftar Isi

o Pengertian Fungsi
PHP Dasar | 48

o Cara Mendefinisikan Fungsi


o Cara Memanggil Fungsi
o Parameter Pada Fungsi
o Fungsi dengan lebih dari satu parameter
o Membatasi Tipe Data Parameter
o Parameter Default
o Pembahasan Selanjutnya

Kita masih berada di seri tutorial belajar php dasar. Kita telah mempelajari beberapa unsur
penting pada PHP: mulai dari variabel dan tipe data, macam-macam operator,
hingga control structure pada PHP.

Pada pertemuan kali ini, kita akan membahas tentang fungsi.

Pengertian Fungsi

Fungsi adalah suatu kumpulan blok kode, yang menerima suatu inputan, melakukan satu
tugas tertentu, dan secara opsional ia bisa mengembalikan suatu nilai. Dalam tutorial-tutorial
sebelumnya, kita telah mencoba beberapa fungsi bawaan php seperti var_dump dan count.

PHP memang sudah datang dengan berbagai macam fungsi untuk memudahkan pekerjaan
kita. Akan tetapi kita tetap bisa membuat fungsi sendiri, untuk menyelesaikan tugas-tugas
tertentu sehingga kita bisa menggunakan fungsi tersebut tanpa harus menulis kode program
berulang-ulang.

Cara Mendefinisikan Fungsi

Mendefinisikan fungsi baru pada PHP berarti kita menuliskan suatu tugas tertentu, yang bisa
kita eksekusi kemudian.

Fungsi pada PHP memiliki nama, dan juga bisa menerima parameter.

Secara sederhana anda bisa mendefinisikan fungsi sebagai berikut:

<?php

function namaFungsi () {

// blok kode program

Peraturan pemberian nama fungsi, sama dengan nama variabel. Hanya saja ia tidak bisa
menggunakan nama fungsi yang sama seperti fungsi bawaan php seperti
misalnya var_dump, empty, count, dan lain-lain. Kita juga tidak bisa mendefinisikan satu
nama fungsi yang sama sebanyak 2 kali.
PHP Dasar | 49

Contoh yang lain, berikut ini adalah fungsi yang bertugas untuk menampilkan teks
dengan echo.

<?php

function sapaPengunjung () {

echo "<h1>Halo, selamat datang!</h1>";

echo "<p>Terima kasih telah berkunjung ke situs kami.</p>";

Bagaimana cara memanggilnya?

Cara Memanggil Fungsi

Di atas, kita telah membuat satu fungsi dengan nama sapaPengunjung(). Kita juga telah
mendefinisikan tugas apa yang harus fungsi tersebut lakukan.

Nah.. sekarang kita akan memanggil fungsi tersebut.

Caranya sangat mudah, kita tinggal menulis nama fungsi tersebut lalu diiringi dengan tanda
kurung () setelahnya.

Seperti berikut ini:

<?php

sapaPengunjung();

Perintah di atas, akan menghasilkan teks html yang di-echo melalui


fungsi sapaPengunjung().

Parameter Pada Fungsi

Kita sudah singgung pada bagian pengertian fungsi, bahwa fungsi pada PHP bisa menerima
suatu nilai atau input. Nilai atau input tersebut, kita katakan sebagai parameter fungsi.

Parameter fungsi adalah suatu nilai yang kita lempar kedalam sebuah fungsi, nilai tersebut
bisa berupa apa saja. Bisa berupa string, boolean, integer, bahkan ia juga bisa berupa
fungsi yang lainnya (bagian ini insyaallah kita bahas pada tutorial fungsi bagian 2).

Sebagai contoh, kita akan mengubah fungsi sapaPengunjung() yang telah kita buat di atas.

Kita akan menambahkan parameter $nama yang berisi nama pengunjung. Nama


pengunjung tersebut akan kita tampilkan dengan perintah echo.
PHP Dasar | 50

<?php

function sapaPengunjung ($nama) {

echo "<h1>Halo {$nama}, selamat datang!</h1>";

echo "<p>Terima kasih telah berkunjung ke situs kami.</p>";

Dan saat memanggil fungsi tersebut, kita harus memasukkan parameter yang diminta. Kalau
tidak, maka PHP akan menampilkan pesan error.

<?php

sapaPengunjung("Nurul Huda");

Kita juga bisa memanggil fungsi yang telah kita buat tersebut berkali-kali, bahkan juga
dengan parameter yang berbeda-beda!

<?php

sapaPengunjung("Nurul Huda");

sapaPengunjung("Ibnu Zakariyya");

sapaPengunjung("Anshori Akbar");

Fungsi dengan lebih dari satu parameter

Kita telah mencoba fungsi dengan satu parameter. Sebenarnya, kita juga bisa
mendefinisikan lebih dari satu parameter.

Misal pada fungsi sapaPengunjung() di atas, kita akan memberikan ucapan khusus bagi
pengunjung yang telah telah mengunjungi situs kita lebih dari 10 kali.

Bagaimana kita tahu bahwa pengunjung tersebut telah mengunjungi lebih dari 10 kali? Kita
akan menambahkan parameter ke-2, yaitu jumlah kunjungan.

<?php

function sapaPengunjung ($nama, $jumlahKunjungan) {


PHP Dasar | 51

echo "<h1>Halo {$nama}, selamat datang!</h1>";

echo "<p>Terima kasih telah berkunjung ke situs kami.</p>";

if ($jumlahKunjungan > 10) {

echo "<p>Kami memiliki hadiah ebook gratis untuk anda karena anda telah mengunjungi

situs kami sebanyak {$jumlahKunjungan} kali.</p>";

Saat memanggil fungsi, jangan lupa untuk menambahkan parameter kedua.

<?php

sapaPengunjung("Nurul Huda", 20);

Membatasi Tipe Data Parameter

Kita telah membuat fungsi yang menerima 2 buah parameter. Parameter pertama kita beri
nama $nama, ia dimaksudkan untuk menerima tipe data string. Dan parameter kedua kita
beri nama $jumlahKunjungan, ia dimaksudkan untuk menerima tipe data integer.

Akan tetapi.

Jika kita mau perhatikan, sebenarnya kita bisa memasukkan tipe data apa pun di situ.
Bisa string, integer, boolean, dan sebagainya.

<?php

sapaPengunjung(true, "Nurul Huda");

Itu terjadi karena kita tidak membatasi tipe data apa yang harus dimasukkan ketika
memanggil fungsi sapaPengunjung.

Tentu saja dengan memasukkan parameter dengan tipe data yang tidak sesuai keinginan,
akan membuat fungsi yang telah kita buat tersebut menjadi bekerja tidak seperti yang kita
harapkan.

Akan tetapi tenang saja. Karena sejak PHP 7, kita bisa membatasi dan menentukan tipe
data untuk masing-masing parameter pada fungsi yang kita buat.
PHP Dasar | 52

<?php

function sapaPengunjung (string $nama, int $jumlahKunjungan) {

# ...

Pada kode program di atas kita mendefinisikan parameter $nama dengan tipe data string,


dan parameter $jumlahKunjungan dengan tipe data integer.

Coba anda lakukan perintah berikut dan perhatikan pesan error yang anda dapatkan:

<?php

sapaPengunjung("Nurul Huda", "20");

Parameter Default

Terkadang kita ingin bahwa suatu fungsi memiliki parameter opsional atau parameter yang
tidak wajib diisi. Seperti untuk me-resize gambar, kita mungkin akan membuat fungsi
dengan nama resize() yang menerima tiga parameter: yaitu
parameter $urlGambar, $lebar dan $tinggi.

Fungsi tersebut akan mengubah ukuran gambar $urlGambar menjadi ukuran baru yaitu


sesuai dengan parameter $lebar dan $tinggi.

Akan tetapi yang kita inginkan, parameter $tinggi ini opsional, tidak wajib diijisi. Jika
variabel $tinggi tidak diisi, maka otomatis gambar akan di-resize sesuai dengan ukuran
rasionya.

Untuk melakukan hal tersebut, kita bisa melakukan kurang lebih seperti ini:

<?php

function resize (string $urlGambar, float $lebar, float $tinggi = null) {

if (!$tinggi) {

# jika parameter $tinggi null, maka resize gambar sesuai rasio

} else {

# jika ternyata variabel $tinggi ada nilainya, maka resize

# sesuai dengan nilai tersebut


PHP Dasar | 53

Atau kita bisa ubah fungsi kita sebelumnya yaitu sapaPengunjung dengan menjadikan


kedua parameternya memiliki nilai default.

<?php

function sapaPengunjung (string $nama = 'Anonimous', int $jumlahKunjungan = 0) {

echo "<h1>Halo {$nama}, selamat datang!</h1>";

echo "<p>Terima kasih telah berkunjung ke situs kami.</p>";

if ($jumlahKunjungan > 10) {

echo "<p>Kami memiliki hadiah ebook gratis untuk anda karena anda telah mengunjungi

situs kami sebanyak {$jumlahKunjungan} kali.</p>";

Pembahasan Selanjutnya

Anda bisa istirahat sebentar sambil menyeduh kopi karena pembahasan kita tentang fungsi
masih belum selesai. Kita masih memiliki dua part lagi.

Pada pembahasan selanjutnya, kita akan mempelajari fungsi yang mengembalikan nilai,


callback/closure, dan arrow function.

7. Belajar Fungsi (2/3)


Daftar Isi

o Fungsi Yang Mengembalikan Nilai


o Memperjelas Tipe Data Hasil Kembalian Fungsi
o Fungsi Anonim atau Closure
o Fungsi Anonim Sebagai Parameter Fungsi Lain
o Fungsi Anonim Sebagai Callback
PHP Dasar | 54

o Arrow Function
o Pembahasan Selanjutnya

Pada pertemuan sebelumnya, kita telah membahas bagian pertama dari pembahasan fungsi


pada PHP. Kita telah membahas tentang fungsi mulai dari pengertiannya, penerapannya
secara sederhana, dan kita juga telah membahas tentang hal-hal yang berkaitan tentang
parameter fungsi pada PHP.

Pada tutorial kali ini, kita masih dalam pembahasan fungsi. Kita akan mempelajari
tentang return function, fungsi anonim, callback dan juga arrow function.

Dan insyaallah pada tutorial selanjutnya akan ada pembahasan fungsi bagian ke-3 yang
akan membahas tentang perulangan rekursif.

Fungsi Yang Mengembalikan Nilai

Secara umum fungsi terbagi menjadi dua:

1. Fungsi yang tidak mengembalikan nilai


2. Fungsi yang mengembalikan nilai

Untuk fungsi yang tidak mengembalikan nilai, sudah kita pelajari pada tutorial fungsi bagian
1.

Sedangkan fungsi yang mengembalikan nilai, ia adalah suatu fungsi yang jika dipanggil, dia
akan mengembalikan suatu nilai tertentu yang bisa kita simpan pada variabel.

Banyak fungsi bawaan PHP yang mengembalikan nilai, contohnya adalah


fungsi isset, empty, is_null, count, dan lain-lain.

Berikut ini adalah contoh beberapa fungsi bawaan PHP yang mengembalikan suatu nilai
tertentu:

<?php

$a = ['Merah', 'Kuning', 'Hijau'];

$apakahVariabelABernilaiNull = is_null($a); # hasilnya false

$apakahVariabelABertipeArray = is_array($a); # hasilnya true

$panjangA = count($a); # 3

$passwordTerenkripsi = md5('12345');
PHP Dasar | 55

var_dump($apakahVariabelABernilaiNull);

echo "<br>";

var_dump($apakahVariabelABertipeArray);

echo "<br>";

var_dump($panjangA);

echo "<br>";

var_dump($passwordTerenkripsi);

echo "<br>";

Jika kita perhatikan contoh di atas, kita akan dapati bahwa:

 Fungsi is_null() akan mengembalikan dua nilai: true atau false. Nilai true jika


parameter yang dilempar adalah null, dan bernilai false jika parameter yang dilempar
tidak bernilai null.
 Fungsi is_array() sama dengan fungsi is_null(), hanya saja ia bertugas untuk
memeriksa apakah parameter yang dilempar adalah array atau bukan.
 Fungsi count() akan mengembalikan nilai integer berupa panjang dari array yang
dilemparkan sebagai parameter.
 Fungsi md5 mengembalikan sebuah string hasil enkripsi dari parameter yang
dilempar.

Membuat fungsi yang mengembalikan nilai

Misalkan kita akan membuat suatu fungsi untuk menghitung volume balok dengan
rumus: panjang * lebar * tinggi.

Fungsi tersebut akan menerima 3 buah parameter dengan tipe data float.

Dan ketika fungsi tersebut dipanggil, ia akan mengembalikan hasil perhitungan rumus
volume balok berdasarkan tiga parameter yang kita lemparkan.

<?php

function hitungVolumeBalok (float $panjang, float $lebar, float $tinggi) {

$luasBalok = $panjang * $lebar * $tinggi;

return $luasBalok;

}
PHP Dasar | 56

Atau bisa kita singkat dengan langsung me-return hasil kali dari kesemua parameter:

<?php

function hitungVolumeBalok (float $panjang, float $lebar, float $tinggi) {

return $panjang * $lebar * $tinggi;

Saat memanggil fungsi tersebut, kita bisa menyimpan nilai yang dikembalikan ke dalam
sebuah variabel, atau kita juga bisa lakukan untuk hal yang lainnya semisal menjadikan hasil
kembaliannya sebagai parameter untuk fungsi yang lain.

<?php

# hasil kembalian function langsung di-echo

echo hitungVolumeBalok(5, 20, 10) . "<br>";

# hasil kembalian function disimpan dalam variabel

$volume = hitungVolumeBalok(10, 2, 7);

# hasil kembalian function dijadikan parameter untuk function yang lain

var_dump(hitungVolumeBalok(10, 10, 10));

Memperjelas Tipe Data Hasil Kembalian Fungsi

Kita bisa memperjelas tipe data kembalian fungsi dengan menambahkan sintaks : lalu diikuti
setelahnya oleh tipe data yang kita inginkan.

Perhatikan fungsi hitungVolumeBalok() : float berikut:

<?php

function hitungVolumeBalok (float $p, float $l, float $t) : float {

return $p * $l * $t;

Jika anda berusaha untuk mereturn selain float, maka PHP akan menyatakan statemen
tersebut sebagai error.
PHP Dasar | 57

Fungsi Anonim atau Closure

Dari yang telah kita pelajari, kita tahu bahwasanya fungsi pada PHP harus memiliki nama.
Peraturan penamaannya kurang lebih sama dengan penamaan variabel, hanya saja kita
tidak bisa memberi nama fungsi kita dengan nama yang telah digunakan oleh PHP sebagai
fungsi bawaan.

Untuk mendefinisikan fungsi, kita bisa dengan rumus seperti ini:

<?php

function namaFungsi ($param1, $param2, $param3 = null) {

# kode program

Akan tetapi di dalam PHP, terdapat anonymous function alias fungsi tanpa nama. Kita bisa
mendefinisikan suatu fungsi tanpa nama dan menaruhnya di dalam variabel, atau bahkan
kita bisa menjadikannya sebagai parameter pada fungsi yang lain.

Perhatikan contoh berikut:

<?php

$namaLengkap = function ($namaDepan, $namaBelakang) {

return "{$namaDepan} {$namaBelakang}";

};

echo $namaLengkap("Nurul", "Huda");

Perhatikan kode program di atas. Kita dapat simpulkan beberapa hal:

 Kita mendefinisikan satu fungsi tanpa nama


 Fungsi tersebut menerima dua parameter $namaDepan dan $namaBelakang
 Fungsi tersebut kita assign ke variabel $namaLengkap
 Kita wajib memberi titik koma (;) pada saat mendefinisikan fungsi anonim dan
menyimpannya dalam variable
 Kita memanggil fungsi tersebut dengan cara memanggil nama variabel yang telah
kita assign dengan diikuti tanda ().
PHP Dasar | 58

Fungsi Anonim Sebagai Parameter Fungsi Lain

Seperti yang telah kita coba di atas: bahwa fungsi anonim bisa kita simpan pada suatu
variabel.

Logikanya, sesuatu yang bisa disimpan pada variabel, ia juga bisa kita gunakan sebagai
parameter pada suatu fungsi.

Sekarang kita akan mencoba untuk membuat suatu fungsi, yang mana fungsi tersebut
menerima fungsi anonim sebagai salah satu parameternya.

Silakan praktikkan contoh kode program berikut dengan perlahan. Saya sudah memberikan
komentar pada setiap baris kode yang penting agar lebih mudah dipahami.

<?php

/**

* Fungsi ini untuk melakukan foreach pada setiap item pada array.

* Lalu parameter ke-2 adalah fungsi anonim untuk menangani item array

* tersebut mau diapakan

*/

function tampilkanArray (array $array, callable $fungsiEchoer) {

foreach ($array as $key => $item) {

# di sini kita tidak tahu fungsi anonim ini tugasnya seperti apa

# karena ia tergantung fungsi yang dilemparkan sebagai parameter

$fungsiEchoer($key, $item, count($array));

# kita bikin satu variabel array berisi kumpulan nama mahasiswa

$listMahasiswa = ['Nurul Huda', 'Wahid Abdullah', 'Lendis Fabri'];

# kita panggil fungsi tampilkanArray()

# kita passing variabel $listMahasiswa untuk parameter 1, dan


PHP Dasar | 59

# fungsi anonim yang akan menangani setiap item dari array

# sebagai parameter 2

tampilkanArray($listMahasiswa, function ($key, $nama) {

echo "{$key} - Bung {$nama} <br>";

});

# kita panggil lagi fungsi tampilkanArray dengan

# parameter fungsi anonim yang berbeda.

tampilkanArray($listMahasiswa, function ($key, $nama, $panjangArray) {

echo "{$nama}";

if ($key < $panjangArray - 1) {

echo " - ";

});

echo "<br>";

Fungsi Anonim Sebagai Callback

Inti callback adalah sebuah fungsi anonim yang dijadikan parameter pada fungsi yang lain
(seperti yang sudah kita praktikkan di atas). Akan tetapi pada penggunaannya,
umumnya callback adalah sesuatu yang dilakukan setelah suatu tugas tertentu telah selesai.

Misalkan kita memiliki fungsi untuk menyimpan data ke dalam database


bernama saveToDatabase().

<?php

function saveToDatabase ($data, callable $callback) {

# save to database

# ...
PHP Dasar | 60

# setelah selesai, jalankan callback

$callback();

# panggil fungsi saveToDatabase

saveToDatabase($dataInvoice, function () {

kirimNotifikasiViaEmail();

});

Kode program di atas hanya sekedar contoh. Ketika anda semakin mendalami PHP dan
mulai menggunakan framework tertentu, anda akan terbiasa dengan penggunaan calback.

Arrow Function

Arrow function adalah fitur baru yang ada pada PHP 7.4. Ia merupakan versi singkat dari
sintaks fungsi anonim yang mereturn sebuah nilai tertentu.

Arrow function sendiri sudah populer di bahasa pemrograman lain semisal javascript dan
juga di java (kalau tidak salah sejak versi 8).

Akan tetapi di PHP, arrow function hanya sederhana sekali, ia hanya support satu baris
ekspresi saja. Sehingga untuk tugas yang kompleks, kita tetap harus menggunakan sintaks
fungsi anonim konvensional.

Perhatikan fungsi anonim berikut:

<?php

$faktor = 10;

$himpunanAsli = [1, 2, 3, 4];

$himpunanKelipatan10 = array_map(function ($n) use ($faktor) {

return $n * $faktor;

}, $himpunanAsli);

var_dump($himpunanAsli);
PHP Dasar | 61

echo "<br>";

var_dump($himpunanKelipatan10);

Kita bisa mengubahnya ke dalam versi arrow function yang hanya satu baris saja:

<?php

$faktor = 10;

$himpunanAsli = [1, 2, 3, 4];

$himpunanKelipatan10 = array_map(fn($n) => $n * $faktor, $himpunanAsli);

var_dump($himpunanAsli);

echo "<br>";

var_dump($himpunanKelipatan10);

Arrow function juga menggunakan scope variabel parent-nya, sehingga kita tidak perlu
menggunakan perintah use($variable) untuk menggunakan variable dari scope yang berada
di luar fungsi.

Untuk detil perintah array_map silakan baca pembahasan tentang Bekerja dengan Array


pada PHP.

Pembahasan Selanjutnya

Pembahasan kita tentang fungsi sudah semakin advanced. Sehingga sekarang kita sudah
memiliki cukup banyak senjata untuk bisa menggunakan bahasa pemrograman PHP.

Pada pembahasan selanjutnya, kita masih akan membahas tentang fungsi bagian ke-3,
yaitu tentang fungsi rekursif –Insyaallah–.

Kita telah menyinggung tentang fungsi rekursif pada pembahasan perulangan pada PHP.

Ia adalah metode perulangan dengan mengeksekusi suatu fungsi, yang mana fungsi
tersebut akan memanggil dirinya sendiri.

Bagaimana caranya?

Sampai jumpa lagi!

8. Fungsi Rekursif (3/3)


PHP Dasar | 62

Daftar Isi

o Apa itu Fungsi Rekursif?


o Pendeklarasian Fungsi Rekursif
o Menampilkan Angka 1-100
o Contoh Kasus Faktorial
o Contoh Kasus Menu Bertingkat Tak Terbatas
o Pembahasan Selanjutnya

Ini adalah pembahasan fungsi bagian ke-3 dari seri tutorial belajar PHP 7. Kita telah
mempelajari tentang fungsi mulai dari cara pendeklarasiannya, cara memanggilnya,
parameter pada fungsi, fungsi anonim, callback dan arrow function.

Pada pertemuan kali ini, yang akan kita pelajari adalah mengenai fungsi rekursif.

Apa itu Fungsi Rekursif?

Kita telah menyinggung tentang fungsi rekursif pada pembahasan konsep perulangan pada
PHP.

Fungsi rekursif adalah metode perulangan yang terjadi akibat pengeksekusian suatu fungsi
yang mana fungsi tersebut memanggil dirinya sendiri. Bisa jadi ia terus memanggil dirinya
sendiri tanpa batas, atau mungkin dia akan berhenti jika kondisi tertentu terpenuhi.

Ilustrasinya adalah: seperti anda memiliki 2 buah cermin. Anda letakkan kedua cermin
tersebut sedemikian rupa hingga saling berhadapan. Lalu anda coba berdiri di depannya,
dan ya! Anda akan melihat pantulan diri anda tidak terbatas.

Ilustrasi yang lainnya adalah: PC anda sedang di-remote oleh PC lain. Lalu anda meremote
PC yang sedang meremote PC anda, al-hasil anda akan melihat PC anda berkali-kali tanpa
ujung seperti pada gambar berikut:
PHP Dasar | 63

Gambar 2: ilustrasi fungsi rekursif. Sumber gambar: link.

Pendeklarasian Fungsi Rekursif

Tidak ada cara khusus dalam pendeklarasian fungsi rekursif. Ia hanyalah fungsi biasa.
Sama saja apakah ia adalah fungsi yang mengembalikan sebuah nilai atau tidak.

Yang membedakan adalah: ia akan memanggil dirinya sendiri sehingga terjadilah suatu
perulangan.

Contoh:

<?php

function tampilkanHaloDunia () {

echo "Halo dunia! <br>";

tampilkanHaloDunia();

# panggil fungsi tampilkanHaloDunia();


PHP Dasar | 64

tampilkanHaloDunia();

Jika kode program di atas dijalankan, ia akan menampilkan teks “Halo dunia!" sebanyak


tak terbatas.

Dan ia tentu saja akan membuat komputer anda hank. Jadi, jangan coba-coba dilakukan,
ya!

Menampilkan Angka 1-100

Untuk menampilkan angka 1 sampai 100, kita bisa dengan mudah menggunakan
perulangan for seperti berikut:

<?php

for ($i = 1; $i <= 100; $i++) {

echo "Perulangan ke-{$i} <br>";

Akan tetapi jika anda ingin menggunakan konsep fungsi rekursif untuk menjalankan tugas
yang sama, anda perlu sedikit berfikir.

Pertama, anda buat fungsinya dulu, fungsi biasa.

<?php

function tampilkanAngka ($i) {

echo "Perulangan ke-{$i} <br>";

Jika anda memanggil fungsi tampilkanAngka() di atas, fungsi tersebut hanya akan


menampilkan teks sebanyak satu kali saja.

Sekarang, kita jadikan ia sebagai fungsi rekursif.

Kita beri 2 parameter tambahan, yaitu parameter $jumlah untuk mengetahui berapa jumlah


perulangan yang akan dilakukan, dan yang kedua adalah parameter $indeks untuk
mengetahui sekarang sudah perulangan ke berapa.

Untuk parameter $indeks kita beri nilai default dengan angka 1.

<?php
PHP Dasar | 65

function tampilkanAngka (int $jumlah, int $indeks = 1) {

echo "Perulangan ke-{$indeks} <br>";

# panggil diri sendiri selama $indeks <= $jumlah

if ($indeks < $jumlah) {

tampilkanAngka($jumlah, $indeks + 1);

Lalu panggil fungsi tampilkanAngka dengan memasukkan satu parameter saja yaitu


parameter $jumlah.

<?php

tampilkanAngka(20);

Perhatikan alur perjalanan program

Sekarang untuk menguji pemahaman, kita coba balik kode program pada
fungsi tampilkanAngka.

Jika kita melakukan proses rekursif setelah perintah echo, sekarang kita balik: kita lakukan
proses rekursif terlebih dahulu, setelah itu kita lakukan perintah echo.

Seperti ini:

<?php

function tampilkanAngka (int $jumlah, int $indeks = 1) {

# panggil diri sendiri selama $indeks <= $jumlah

if ($indeks < $jumlah) {

tampilkanAngka($jumlah, $indeks + 1);

}
PHP Dasar | 66

echo "Perulangan ke-{$indeks} <br>";

Coba panggil fungsi tampilkanAngka() tersebut, lalu cek bagaimana output yang dihasilkan.

Kita mendapatkan output terbalik bukan?

Perulangan ke-20

Perulangan ke-19

Perulangan ke-18

Perulangan ke-17

...

Perulangan ke-4

Perulangan ke-3

Perulangan ke-2

Perulangan ke-1

Itu terjadi karena:

1. Ketika fungsi tampilkanAngka dipanggil pertama kali, ia akan langsung memanggil


dirinya sendiri.
2. Ketika ia dipanggil untuk ke-2 kalinya, ia juga langsung memanggil dirinya sendiri.
3. Ia terus melakukan hal yang sama sampai nilai $indeks = nilai $jumlah alias
bernilai 20.
4. Baru setelah rantai paling akhir tidak lagi memanggil dirinya sendiri, ia akan mulai
menampilkan angka 20.
5. Setelah rantai paling akhir selesai menampilkan angka 20, maka proses yang ke-19
pun dianggap telah selesai dari proses rekursif, dan ia akan mulai meng-echo angka
19.
6. Begitu seterusnya hingga kembali ke perulangan yang pertama.

Masih agak bingung?

Kalau masih agak bingung, silakan ubah kode program di atas menjadi seperti ini:

<?php

function tampilkanAngka (int $jumlah, int $indeks = 1) {

echo "<strong style='color: green'>


PHP Dasar | 67

Sebelum memanggil diri sendiri [{$indeks}]

</strong><br>";

# panggil diri sendiri selama $indeks <= $jumlah

if ($indeks < $jumlah) {

tampilkanAngka($jumlah, $indeks + 1);

} else {

echo "<strong style='color: red'>

Proses terakhir.

</strong><br>";

echo "<strong style='color: blue'>

Sebelum memanggil diri sendiri [{$indeks}]

</strong><br>";

Sekarang saya hanya panggil dengan parameter $jumlah = 5 agar tidak terlalu outputnya
lebih ringkas:

<?php

tampilkanAngka(5);

Output:

Berikut ini adalah output yang saya hasilkan:


PHP Dasar | 68

Sampai sini, sudah mulai jelas bagaimana proses dan alur fungsi rekursif bekerja.

Contoh Kasus Faktorial

Selanjutnya kita coba contoh kasus paling populer dalam penggunakan metode perulangan
rekursif.

Kasus tersebut adalah kasus pemecahan faktorial. Dimana faktorial dari n sama dengan n *
faktorial(n-1).

Misalkan faktorial dari angka 5, maka kita bisa sederhanakan caranya seperti ini:

faktorial(5) = 5 * faktorial(4)

faktorial(4) = 4 * faktorial(3)

faktorial(3) = 3 * faktorial(2)

faktorial(2) = 2 * faktorial(1)

faktorial(1) = 1

Hasil di atas sama dengan:

faktorial 5 = 5 * 4 * 3 * 2 * 1

# hasil = 120

Penyelesaian

Dengan rumus seperti di atas, kita bisa mulai memecahkannya dengan fungsi rekursif.

Kita mulai dulu fungsinya secara sederhana seperti berikut:

<?php
PHP Dasar | 69

function faktorial ($n) {

echo "faktorial({$n}) = faktorial(" . ($n - 1) . ") <br>";

if ($n > 2) {

faktorial($n - 1);

# panggil

faktorial(5);

Ia akan menghasilkan output:

faktorial(5) = faktorial(4)

faktorial(4) = faktorial(3)

faktorial(3) = faktorial(2)

faktorial(2) = faktorial(1)

Setelah kita berhasil mendapatkan perulangan yang benar, kita ubah fungsi faktorial di atas
dengan mengembalikan suatu nilai seperti berikut:

<?php

function faktorial ($n) {

if ($n > 2) {

return $n * faktorial($n - 1);

} else {

return $n;

}
PHP Dasar | 70

# lalu panggil fungsi faktorial

$hasil = faktorial(5);

echo $hasil;

Jika anda menjalankan program di atas lalu output hasilnya adalah 120, berarti program
anda telah berjalan dengan benar.

Silakan ubah parameter $n untuk memeriksa apakah memang fungsi faktorial yang anda


lakukan memang betul-betul berfungsi seperti yang diinginkan.

Contoh Kasus Menu Bertingkat Tak Terbatas

Di bawah ini saya memiliki variabel $menu. Ia adalah gabungan antara array


terindeks dan array asosiatif multidimensi. Dikatakan multidimensi karena ia adalah suatu
array yang memiliki array lain di dalamnya.

Untuk penjelasan lebih lanjut silakan lihat pembahasan tentang array multidimensi.

Silakan perhatikan kode program di bawah. Karena selanjutnya kita akan coba menampilkan
semua item dari array $menu menggunakan fungsi rekursif.

<?php

$menu = [

"nama" => "Beranda"

],

"nama" => "Berita",

"subMenu" => [

"nama" => "Olahraga",

"subMenu" => [

"nama" => "Bola"


PHP Dasar | 71

],

"nama" => "Bulu Tangkis"

],

"nama" => "Politik"

],

"nama" => "Manca Negara"

],

"nama" => "Tentang"

],

"nama" => "Kontak"

],

];

Pertama kita buat dulu fungsi untuk menampilkan array utama.

<?php

function tampilkanMenuBertingkat (array $menu) {

echo "<ul>";

foreach ($menu as $key => $item) {


PHP Dasar | 72

echo "<li>{$item['nama']}</li>";

echo "</ul>";

Jika kita panggil fungsi di atas:

<?php

tampilkanMenuBertingkat($menu);

Kita akan dapatkan hasil seperti ini:

 Beranda
 Berita
 Tentang
 Kontak

Sekarang kita buat fungsi di atas menjadi rekursif dengan memanggil dirinya sendiri ketika
suatu item dari menu memiliki attribut subMenu.

<?php

function tampilkanMenuBertingkat (array $menu) {

echo "<ul>";

foreach ($menu as $key => $item) {

echo "<li>{$item['nama']}</li>";

# periksa apakah ia memiliki atribut subMenu

# dan apakah attribut tersebut memiliki isi

if (@$item['subMenu'] && count($item['subMenu'])) {

# jika ia panggil diri sendiri

tampilkanMenuBertingkat($item['subMenu']);

}
PHP Dasar | 73

echo "</ul>";

Kita coba jalankan lagi dan… ya! Kita berhasil mendapatkan hasil seperti ini:

 Beranda
 Berita
o Olahraga
 Bola
 Bulu Tangkis
o Politik
o Manca Negara
 Tentang

Anda bisa mengubah-ubah variabel $nama untuk mencoba apakah memang fungsi rekursif


yang kita buat tersebut sudah berfungsi dengan benar.

Pembahasan Selanjutnya

Dengan selesainya tutorial ini, berarti kita telah selesai dengan pembahasan Fungsi pada
PHP.

Pada pembahasan selanjutnya, kita akan membahas tentang memanipulasi string lalu


setelahnya akan membahas bekerja dengan array. Insyaallah.

Jika anda merasa seri tutorial php dasar ini bermanfaat, silakan bagikan kepada yang
lainnya.

Terima kasih banyak!

9. Manipulasi String
Daftar Isi

o Merangkai String
o Escape Character
o Panjang Karakter String
o Menghitung Jumlah Kata
o Memotong String
o Uppercase
o Lowercase
PHP Dasar | 74

o Membalik String
o Pencarian String
o Replace Karakter String
o Pembahasan Selanjutnya

Seduh kopi anda. Ambil istirahat barang sebentar.

Kita telah mempelajari bagian-bagian penting dari PHP. Mulai dari apa itu PHP file, variabel
dan tipe data, logika percabangan, perulangan, macam-macam operator pada PHP,
hingga fungsi yang telah kita pelajari sebanyak 3 bagian.

Pada kesempatan kali, kita akan melanjutkan kembali pelajaran kita di Tutorial PHP
Dasar ini. Ada pun materi yang akan kita ambil adalah: manipulasi string.

Kita telah mempelajari sekilas tentang string pada pembahasan Tipe Data dan Variabel. Ia


adalah tipe data yang kita gunakan untuk menyimpan kumpulan karakter, ia bisa diapit oleh
tanda petik satu ('') mau pun tanda petik dua ("").

Di dalam bahasa pemrograman PHP, kita bisa melakukan banyak hal dalam rangka
memanipulasi string. Sekarang, kita akan coba hal-hal yang sekiranya penting untuk
diketahui terkait bekerja menggunakan string di PHP.

Merangkai String

Untuk merangkai string dalam PHP, kita bisa menggunakan tanda petik satu mau pun tanda
petik dua. Keduanya hampir sama akan tetapi cara kerjanya sedikit berbeda.

Tanda petik dua akan mengisi variabel dengan nilai aslinya, ada pun dengan tanda petik
satu, kita tidak bisa melakukan hal tersebut.

Pada seri tutorial PHP ini, kita telah mencoba keduanya di tempat yang berbeda berkali-kali.

Berikut adalah contohnya:

<?php

$nama = 'Nurul Huda'; # tanda petik satu

$pesan = "Selamat datang {$nama}"; # tanda petik dua

$pesan2 = 'Selamat datang {$nama}'; # tanda petik satu

# ketika di-echo

echo $pesan . '<br>'; # Selamat datang Nurul Huda


PHP Dasar | 75

echo $pesan2 . '<br>'; # Selamat datang {$nama}

Jika anda eksekusi potongan kode program di atas, anda akan mendapati bahwa isi dari
variabel $pesan berbeda dengan isi pada variabel $pesan2.

Merangkai String dengan .

Jika pada tipe data numeric semisal integer atau float kita bisa melakukan operasi


matematika seperti penambahan dan pengurangan. Maka di dalam tipe data string, kita bisa
melakukan perangakaian string.

Untuk merangkai string pada PHP, kita bisa menggunakan menggunkan operator ..

<?php

$namaDepan = "Nurul";

$namaBelakang = "Huda";

$namaLengkap = $namaDepan . ' ' . $namaBelakang; # Nurul Huda

Menyingkat dengan operator .=

Sama seperti operator singkatan semisal +=, -=, *= dan selainnya, kita juga bisa


menggunakan singkatan dari operator . menjadi .=.

Perhatikan contoh berikut:

<?php

$namaLengkap = "Nurul";

$namaLengkap .= " Huda"; // $namaLengkap = $namaLengkap . " Huda";

Perhatikan Tipe Data dan Operator

Kita harus jeli dalam menggunakan tipe data dan operator. Karena jika kita salah, alih-alih
mendapatkan hasil yang kita inginkan, kita justru mendapatkan sesuatu yang tidak
terprediksi.

Perhatikan contoh berikut:

<?php
PHP Dasar | 76

$i = 5;

echo "Hasil akhir: " . $i + 3;

Program di atas akan menghasilkan:

Kenapa?

Karena di situ kita menggunakan tanda +. Sedangkan PHP akan menyelesaikan ekspresi di
atas secara berurutan dari kiri kenan, sehingga:

1. Ia akan merangkai string "Hasil akhir: " dan $i menjadi "Hasil akhir: 5".


2. Ia akan menambahkan antara string "Hasil akhir: 5" dan 3
3. Karena operan pertama adalah non-numeric, maka ia dikonversi menjadi angka 0
4. Sehingga operasi akhir yang dijalankan adalah 0 + 3
5. Hasil akhirnya adalah 3

Berbeda ceritanya jika kita menggunakan tanda kurung () untuk mengelompokkan mana


bagian yang harus dikerjakan terlebih dahulu.

Perhatikan kode berikut:

<?php

$i = 5;

echo "Hasil akhir: " . ($i + 3);

Program di atas akan menghasilkan:

"Hasil akhir: 8"

Sangat berbeda bukan?

Escape Character

Selanjutnya adalah escape character. Ia adalah karakter-karakter khusus yang tidak bisa
ditampilkan secara langsung, melainkan harus diikuti dengan tanda \.
PHP Dasar | 77

String yang dirangkai dengan tanda petik dua akan mengganti escape character dengan
karakter yang merepresentasikannya. Hal ini berbeda dengan string yang dirangkai dengan
tanda petik satu. Yang mana ia hanya akan menampilkan apa adanya tanpa mereplace apa
pun dengan apa pun (kecuali sedikit kasus).

Ada pun escape character pada PHP adalah:

Kode Keterangan
\n Baris baru
\r Karakter carriage-return
\t Karakter tab
\$ Karakter $ itu sendiri
\" Untuk menampilkan tanda petik dua
\\ Untuk menampilkan tanda slash \ itu sendiri

Agar lebih mudah untuk dipahami, anda bisa eksekusi kode program berikut:

<?php

echo "Baris\nbaru <br>"; # ini hanya bekerja di console, tidak di HTML

echo 'Baris\nbaru <br>'; # ditampilkan apa adanya, \n tidak direplace dg sesuatu

echo "Halo\rDunia <br>"; # Halo Dunia

echo 'Halo\rDunia <br>'; # Halo\rDunia

echo "<pre>Halo\tDunia!</pre>"; # Halo Dunia!

echo '<pre>Halo\tDunia!</pre>'; # Halo\tDunia!

echo "Katakanlah \"Tidak pada narkoba!\" <br>"; # Katakanlah "Tidak pada narkoba!"

echo 'Katakanlah \'Tidak pada narkoba!\' <br>'; # Katakanlah 'Tidak pada narkoba!'

Dari kode program di atas, kita bisa mengetahui perbedaan antara tanda petik dua dan
tanda petik satu dari segi cara kerjanya menangani escape string.

Secara umum, tanda petik satu tidak menggubris karakter escape string kecuali pada


tanda \‘ saja.
PHP Dasar | 78

Panjang Karakter String

Untuk mengetahui panjang karakter dari sebuah string, kita bisa menggunakan fungsi
bawaan PHP bernama strlen().

Perhatikan kode program berikut:

<?php

$loremIpsum = "Lorem ipsum dolor sit amet consectetur adipisicing elit.

Voluptatem reprehenderit nobis veritatis commodi fugiat molestias impedit

unde ipsum voluptatum, corrupti minus sit excepturi nostrum quisquam?

Quos impedit eum nulla optio.";

echo "<p>{$loremIpsum}</p>";

echo "Panjang karakter: " . strlen($loremIpsum) . "<br>"; # 230

Menghitung Jumlah Kata

Untuk menghitung jumlah kata dalam suatu string, kita bisa menggunakan fungsi bawaah
PHP bernama str_word_count().

Lanjutkan kode program yang sebelumnya, lalu tambahkan perintah berikut:

<?php

echo "Panjang kata: " . str_word_count($loremIpsum) . "<br>"; # 30

Dia akan menghitung panjang kata pada variabel $loremIpsum.

Memotong String

Terkadang kita butuh untuk memotong sebuah string yang panjang. Misal kita hanya
membutuhkan 200 karakter pertama dari suatu artikel, atau kita membutuhkan 10 karakter
terakhir dari sebuah artikel, maka kita bisa melakukan itu semua menggunakan fungsi
bawaan PHP bernama substr().

Fungsi substr() menerima 2 parameter wajib, dan 1 parameter opsional.

1. string: rangkaian karakter yang akan dipotong


2. index: indeks awal di mana string akan mulai dipotong
PHP Dasar | 79

3. length: panjang karakter yang akan dipotong. Ini bersifat opsional. Jika tidak
didefinisikan, ia akan mengambil sisa panjang string.

Contoh:

<?php

# dari indeks 0 sampai sepanjang 150 karakter

echo "<p>" . substr($loremIpsum, 0, 150) . "</p>";

# dari indeks 30 sampai sepanjang 150 karakter

echo "<p>" . substr($loremIpsum, 30, 150) . "</p>";

# dari indeks 100 sampai habis

echo "<p>" . substr($loremIpsum, 100) . "</p>";

# abmil 100 karakter terakhir

echo "<p>" . substr($loremIpsum, -100) . "</p>";

Uppercase

Di dalam PHP, kita bisa mengubah semua karakter dari suatu string ke dalam
bentuk uppercase dengan fungsi bawaan bernama strtoupper().

<?php

echo "<p>" . strtoupper($loremIpsum) . "</p>";

Lowercase

Sebaliknya untuk mengubah semua karakter pada suatu string menjadi lowercase, kita bisa
menggunakan perintah strtolower().

<?php

echo "<p>" . strtolower($loremIpsum) . "</p>";

Membalik String

Ketika mempelajari algoritma pemrograman atau pun struktur data, mungkin kita akan
mendapatkan tugas untuk membalikan suatu teks string. Tugas tersebut harus kita
PHP Dasar | 80

selesaikan dengan menggunakan perulangan mundur. Bagi pemula, tugas seperti ini cukup
melatih logika.

Akan tetapi, kebanyakan bahasa pemrograman sudah datang dengan fungsi bawaan untuk
membalikkan string sehingga kita tidak perlu repot-repot untuk membuatnya sendiri.

Di dalam PHP, untuk membalikkan sebuah teks string, kita bisa menggunakan
perintah strrev().

Perhatikan contoh berikut:

<?php

$pesan = "saya sudah makan";

echo strrev($pesan) . "<br>"; # nakam hadus ayas

Pesan di atas akan membalik semua karakter: yang depan menjadi di belakang, yang
belakang menjadi di depan sehingga string "saya sudah makan" menjadi "nakam hadus
ayas".

Ada pun untuk membalik string per kata, kita bisa melakukan hal berikut:

<?php

$pesan = "saya sudah makan";

# ubah variabel $pesan menjadi array dengan perintah explode

$pesanPerKata = explode(" ", $pesan);

# ubah setiap kata dalam array menjadi kebalikannya

$pesanPerKata = array_map(fn($pesan) => strrev($pesan), $pesanPerKata);

# gabungkan kembali array menjadi string

$pesan = implode(" ", $pesanPerKata);

echo $pesan . "<br>"; # ayas hadus nakam

Perintah di atas akan mengubah teks “saya sudah makan” menjadi “ayas hadus nakam”.

Penjelasan:

1. Mengubah variabel $pesan menjadi array $pesanPerKata dengan perintah explode()


PHP Dasar | 81

2. Membalikkan setiap kata dalam


array $pesanPerKata menggunakan array_map dan arrow function
3. Menggabungkan lagi array $pesanPerKata menjadi string ke dalam
variabel $pesan dengan perintah implode
4. echo.

Untuk detil perintah array_map, explode dan implode, silakan baca pada pembahasan di


pertemuan berikutnya yaitu tentang Bekerja dengan Array pada PHP.

Pencarian String

Kita bisa melakukan pencarian dalam sebuah string dengan perintah strpos atau stripos.


Fungsi strpos akan mencari kata kunci secara case sensitive, sedang stripos akan mencari
secara case insensitive.

Kedua fungsi tersebut akan mengembalikan indeks dari kata kunci yang kita cari. Apabila
kata kunci yang kita cari dalam suatu string ternyata tidak ada, ia akan mengembalikan nilai
boolean false.

<?php

$judulBerita = "Microsoft membeli github";

echo strpos($judulBerita, "github") . "<br>"; # 18

echo strpos($judulBerita, "Github") . "<br>"; # kosong

echo stripos($judulBerita, "Github") . "<br>"; # 18

Jalankan perintah di atas agar semakin mudah mendapatkan gambaran cara kerjanya.

Replace Karakter String

Yang terakhir dalam pembahasan kita kali ini adalah: me-replace karakter dari suatu string.
Misalkan kita memiliki variabel $judulBerita seperti pada kode program di atas. Lalu kita
ingin ubah kata “membeli” menjadi “menjual”. Kita bisa menggunakan
fungsi str_replace bawaan PHP.

Perhatikan kode program berikut:

<?php

$judulBerita = "Microsoft membeli github";

echo "Judul asli: {$judulBerita} <br>";

echo "Judul baru: " . str_replace("membeli", "menjual", $judulBerita) . "<br>";


PHP Dasar | 82

Ketika dieksekusi, perintah di atas akan menghasilkan output sebagai berikut:

Judul asli: Microsoft membeli github

Judul baru: Microsoft menjual github

Pembahasan Selanjutnya

Kita telah selesai mempelajari beberapa hal penting yang bisa kita lakukan berkaitan
dengan string pada PHP. Mulai dari cara merangkai string, escape character, cara
membalikkan string, me-replace, dan sebagainya.

Sekarang kita bisa ambil rehat sejenak. Menyeduh kopi. Sambil membaca-baca lagi tutorial
yang telah kita pelajari agar kita tidak lupa.

Dan pada pertemuan yang akan datang, insyaallah kita akan membahas tentang Bekerja
Dengan Array Pada PHP.

Jika anda menyukai tutorial PHP dasar ini, jangan lupa share kepada yang lainnya, ya!
Terima kasih banyak.

10. Bekerja Dengan Array


Daftar Isi

o Apa itu Array?


o Array Terindeks
o Array Asosiatif
o Array Multidimensi
o Menambahkan Item ke Dalam Array
o Menghapus Item dari Array
o Menggabungkan dua array atau lebih
o Array Unpacking
o Konversi Array Asosiatif ke Array Terindeks
o Fungsi Explode
o Fungsi Implode
o Pencarian Array
o Filter Array
o Pemetaan Array
o Pembahasan Selanjutnya
PHP Dasar | 83

Selamat datang kembali di lanjutan tutorial belajar PHP Dasar. Setelah kita belajar
tentang cara memanipulasi string dalam PHP, pada pertemuan kali ini kita akan membahas
tentang: bekerja dengan Array di PHP.

Apa itu Array?

Kita pernah mempelajari sekilas tentang array pada pembahasan tipe data dan variabel.

Ia adalah suatu tipe data yang bersifat spesial dalam PHP, ia bisa menyimpan himpunan
beberapa nilai dalam satu variabel saja.

Misalkan kita memiliki 3 buah variabel yang menyimpan data nama mahasiswa.

Dari pada kita membuat satu variabel untuk tiap nama mahasiswa seperti ini:

<?php

$mahasiswa1 = "Nurul Huda";

$mahasiswa2 = "Wahid Abdullah";

$mahasiswa3 = "Renza Ilhami";

Lebih baik kita simpan ketiga variabel di atas dalam satu array saja seperti berikut:

<?php

$listMahasiswa = [

"Nurul Huda",

"Wahid Abdullah",

"Renza Ilhami"

];

Untuk menampilkan array, kita bisa menggunakan indeks. Indeks pertama dimulai dari 0 dan
seterusnya.

<?php

echo $listMahasiswa[2] . "<br>"; # Renza Ilhami

echo $listMahasiswa[0] . "<br>"; # Nurul Huda


PHP Dasar | 84

echo $listMahasiswa[1] . "<br>"; # Wahid Abdullah

Atau kita juga bisa menggunakan perulangan semisal foreach atau for untuk menampilkan


array tersebut.

<?php

foreach ($listMahasiswa as $mahasiswa) {

echo $mahasiswa . "<br>";

Array Terindeks

Di dalam PHP, ada dua jenis array: array terindeks dan array asosiatif. Array terindeks
adalah array yang setiap itemnya terbedakan dengan indeks tertentu. Indeks tersebut
bertipe data integer dan selalu dimulai dari angka 0.

Array $listMahasiswa yang kita buat dalam contoh di atas adalah termasuk jenis array
terindeks.

Array jenis ini ada di hampir semua bahasa pemrograman, kalau pun tidak ada, maka itu
hanya perbedaan nama saja, akan tetapi fungsi dan bentuknya sama saja.

Array Asosiatif

Jenis kedua dari array dalam bahasa pemrograman PHP adalah: array asosiatif.

Ia adalah suatu array di mana key atau kuncinya bukan berupa indeks integer yang dimulai


dari 0, akan tetapi yang menjadi key-nya adalah suatu teks bertipe data string. Oleh karena
itu ia dinamakan array asosiatif.

Berikut ini adalah contoh dari array asosiatif:

<?php

$mahasiswa = [

'nama' => 'Nurul Huda',

'domisili' => 'Surabaya',

'jenis_kelamin' => 'Laki-laki'

];
PHP Dasar | 85

Untuk menampilkan item yang berada di dalam array asosiatif, kita bisa melakukannya
dengan memanggil key-nya. Hal ini sama persis dengan array terindeks, hanya saja jika
pada array terindeks key-nya bertipe data integer, maka pada array asosisatif, key-nya
bertipe data string.

Perhatikan kode program berikut:

<?php

echo "Nama : {$mahasiswa['nama']}<br>";

echo "Domisili : {$mahasiswa['domisili']}<br>";

echo "Jenis Kelamin : {$mahasiswa['jenis_kelamin']}<br>";

Array Multidimensi

Array multidimensi adalah suatu istilah untuk sebuah array, yang mana ia memiliki item
berupa array yang lain. Contohnya seperti ini:

<?php

$histogram = [

[1, 2, 3, 4, 5],

[6, 7, 3, 9, 2],

[3, 5, 1, 0, 5],

[5, 8, 1, 3, 1]

];

Pada contoh di atas, indeks ke-0 dari array $histogram adalah suatu array. Begitu juga
indeks ke-1, ke-2, dan ke-3.

Misal kita ingin menampilkan anga 0 pada array tersebut, maka kita harus memanggil array
terluarnya dahulu, baru indeks dari array yang didalam.

Perhatikan kode program berikut:

<?php

echo $histogram[2][3]; // 0
PHP Dasar | 86

Array multidimensi tidak mengharuskan setiap item dari array adalah suatu array dengan
panjang yang sama, bahkan tidak harus semua item dari suatu array bertipe data sama. Hal
itu karena array dalam PHP bisa memiliki himpunan nilai dari tipe data yang berbeda-beda.

Perhatikan contoh berikut:

<?php

$arrayMultidimensi = [

"Nurul Huda",

"Lendis Fabri",

[1, 2, 3, 4, 5],

[3.4, 10.93],

true,

false

];

Pada variabel $arrayMultidimensi di atas, kita saksikan bahwa item dari array tersebut
berbeda-beda dari segi tipe data. Ada yang bertipe data string, ada yang bertipe
data boolean, dan ada yang bertipe data array. Array dalam array seperti inilah yang
dimaksud dengan array multidimensi.

Saya akan beri contoh yang kemungkinan besar akan anda dapati dalam kasus real: yaitu
menu bertingkat tak terbatas.

Misalkan saya memiliki menu sebagai berikut:

 Beranda
 Berita
o Olahraga
 Bola
 Bulu Tangkis
o Politik
o Manca Negara
 Tentang

Saya bisa mendefinisikannya dalam suatu array multidimensi seperti berikut:

<?php

$menu = [
PHP Dasar | 87

"nama" => "Beranda"

],

"nama" => "Berita",

"subMenu" => [

"nama" => "Olahraga",

"subMenu" => [

"nama" => "Bola"

],

"nama" => "Bulu Tangkis"

],

"nama" => "Politik"

],

"nama" => "Manca Negara"

],

"nama" => "Tentang"

],
PHP Dasar | 88

"nama" => "Kontak"

],

];

Sudah punya gambaran?

Baik, sekarang tinggal satu pertanyaan: bagaimana cara menampilkan variabel $menu di


atas?

Jawabannya adalah menggunakan fungsi rekursif, untuk menampilkan variabel $menu di


atas bisa anda lihat pada pembahasan Fungsi Rekursif: Menampilkan Menu Bertingkat.

Menambahkan Item ke Dalam Array

Dalam banyak kasus, kita butuh menambahkan suatu nilai ke dalam array yang sebelumnya
sudah pernah kita buat.

Kasus ini bisa kita selesaikan dengan mudah sekali menggunakan 2 cara:

Menggunakan fungsi array_push

Cara yang pertama adalah dengan menggunakan fungsi array_push() bawaan PHP. Fungsi


ini menerima dua parameter: parameter pertama untuk array target, sedangkan parameter
kedua adalah nilai yang akan dimasukkan ke dalam array.

Perhatikan contoh berikut:

<?php

$buah = ['Apel', 'Jeruk'];

array_push($buah, 'Nanas');

# ['Apel', 'Jeruk', 'Nanas']

Oiya, jika anda ingin menambahkan item baru di urutan pertama array, anda bisa
menggunakan fungsi array_shift sebagai ganti dari array_push.
PHP Dasar | 89

Menggunakan sintaks kurung siku

Cara yang kedua adalah dengan menggunakan tanda kurung siku ([]) ketika menambahkan
satu nilai baru ke dalam array.

Perhatikan contoh berikut:

<?php

$buah = ['Apel', 'Jeruk'];

# tambahkan nilai baru ke dalam array

$buah[] = 'Nanas';

$buah[] = 'Anggur'

# ['Apel', 'Jeruk', 'Nanas', 'Anggur']

Menghapus Item dari Array

Terkadang kita butuh untuk menghapus suatu nilai atau suatu item dari variabel array. Kita
bisa melakukan hal tersebut dengan fungsi bawaan array yang bernama array_pop.
Fungsi array_pop akan menghapus item terakhir dari suatu array.

Dari segi parameter, ia hanya menerima satu parameter saja yaitu array target yang akan
dihapus item terakhirnya.

Contoh:

<?php

$buah = ['Apel', 'Jeruk', 'Nanas', 'Anggur'];

array_pop($buah);

var_dump($buah); # ['Apel', 'Jeruk', 'Nanas']

echo "<br>";
PHP Dasar | 90

# ia juga mengembalikan suatu nilai

echo array_pop($buah) . '<br>'; # Nanas

var_dump($buah); # ['Apel', 'Jeruk']

Menggabungkan dua array atau lebih

Misalkan kita memiliki 2 buah array atau lebih. Lalu kita ingin menggabungkannya menjadi
1, kita bisa menggunakan fungsi bawaah PHP bernama array_merge().

Perhatikan contoh berikut:

<?php

$warnaTerang = ['Kuning', 'Hijau', 'Pink'];

$warnaGelap = ['Hitam', 'Abu-abu', 'Cokelat'];

# gabungkan dua array tersebut menjadi 1

$gabunganWarna = array_merge($warnaTerang, $warnaGelap);

# fungsi array_merge bisa menerima lebih dari 2 array

$semuaWarna = array_merge(

$warnaTerang,

$warnaGelap,

['Magenta', 'Cyan', 'Hijau Kelabu']

);

Array Unpacking

Array unpacking adalah fitur baru pada versi PHP 7.4. Ia memiliki fungsi yang sama
dengan array_merge yaitu untuk menggabungkan suatu array dalam array lainnya.

Hanya saja kita bisa menempatkan hasil gabungan tersebut pada indeks tertentu dalam
array yang lain.
PHP Dasar | 91

Untuk mengekstrak atau unpacking array, kita bisa menggunakan sintaks ... lalu diikuti oleh


nama array-nya setelah itu.

Perhatikan contoh berikut:

<?php

$listBuahLokal = ['mangga', 'rambutan'];

$listBuah = ['kurma', 'anggur', ...$listBuahLokal, 'kismis'];

// ['kurma', 'anggur', 'mangga', 'rambutan', 'kismis'];

Jika kita perhatikan, sintaks di atas sangat mirip dengan yang kita temukan pada bahasa
pemrograman javascript.

Konversi Array Asosiatif ke Array Terindeks

Dalam kasus-kasus tertentu, kita terkadang butuh untuk mengubah array asosiatif ke dalam
bentuk array terindeks.

Kita bisa melakukannya dengan perintah array_values().

Perhatikan contoh berikut:

<?php

# asosiatif array

$listBuah = [

'0' => 'Anggur',

'1' => 'Jeruk',

'2' => 'Naga',

'3' => 'Duku'

];

var_dump(array_values($listBuah));

// ['Anggur', 'Jeruk', 'Naga', 'Duku']


PHP Dasar | 92

Fungsi Explode

Kita bisa memecah-mecah string lalu mengubahnya ke dalam array dengan fungsi explode.

Fungsi explode menerima 2 paramter:

 delimiter: yaitu sebuah string yang dijadikan pemisah


 string sasaran: yaitu sasaran string yang akan kita pecah menjadi suatu array

Misalkan kita punya string sebagai berikut:

<?php

$mahasiswa = "Andi Budi Deni Edwin Fajar Hendra";

Kita saksikan pada string $mahasiswa setiap kata merepresentasikan satu nama. Sehingga


kita bisa dengan mudah untuk memecah string tersebut dengan menggunakan pemisah
karakter spasi ( ).

Perhatikan kode program berikut:

<?php

var_dump(explode(" ", $mahasiswa));

// ['Andi', 'Budi', 'Deni', 'Edwin', 'Fajar', 'Hendra']

Kita juga bisa menggunakan delimiter yang tersusun dari lebih satu karakter, seperti contoh
berikut:

<?php

$mahasiswa = "Nurul Huda, Lendis Fabri, Wahid Abdulloh";

# delimiter terdiri dari 2 karakter yaitu tanda koma dan spasi

var_dump(explode(", ", $mahasiswa));

// ['Nurul Huda', 'Lendis Fabri', 'Wahid Abdulloh']


PHP Dasar | 93

Fungsi Implode

Fungsi implode adalah kebalikan dari fungsi explode. Tugasnya adalah untuk mengubah


array menjadi suatu string tertentu.

Fungsi implode menerima 2 buah parameter:

 glue: artinya perekat. Ia adalah string yang akan menjadi perekat antar item pada
array
 array: array sasaran yang akan diubah menjadi string

Perhatikan contoh berikut:

<?php

$mahasiswa = ['Huda', 'Lendis', 'Elmo'];

echo implode(" ", $mahasiswa) . "<br>"; // Huda Lendis Elmo

echo implode("*", $mahasiswa) . "<br>"; // Huda*Lendis*Elmo

echo implode(",", $mahasiswa) . "<br>"; // Huda,Lendis,Elmo

echo implode(", ", $mahasiswa) . "<br>"; // Huda, Lendis, Elmo

echo implode(" wkwk ", $mahasiswa) . "<br>"; // Huda wkwk Lendis wkwk Elmo

Pencarian Array

Untuk mencari suatu data dari array, kita bisa menggunakan fungsi bawaan PHP yang
bernama array_search().

Ia menerima 2 parameter wajib dan 1 parameter opsional:

 search: nilai string yang berisi keyword pencarian


 array: data array target
 strict: mode pencarian. Jika true maka mode strict atau mode ketat akan diaktifkan.
Dan jika parameter ini tidak didefinisikan, maka nilai default-nya adalah false.

Fungsi array_search() mengembalikan nilai false jika item yang dicari tidak ditemukan. Dan


ia akan mengembalikan nilai key jika item tersebut ditemukan. Dan jika item yang ditemukan
lebih dari 1, dia akan mengembalikan item pertama.

Contoh:

<?php
PHP Dasar | 94

$distroLinux = ['Ubuntu', 'Arch Linux', 'Elementary OS'];

var_dump(array_search('Arch Linux', $distroLinux));

// 1

$mahasiswa = [

'nama' => 'Lendis Fabri',

'asal' => 'Lamongan',

'status_pernikahan' => 'Belum menikah',

'kewarganegaraan' => 'Indonesia'

];

var_dump(array_search('Lamongan', $mahasiswa));

// 'asal'

Fungsi array_search() bisa bekerja sama saja apakah di array terindeks mau pun di array
asosiatif. Pada contoh di atas variabel $distroLinux merupakan array terindeks, sedangkan
variabel $mahasiswa mereupakan array asosiatif.

Filter Array

Bayangkan kita memiliki suatu array. Lalu dari sekian banyak item pada array tersebut, kita
hanya ingin mendapatkan beberapa item dengan kondisi tertentu.

Kita bisa melakukan hal tersebut dengan memanggil fungsi bawaan PHP
bernama array_filter().

Fungsi ini menerima 2 parameter:

 array: sebuah array yang menjadi target sasaran


 callback: sebuah fungsi anonim yang mengembalikan nilai boolean

Contoh

Misalkan kita memiliki array yang menyimpan nilai ujian setiap siswa. Lalu:

 kita ingin mengambil siapa saja yang nilainya di atas 80


 dan siapa saja yang nilainya 30 kebawah.
PHP Dasar | 95

Maka penyelesaian bisa dengan cara berikut:

<?php

$nilaiSiswa = [

['nama' => 'Andi', 'nilai' => 80],

['nama' => 'Budi', 'nilai' => 40],

['nama' => 'Candra', 'nilai' => 20],

['nama' => 'Denis', 'nilai' => 70],

['nama' => 'Fabrian', 'nilai' => 100],

['nama' => 'Gunawan', 'nilai' => 90],

['nama' => 'Hendra', 'nilai' => 35],

['nama' => 'Ian', 'nilai' => 75],

];

# nilai yang kurang dari atau sama dengan 30

$nilai30Kebawah = array_filter($nilaiSiswa, function ($item) {

return $item['nilai'] <= 30;

});

# nilai yang lebih dari 80

$nilaiYangLebihDari80 = array_filter($nilaiSiswa, function ($item) {

return $item['nilai'] <= 30;

});

Silakan tampilkan kedua array di atas, array $nilai30Kebawah dan


juga $nilaiYangLebihDari80 untuk memeriksa apakah program kita sudah sesuai dengan
yang diharapkan.

Anda juga bisa menggunakan fungsi panah untuk mempersingkat parameter ke-2:

<?php
PHP Dasar | 96

# kita juga bisa menggunakan fungsi panah

$nilaiDiatas30Dan80Kebawah = array_filter(

$nilaiSiswa,

fn($item) => $item['nilai'] > 30 and $item['nilai'] <= 80

);

Pemetaan Array

Pemetaan array digunakan jika kita ingin memodifikasi semua item pada suatu array. Untuk
melakukan hal tersebut kita bisa menggunakan fungsi bawaan PHP bernama array_map().

Untuk parameternya sama seperti fungsi array_filter(). Ia hanya menerima 2 parameter,


yaitu:

 array: sebuah array yang menjadi target sasaran


 callback: sebuah fungsi anonim yang mengembalikan nilai boolean

Contoh

Misalkan anda mempunyai suatu array yang berisi sekumpulan nilai integer. Lalu anda ingin
mengkalikan semua item array tersebut dengan angka 100.

Maka anda bisa melakukan hal tersebut sebagaimana contoh di bawah ini:

<?php

$array = [4, 3, 1, 5, 6];

$ratusan = array_map($array, function ($item) {

return $item * 100;

});

// [400, 300, 100, 500, 600]

Pembahasan Selanjutnya

Kita telah mempelajari banyak hal sejauh ini. Seri tutorial belajar php dasar sudah berada di
ujung dan akan segera berakhir.
PHP Dasar | 97

Masih ada sedikit pembahasan lagi, insyallah beberapa kita akan mengambil beberapa
latihan tentang fungsi matematika pada PHP, dan juga tentang fibonacci.

Setelah seri tutorial ini selesai, insyaallah kita akan mulai lagi seri belajar php selanjutnya:
yaitu php tingkat menengah, lalu PHP untuk pemrograman web dinamis, pemrograman
OOP pada PHP, dan MVC pada PHP.

Terima kasih banyak.

Jika anda merasa tutorial ini bermanfaat, silakan share ke kawan-kawan anda di sosial
media!

11. Fungsi-Fungsi Matematika


Daftar Isi

o Fungsi Absolut: abs()

o Fungsi Pi: pi()

o Perpangkatan Bilangan: pow()

o Akar Bilangan: sqrt()

o Membuat Angka Acak: rand()

o Konversi Derajat ke Radian: deg2rad()

o Pembulatan Pecahan: round()

o Pembulatan Kebawah: floor()

o Pembulatan Keatas: ceil()

o Pembahasan Selanjutnya

Bahasa pemrograman PHP datang dengan membawa banyak fungsi-fungsi yang berkaitan
dengan matematika, seperti fungsi absolut, perpangkatan, akar kuadrat, konversi sudut
derajat ke bentuk radian, dan sebagainya. Pada pertemuan kali ini kita akan mempelajari
beberapa hal penting tentang fungsi-fungsi matematika pada PHP.

Fungsi Absolut: abs()

Fungsi abs() akan mengembalikan nilai absolut dari nilai negatif mau pun positif. Nilai
absolut adalah suatu keadaan yang mana nilai akan senantiasa dianggap positif.

<?php

$a = 10;

$b = 33;
PHP Dasar | 98

$selisih = abs($a - $b); // 23

echo "Selisih: {$selisih}";

Output:

Selisih: 23

Fungsi Pi: pi()

Fungsi pi() akan mengembalikan nilai konstanta PI.

<?php

echo "Nilai pi = " . pi();

Output:

Nilai pi = 3.1415926535898

Perpangkatan Bilangan: pow()

Fungsi pow() bertugas untuk memangkatkan suatu bilangan pada PHP. Fungsi ini


membutuhkan 2 parameter:

 Bilangan yang akan dipangkat


 Nilai eksponen

<?php

echo "2 pangkat 2 = " . pow(2, 2) . "<br>"; # 4

echo "2 pangkat 3 = " . pow(2, 3) . "<br>"; # 8

echo "5 pangkat 3 = " . pow(5, 3) . "<br>"; # 125

echo "3 pangkat 5 = " . pow(3, 5) . "<br>"; # 243

Output:

2 pangkat 2 = 4

2 pangkat 3 = 8
PHP Dasar | 99

5 pangkat 3 = 125

3 pangkat 5 = 243

Akar Bilangan: sqrt()

Fungsi sqrt() bertugas untuk menghitung akar kuadrat dari suatu bilangan. Dan ditinjau dari
segi parameter, ia hanya membutuhkan satu parameter.

<?php

echo "Akar 0 = " . sqrt(0) . "<br>";

echo "Akar 1 = " . sqrt(1) . "<br>";

echo "Akar 4 = " . sqrt(4) . "<br>";

echo "Akar 9 = " . sqrt(9) . "<br>";

Output:

Akar 0 = 0

Akar 1 = 1

Akar 4 = 2

Akar 9 = 3

Membuat Angka Acak: rand()

Di dalam PHP, terdapat dua fungsi yang bisa kita gunakan untuk membuat angka secara
acak. Dua fungsi tersebut adalah rand() dan mt_rand(). Pada versi PHP lawas, keduanya
adalah dua fungsi yang berbeda. Ada pun setelah versi PHP 7.1, dua-duanya sama saja.
Yang satu adalah alias dari yang lainnya.

Fungsi rand() memiliki 2 parameter, dan dua-duanya bersifat opsional.

 min: bersifat opsional. Dia adalah nilai terendah yang akan dikembalikan dari
fungsi rand(). Jika tidak didefinisikan, nilai default-nya adalah 0
 max: ia juga bersifat opsional. Adalah nilai terbesar yang akan dikembalikan dari
fungsi rand(). Jika tidak didefinisikan, nilai default-nya adalah hasil kembalian dari
fungsi getrandmax().

Perhatikan contoh berikut:

<?php
PHP Dasar | 100

echo rand() . '<br>';

echo rand(0, 10) . '<br>'; # kemungkinan angka yang muncul adalah 0-10

Pada pembahasan tentang perulangan while, kita telah menggunakan fungsi ini sebagai
contoh. Anda bisa kembali lagi ke pembahasan tersebut jika dirasa perlu.

Konversi Derajat ke Radian: deg2rad()

Fungsi deg2rad() digunakan untuk mengkonversi nilai derajat kemiringan sudut ke dalam


nilai radian. Fungsi ini menerima hanya satu parameter saja.

<?php

echo deg2rad(120) . '<br>';

echo deg2rad(30) . '<br>';

echo deg2rad(225) . '<br>';

Output:

2.0943951023932

0.5235987755983

3.9269908169872

Pembulatan Pecahan: round()

Jika kita memiliki angka desimal dengan angka di belakang koma yang sangat panjang
sekali, kita pasti perlu untuk membulatkannya. Entah kita bulatkan dengan mengurangi
jumlah angka di belakang koma, atau pun dengan membulatkan angka ke bilangan bulat
terdekat.

Untuk melakukan hal tersebut, PHP telah menyediakan fungsi bawaan yang
bernama round().

Fungsi round() menerima 3 parameter:

 number: bersifat required. Ini adalah angka yang akan kita bulatkan.
 precision: berisfat opsional. Ini adalah jumlah angka di belakang koma, jika
dikosongkan maka nilai default-nya adalah 0.
 mode: bersifat opsional. Kita tidak bahas parameter ini karena berkaitan dengan
konstanta.

<?php
PHP Dasar | 101

echo round(4.6789) . "<br>";

echo round(4.3234) . "<br>";

echo round(pi(), 2) . "<br>"; # kita bulatkan nilai pi

echo round(pi(), 4) . "<br>";

Output:

3.14

3.1416

Pembulatan Kebawah: floor()

Fungsi floor() digunakan untuk membulatkan nilai pecahan ke nilai bulatan terkecil. Tidak


peduli apakah nilai pecahan tersebut sebenarnya lebih dekat ke nilai bulatan setelahnya.

Perhatikan contoh berikut:

<?php

echo floor(3.9999) . '<br>';

echo floor(3.33) . '<br>';

Kedua nilai di atas akan sama-sama menghasilkan angka 3.

Output:

Pembulatan Keatas: ceil()

Fungsi ceil() adalah kebalikan dari fungsi floor(). Jika fungsi floor() bertugas untuk


membulatkan pecahan ke bilangan bulat terkecil, maka fungsi ceil() justru akan
membulatkan bilangan pecahan ke bilangan bulat yang paling besar.

Perhatikan contoh berikut:


PHP Dasar | 102

<?php

echo ceil(3.9999) . '<br>';

echo ceil(3.33) . '<br>';

Hasilnya seperti yang sudah diharapkan:

Pembahasan Selanjutnya

Pembahasan kita kali ini cukup sederhana akan tetapi sangat penting. Beberapa fungsi di
atas akan sering kita jumpai dalam kasus-kasus sehari-hari.

Untuk pembahasan yang akan datang, insyaallah kita akan membahas tentang membuat
dan memecahkan teka-teki bilangan fibonacci dengan PHP. Dan insyaallah juga
pembahasan tersebut akan menjadi penutup seri tutorial php dasar ini sebelum kita lanjut ke
seri tutorial PHP yang berikutnya yaitu seri tutorial php tingkat menengah.

Terima kasih banyak!

12.: 3 Cara Membuat Deret


Fibonacci
Daftar Isi

o Persiapan
o Apa itu Fibonacci?
o Pemecahan Masalah
o Solusi 1: Menggunakan array
o Solusi 2: Menggunakan variabel bantuan
o Solusi 3: Menggunakan fungsi rekursif
o Kesimpulan
o Pembahasan Selanjutnya

Fibonacci adalah salah satu kasus logika yang cukup menantang bagi orang-orang yang
sedang belajar logika pemrograman. Kita bisa dengan mudah memahami fibonacci, tapi
untuk memecahkannya dalam bentuk logika pemrograman, ternyata cukup bikin pusing
juga.
PHP Dasar | 103

Di dalam tutorial ini, kita akan mencoba 3 buah solusi pemecahan teka-teki fibonacci dengan
menggunakan PHP. Ketiga solusi tersebut adalah: menggunakan array, menggunakan
variabel bantuan, dan yang terakhir adalah menggunakan fungsi rekursif.

Persiapan

Sebelum mengikuti tutorial ini, saya anggap anda telah mengikuti tutorial-tutorial
sebelumnya pada Seri Tutorial Belajar PHP 7 Dasar Untuk Pemula. Lebih khususnya adalah
pembahasan tentang:

 Perulangan
 Manipulasi String
 Bekerja dengan Array
 dan Fungsi Rekursif

Karena jika anda belum memahami 4 pembahasan di atas, anda mungkin akan
mendapatkan kesulitan di beberapa bagian pada tutorial ini.

Apa itu Fibonacci?

Fibonacci adalah deretan bilangan yang mana setiap bilangan adalah hasil penjumlahan
dari dua angka sebelumnya.

Fibonacci selalu diawali oleh 2 bilangan pertama yaitu 0 dan 1. Setelah dua bilangan
tersebut, barulah pada bilangan ke-3, nilainya diambil dari hasil penjumlahan dari dua
bilangan sebelumnya, dan seterusnya.

# dua bilangan awal

01

# bilangan selanjutnya adalah hasil penjumlahan dua bilangan sebelumnya

0112358

Pemecahan Masalah

Bagi yang baru belajar algoritma pemrograman, kasus ini sangat menantang sekali. Melatih
pikiran dan mengasah logika.

Setiap orang bisa berhasil memecahkan teka-teki bilangan fibonacci ini dengan cara yang
berbeda-beda. Dan ini normal.

Sehingga saya sarankan bagi anda semua, agar berjuang sendiri terlebih dahulu untuk
memecahkan kasus ini. Setelah berhasil, anda bisa kembali lagi ke artikel ini untuk
membandingkan apakah penyelesaian yang anda lakukan sama atau tidak dengan yang
saya lakukan.

Tapi jika anda ingin cepat-cepat, anda bisa langsung mencoba 3 solusi di bawah.
PHP Dasar | 104

Solusi 1: Menggunakan array

Saat saya berada di awal-awal semester perkuliahan, saya berhasil menyelesaikan kasus
fibonacci dengan memanfaatkan array. Waktu itu bahasa pemrograman yang saya gunakan
adalah java.

Akan tetapi karena saat itu pelajaran di kelas masih belum sampai pada materi array, dosen
saya terlihat tidak terlalu senang ketika saya menggunakan array untuk memecahkan kasus
fibonacci.

Apa pun itu, dengan menggunakan array, anda bisa menyelesaikan kasus fibonacci dengan
sangat mudah.

Ikuti langkah-langkah berikut:

1. Buat sebuah fungsi untuk mengembalikan array

Kita buat sebuah fungsi dengan nama fibonacci. Fungsi ini menerima satu parameter
yaitu $jumlahBilangan dengan tipe data integer.

Di dalam fungsi ini, kita buat sebuah array dengan nama $fibonacci lalu me-return-nya.

Nantinya array tersebut akan kita isi dengan himpunan deret bilangan fibonacci. Untuk
sekarang, kita biarkan dulu ia tetap kosong.

<?php

function fibonacci (int $jumlahBilangan) {

// array ini akan digunakan untuk menampung bilangan

$fibonacci = [];

return $fibonacci;

2. Buat perulangan sebanyak $jumlahBilangan

Setelah membuat fungsi fibonacci(), kita akan membuat sebuah perulangan


menggunakan for yang akan melakukan perulangan sejumlah nilai dari
parameter $jumlahBilangan.

Letakkan kode program berikut ini setelah pendeklarasian array $fibonacci dan sebelum


perintah return.

<?php
PHP Dasar | 105

for ($i = 0; $i < $jumlahBilangan; $i++) {

// penyusunan bilangan fibonacci

3. Mulai menyusun bilangan fibonacci

Setelah kita membuat sebuah fungsi dan juga sebuah perulangan for, sekarang saatnya kita
mulai menyusun bilangan deret fibonacci.

Alurnya adalah:

 indeks 0 akan menghasilkan bilangan 0


 indeks 1 akan menghasilkan bilangan 1
 indeks > 1 akan menghasilkan penjumlahan dari dua bilangan sebelumnya

Atau bisa kita singkat menjadi 2 kondisi saja:

 indeks < 2 mengembalikan nilai indeks itu sendiri


 indeks > 1 akan menghasilkan penjumlahan dari dua bilangan sebelumnya

Ubah perulangan for di atas menjadi seperti berikut:

<?php

for ($i = 0; $i < $jumlahBilangan; $i++) {

if ($i < 2) {

$bilangan = $i;

} else {

$bilangan = $fibonacci[$i - 1] + $fibonacci[$i - 2];

array_push($fibonacci, $bilangan);

4. Hasil akhir

Jangan lupa bahwa nilai $jumlahBilangan tidak boleh kurang dari 0, sehingga sebelum


perulangan for di atas, kita lakukan pemeriksaan terlebih dulu.

Berikut ini adalah kode lengkapnya:


PHP Dasar | 106

<?php

function fibonacci (int $jumlahBilangan) {

# array ini akan digunakan untuk menampung bilangan fibonacci

$fibonacci = [];

if ($jumlahBilangan < 0) {

# langsung hentikan fungsi jika $jumlahBilangan kurang dari 0

return $fibonacci;

# mulai perulangan

for ($i = 0; $i < $jumlahBilangan; $i++) {

if ($i < 2) {

$bilangan = $i;

} else {

$bilangan = $fibonacci[$i - 1] + $fibonacci[$i - 2];

# tambahkan $bilangan ke dalam array $fibonacci

array_push($fibonacci, $bilangan);

return $fibonacci;

Setelah melengkapi kode program untuk fungsi fibonacci(), kita bisa memanggilnya


sebagaimana berikut:
PHP Dasar | 107

<?php

# panggil fungsi fibonacci dengan berbagai parameter

echo implode(" ", fibonacci(5)) . '<br>';

echo implode(" ", fibonacci(8)) . '<br>';

echo implode(" ", fibonacci(10)) . '<br>';

echo implode(" ", fibonacci(13)) . '<br>';

Output:

01123

0 1 1 2 3 5 8 13

0 1 1 2 3 5 8 13 21 34

0 1 1 2 3 5 8 13 21 34 55 89 144

Solusi 2: Menggunakan variabel bantuan

Solusi kedua ini tidak jauh berbeda dengan sebelumnya. Hanya saja di sini kita tidak
menggunakan array sama sekali. Akan tetapi kita menggunakan 2 buah variabel untuk
menyimpan 2 bilangan sebelum bilangan yang sedang aktif.

<?php

function fibonacciSolusi2 (int $jumlahBilangan) {

# string untuk menyimpan bilangan fibonacci

$fibonacci = "";

$satuBilanganSebelumnya = 0;

$duaBilanganSebelumnya = 1;

if ($jumlahBilangan < 0) {

return $fibonacci; # langsung hentikan fungsi di sini

}
PHP Dasar | 108

for ($i = 0; $i < $jumlahBilangan; $i++) {

if ($i < 1) {

$bilangan = $i;

} else {

$bilangan = $satuBilanganSebelumnya + $duaBilanganSebelumnya;

# update variabel untuk bilangan sebelumnya

$duaBilanganSebelumnya = $satuBilanganSebelumnya;

$satuBilanganSebelumnya = $bilangan;

# tambahkan bilangan ke dalam string

$fibonacci .= "{$bilangan} ";

return $fibonacci;

Setelah membuat fungsi, kita panggil fungsi tersebut.

<?php

# panggil fungsi fibonacci dengan berbagai parameter

echo fibonacciSolusi2(5) . '<br>';

echo fibonacciSolusi2(8) . '<br>';

echo fibonacciSolusi2(10) . '<br>';

echo fibonacciSolusi2(13) . '<br>';

Berikut adalah output yang kita dapatkan, hasilnya tetap sama dengan solusi sebelumnya:
PHP Dasar | 109

01123

0 1 1 2 3 5 8 13

0 1 1 2 3 5 8 13 21 34

0 1 1 2 3 5 8 13 21 34 55 89 144

Solusi 3: Menggunakan fungsi rekursif

Solusi 3 adalah menggunakan fungsi rekursif. Solusinya sangat simpel. Akan tetapi fungsi di
bawah ini hanya untuk mendapatkan angka ke-n saja dari deret fibonacci.

Sehingga jika kita ingin mendapatkan keseluruhan deret fibonacci, fungsi di bawah ini tidak
efektif karena ia akan melakukan perulangan berkali-kali.

<?php

function fibonacciRekursif ($n) {

# sama seperti logika sebelumnya

# kalau $n bernilai 0 atau 1, dia akan dikembalikan apa adanya

if ($n <= 1) {

# di sini proses rekursif akan berhenti memanggil dirinya sendiri

return $n;

# jika ternyata $n lebih dari 1, maka ia akan memanggil dirinya sendiri

return fibonacciRekursif($n - 1) + fibonacciRekursif($n - 2);

Lalu panggil fungsi di atas beberapa kali untuk memeriksa apakah fungsi tersebut sudah
benar atau tidak.

<?php

# kita panggil satu-satu

echo fibonacciRekursif(0) . " "; # 0


PHP Dasar | 110

echo fibonacciRekursif(1) . " "; # 1

echo fibonacciRekursif(2) . " "; # 1

echo fibonacciRekursif(3) . " "; # 2

echo fibonacciRekursif(4) . " "; # 3

echo fibonacciRekursif(5) . " "; # 5

Output:

011235

Atau bisa kita panggil menggunakan for untuk mempersingkat sintaks:

<?php

for ($i = 0; $i < 10; $i++) {

echo fibonacciRekursif($i) . ' ';

Output:

0 1 1 2 3 5 8 13 21 34

Kesimpulan

Fibonacci adalah salah satu kasus logika yang cukup menantang bagi orang-orang yang
sedang belajar logika pemrograman. Fibonacci bisa kita pecahkan dengan berbagai macam
cara, tergantung pada masing-masing penulis kodenya.

Di dalam tutorial ini, kita telah mencoba 3 buah solusi pemecahan teka-teki fibonacci dengan
menggunakan PHP. Ketiga solusi tersebut adalah: menggunakan array, menggunakan
variabel bantuan, dan yang terakhir adalah menggunakan fungsi rekursif.

Dari ketiga cara tersebut, saya lebih rekomendasikan cara yang pertama.

Pembahasan Selanjutnya

Akhirnya kita telah selesai juga dari seri tutorial PHP 7 dasar. Kita telah membahas berbagai
hal penting mulai dari berkenalan dengan file PHP, variabel dan tipe data, pembahasan
struktur kontrol PHP seperti percabangan dan perulangan, fungsi, dan lain sebagainya.
PHP Dasar | 111

Tutorial tentang fibonacci ini adalah akhir dari seri belajar php 7 dasar, insyaallah pada
pertemuan selanjutnya kita akan memasuki seri baru untuk tutorial PHP. Yaitu belajar PHP
untuk tingkat menengah!

Jika anda rasa tutorial ini bermanfaat, silakan share ke teman-teman anda!

Anda mungkin juga menyukai