PHP Dasar

Site: Elearning Muhidin Saimin
Course: Web Development
Book: PHP Dasar
Printed by: Guest user
Date: Tuesday, 17 September 2024, 3:39 AM

1. Pengantar

Tutorial Belajar PHP Dasar Untuk Pemula

    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.

    Materi

    Dalam seri tutorial ini, terdapat 12 konten yang kesemuanya jika anda pelajari, anda akan mendapatkan skill PHP dasar dan siap untuk melangkah ke level setelahnya.


    2. Hello World

    PHP Dasar: Hello World

    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:

    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!";
    ?>
    
    </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
    
    /**
     * 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 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.

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


    3. Tipe Data Dan Variabel

    PHP Dasar: Tipe Data Dan Variabel

    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, 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 DataKeterangan
    IntegerBerisi bilangan bulat
    FloatBerisi bilangan desimal
    BooleanBerisi 2 nilai saja: true dan false
    StringBerisi data teks yang diapit oleh tanda '' atau ""
    ArrayBerisi 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:

    PeraturanKeterangan
    diawali tanda $Setiap nama variabel dalam bahasa pemrograman PHP didefinisikan dengan tanda $ lalu diikuti oleh nama variabel itu sendiri
    nama diawali huruf atau underscore (_)Nama variabel PHP harus diawali huruf, atau tanda underscore (_).
    Kita bisa membuat variabel dengan nama $_nilai atau $nilai123 akan tetapi tidak bisa membuat variabel dengan nama $1nilai
    case sensitivePHP membedakan huruf besar dan kecil dalam penamaan variabel. Maka variabel $nilai$niLai dan juga $nIlAi dianggap 3 variabel yang berbeda
    hanya boleh huruf dan angkanama variabel hanya boleh tersusun dari huruf [a-z] atau [A-Z], dan juga 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";

    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
    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;
    
    # 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);
    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]
    # 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
    
    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.

    Referensi

    [1] https://id.wikipedia.org/wiki/Tipe_data - diakses tanggal 21 Februari 2020


    4. Operator

    PHP Dasar: Macam Macam Operator

    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
    
    $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>";
    # 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>";
    
    $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:

    SimbolKeterangan
    >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
    
    $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' = ";
    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.

    SimbolKeterangan
    ==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>";
    
    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 (!).

    OperatorSimbolKeterangan
    and&& atau andakan bernilai true jika kedua operan bernilai true.
    or`
    negasi!akan membalik yang true menjadi false dan yang false menjadi true.
    <?php
    
    $a = true && true; # true
    $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)
    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>";
    
    /**
     * 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

    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.


    5. Logika Percabangan

    Logika Percabangan/Branching

    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.

    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 !";
    } 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.

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

    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";
    } 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

    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";
    }
    
    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':
        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.';
      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 
    
    $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";
    

    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.

    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.



    6. Perulangan

    Perulangan/Looping

    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.

    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:

    • 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
    
    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 "* ";
        }
    
        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>";
    
        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>";
    
        $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
    
    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
        }
    
        # 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);
    

    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

    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?

    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!

    Terima kasih banyak.



    7. Belajar Fungsi 1

    PHP Dasar: Belajar Fungsi (1/3)

    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_dumpemptycount, dan lain-lain. Kita juga tidak bisa mendefinisikan satu nama fungsi yang sama sebanyak 2 kali.

    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 stringbooleaninteger, 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
    
    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) {
      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 stringintegerboolean, 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
    
    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
      }
    }
    

    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.


    8. Belajar Fungsi 2

    PHP Dasar: Belajar Fungsi (2/3)

    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 functionfungsi anonimcallback 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 issetemptyis_nullcount, 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');
    
    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;
    }
    

    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.

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

    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 
    # 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
      # ...
    
      # 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);
    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!


    9. Fungsi Rekursif

    PHP Dasar: Fungsi Rekursif (3/3)

    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:

    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();
    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
    
    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);
      }
    
      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'>
        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:

    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
    
    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;
      }
    }
    
    # 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"
              ],
              [
                "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) {
        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']);
        }
      }
      echo "</ul>";
    }
    

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

    • Beranda
    • Berita
      • Olahraga
        • Bola
        • Bulu Tangkis
      • Politik
      • 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!


    10. Manipulasi String

    PHP Dasar: Manipulasi String

    Seduh kopi anda. Ambil istirahat barang sebentar.

    Kita telah mempelajari bagian-bagian penting dari PHP. Mulai dari apa itu PHP filevariabel dan tipe datalogika percabanganperulanganmacam-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
    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
    
    $i = 5;
    
    echo "Hasil akhir: " . $i + 3;
    

    Program di atas akan menghasilkan:

    3
    

    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 \.

    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:

    KodeKeterangan
    \nBaris baru
    \rKarakter carriage-return
    \tKarakter 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.

    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
    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 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()
    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_mapexplode 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>";
    

    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.


    11. Array

    PHP Dasar: Bekerja Dengan Array

    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
    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'
    ];
    

    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
    

    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
      • Olahraga
        • Bola
        • Bulu Tangkis
      • Politik
      • Manca Negara
    • Tentang

    Saya bisa mendefinisikannya dalam suatu array multidimensi seperti berikut:

    <?php
    
    $menu = [
      [
        "nama" => "Beranda"
      ],
      [
        "nama" => "Berita",
        "subMenu" => [
          [
            "nama" => "Olahraga",
            "subMenu" => [
              [
                "nama" => "Bola"
              ],
              [
                "nama" => "Bulu Tangkis"
              ]
            ]
          ],
          [
            "nama" => "Politik"
          ],
          [
            "nama" => "Manca Negara"
          ]
        ]
      ],
      [
        "nama" => "Tentang"
      ],
      [
        "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_unshift sebagai ganti dari array_push.

    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>";
    
    # 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.

    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']
    

    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']
    

    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
    
    $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.

    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
    
    # 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.

    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!


    12. Fungsi Matematika

    PHP Dasar: Fungsi-Fungsi Matematika

    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;
    
    $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
    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
    
    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
    
    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:

    5
    4
    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:

    3
    3
    

    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
    
    echo ceil(3.9999) . '<br>';
    echo ceil(3.33) . '<br>';
    

    Hasilnya seperti yang sudah diharapkan:

    4
    4
    

    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!


    13. Deret Fibonacci

    PHP Dasar: 3 Cara Membuat Deret Fibonacci

    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.

    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:

    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
    0 1
    
    # bilangan selanjutnya adalah hasil penjumlahan dua bilangan sebelumnya
    0 1 1 2 3 5 8
    

    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.

    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 
    
    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
    
    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
    
    # 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:

    0 1 1 2 3
    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
      }
    
      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:

    0 1 1 2 3
    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
    echo fibonacciRekursif(1) . " "; # 1
    echo fibonacciRekursif(2) . " "; # 1
    echo fibonacciRekursif(3) . " "; # 2
    echo fibonacciRekursif(4) . " "; # 3
    echo fibonacciRekursif(5) . " "; # 5
    

    Output:

    0 1 1 2 3 5
    

    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 arraymenggunakan 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.

    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!

    Terima kasih banyak.


    14. Gaya Penulisan Case

    Mengenal 4 Macam Gaya Penulisan Case dalam Kode Program

    Pernahkah kalian perhatikan gaya penulisan huruf-huruf pada kode program?

    Kadang ada yang ditulis seperti_iniSepertiItu, dan semacam-ini.

    Ternyata gaya penulisan tersebut punya sebutan tersendiri, apa saja itu?

    Mari kita bahas…

    1. Gaya Snake Case

    Camel Case

    Gaya penulisan case yang ini cirinya menggunakan garis bawah atau underscore (_).

    Suku kata dipisahkan dengan garis bawah sehingga membentuk sebuah ular.

    Karena itu, gaya ini disebut Snake Case.

    Contohnya seperti ini:

    ini_penulisan_snake_case();
    The_quick_brown_fox_jumps_over_the_lazy_dog
    nama_variabel
    Nama_class

    Gaya penulisan Snake Case biasanya kita jumpai pada pemrograman prosedural dan fungsional seperti C, Pascal, PHP, dsb.

    2. Gaya Camel Case

    Camel Case

    Gaya penulisan Camel Case biasanya sering digunakan pada pemrograman berorientasikan objek atau OOP.

    Cirinya, semua suku kata menyatu dan terdapat huruf kapital untuk memisahnya.

    Hal tersebut membuatnya terlihat seperti punggung onta. Karena itu, gaya ini disebut Camel Case.

    Contohnya seperti ini:

    TheQuickBrownFoxJumpsOverTheLazyDog
    iniPenulisanCamelCase();
    NamaClass
    namaVariabel
    iPhone
    eBay
    camelCase

    3. Kebab Case

    Mendengar kata Kebab jadi lapar… 😄

    Camel Case

    Gaya Kebab Case menggunakan tanda minus (-) untuk memisah suku kata. Sehingga membuatnya terlihat seperti kebab.

    Karena itu, gaya ini dinamakan Kebab Case.

    Contohnya seperti ini:

    ini-gaya-kebab-case
    The-quick-brown-fox-jumps-over-the-lazy-dog
    btn-primary
    -moz-transition

    Gaya penulisan Kebab Case biasanya kita jumpai pada CSS.

    4. All caps

    All Caps artinya semua kapital.

    Gaya penulisan ini sering digunakan untuk menuliskan nama sebuah konstanta.

    Contohnya:

    PI
    DATABASE
    HOSTNAME
    URL_STRING

    Manakah Gaya yang kamu sukai?

    Saya sendiri menyukai gaya Camel Case, karena cukup mudah mengetiknya. Tapi kadang juga menggunakan Snake Case.

    Atau… kalau lagi lapar ya makan kebab 😄.

    Kamu lebih suka yang mana?