Struktur Bahasa Lanjutan

Desdulianto

Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Bahasan

Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Expressions

  • Semua operasi yang menghasilkan nilai
    • literal, contoh: 5, "Budi", true, [1,2,3]
    • operasi menggunakan operator, contoh: 5+5, "Hello " . $nama"
    • pemanggilan fungsi, contoh: array_sum([1,2,3])
      • fungsi yang tidak mengembalikan nilai akan menghasilkan nilai null
    • statement tertentu yang menghasilkan nilai, contoh: new SomeClass()
Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Operators

Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Operators - sambungan

  • Berdasarkan banyak operan: unary, binary, ternary

  • Eksekusi operator mengikuti aturan precedence

    • sebaiknya urutan operasi ditulis secara eksplisit menggunakan kurung dari pada bergantung dengan aturan precedence
  • Kesalahan yang sering terjadi, menggunakan + untuk menggabungkan text (text concatenation). PHP menggunakan operator .

    echo "Hello " . $nama;
    
Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Control Structures

  • Menentukan alur eksekusi program
  • Conditional statement, memilih alur eksekusi mana yang akan dikerjakan
  • Loop statement, mengulang eksekusi sebanyak n kali atau sesuai kriteria pengulangan
  • Link
Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Conditional Statement

  • Memilih alur eksekusi program
  • if, else, elseif/else if
  • ternary operator logical_expression ? true_value : false_value
  • switch, case, default, break
  • match, default (sejak versi 8)
Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Loop Statement

  • Mengulang eksekusi sebanyak n kali atau sesuai kriteria perulangan
  • for
  • foreach
  • while, do-while
  • break, continue
Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Other Statement

  • Mengakhiri dan mengembalikan nilai dari fungsi: return
  • Meng-import code dari file lain require dan include
    • require lebih strict dibanding include dan akan menghasilkan error kalau gagal meng-import file
  • Meng-import code dari file lain jika belum di-import require_once dan include_once
  • Loncat ke label tertentu di source code: goto
Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Functions

  • Mendefinisikan fungsi

    function nama_fungsi($param1, $param2, ... $paramN)
    {
      // function body
    }
    
  • Memanggil fungsi

    nama_fungsi(1, 2, 3, 4, 5);
    
  • keyword return untuk mengakhiri dan mengembalikan nilai

Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Parameter & Argument

  • Parameter, nama untuk variable input pada definisi fungsi

  • Argument, nilai yang dikirimkan sebagai parameter pada saat pemanggilan fungsi mengikuti urutan pada saat definisi

    function add($a, $b)
    {
      // $a & $b adalah parameter
      return $a + b;
    }
    
    add(10, 5); // 10 dan 5 adalah argumen yang dikirim ke parameter $a dan $b
    
Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Parameter & Argument: pass by reference

  • Mengirimkan argument sebagai reference

    function add_10_in_place(&$a)
    {
      $a += 10;
    }
    $a = 10;
    add_10_in_place($a); // $a sekarang menjadi 20
    
Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Parameter & Argument: default parameter value

  • Parameter bersifat optional, jika tidak di-assign, parameter akan berisi default value

    function hello($name = 'World')
    {
      return "Hello " . $name;
    }
    
    hello(); // Hello World
    hello("Budi"); // Hello Budi
    
  • Didefinisikan setelah parameter mandatory (tanpa default value)

Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Parameter & Argument: variadic parameter

  • Parameter diperlakukan sebagai array

    function sum(...$a)
    {
      $sum = 0;
      foreach ($a as $i) {
          $sum += $i
      }
      return $sum;
    }
    sum(); // 0
    sum(1,2,3); // 1 + 2 + 3
    
Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Parameter & Argument: named parameter

  • Parameter dapat di-assign mengikuti nama parameter (tidak perlu mengikuti urutan definisi)

  • Sejak PHP versi 8

    function greet($greeting, $name)
    {
      return "Hello $name, $greeting";
    }
    hello('Selamat pagi', 'Budi');
    hello(name: 'Budi', greeting: 'Selamat pagi');
    
Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Anonymous Function

  • Mendefinisikan fungsi tanpa di-assign dengan sebuah nama

  • Biasanya digunakan sebagai argument yang dikirim ke parameter callable

  • Disebut juga dengan nama closure

    $hello = function hello($name) {
      return "Hello, $name";
    }
    $hello('Budi'); // Hello Budi
    
Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Anonymous Function: use keyword

  • Variable di luar scope di-inject keyword use

    $name = 'Budi';
    $a = function hello() use($name) { // inject $name
      return "Hello, $name";
    }
    $a();
    
Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto

Anonymous Function: arrow function

  • Anonymous function yang isinya berupa expression dapat ditulis dengan notasi arrow (arrow function)

    $add = fn($a, $b) => $a + $b;
    $add(1, 5);
    
  • Arrow function akan langsung meng-capture variable di-luar scope tanpa perlu diinject dengan keyword use

Pemrograman Web Dengan PHP - Struktur Bahasa Lanjutan - Desdulianto