Wednesday, November 9, 2016

Autoloader Pada PHP

Sebagai seorang yang sudah berpengalaman dengan pemrogramman PHP, pasti sudah tidak asing lagi dengan syntax inlcude untuk memasukkan syntax dari file lain ke file yang sedang aktif. Syntax include akan meyertakan dan mengevaluasi seluruh baris code yang ada di file yang disertakan. Contoh penggunaan include dapat dilihat pada syntax berikut :
Mobil.php
class Mobil{
 public function __construct(){
  echo "Class ".__CLASS__."";
 }

 public function getMerk(){
  echo "Avanza";
 }
}
autoloader.php
include "Mobil.php";

$avanza = new Mobil();
$avanza->getMerk();
Pada file Mobil.php, kita membuat 1 buah class yaitu Class Mobil. pada class Mobil, terdapat constructor() yang akan dijalankan pada saat class diinstansiasi. Selanjutnya terdapat method getMerk() yang berfungsi untuk menampilkan tulisan 'Avanza'.

Pada file autoloader.php, terdapat syntax include untuk memasukkan file Mobil.php. Ini merupakan cara lama agar kita dapat membuat object dari class Mobil yang berada pada file Mobil.php. Selanjutnya kita dapat memanggil method yang dimiliki oleh class Mobil. Jika dijalankan pada browser, hasilnya adalah sebagai berikut:
output autoloader.php
Nah.. seperti yang kita lihat, syntax tersebut akan menghasilkan output Class Mobil dan Avanza.

Cara ini masih digunakan sampai sekarang. Tapi sebenernya cara seperti ini kurang efektif jika kita memiliki 50 bahkan sampai 100 class. Apakah kita akan meng-include semua class tersebut?? 

Saat ini sudah terdapat fitu baru pada PHP yaitu autoloader. Dengan fitur ini, kita tidak perlu menulis inlcude untuk setiap file PHP yang akan dimasukkan ke file.

Untuk menggunakan autoloader, kita menggunakan fungsi spl_auto_load_register(). Fungsi ini menerima parameter fungsi yang memiliki sebuah parameter $class yang berisi nama class yang akan dipanggil. Di dalam fungsi ini, kita melakukan include ke class yang diinginkan. Penggunaan syntax autoloader dapat dilihat pada contoh berikut ini.
spl_autoload_register();

$avanza = new Mobil();
$avanza->getMerk();

pada syntax diatas, kita menghapus code inlcude dan menambahkan syntax:
spl_autoload_register();

syntax diatas berfungsi untuk melakukan include setiap kali kita menginstansiasi class (new class()). Jadi ketika kita memanggil new Mobil(). Secara otomatis, file Mobil.php akan ter-include pada file ini. Jika dijalankan, hasilnya akan sama dengan syntax menggunakan include.

Penggunaan autoloader ini dapat disesuaikan dengan kebutuhan kita. Misalnya kita menyimpan file pada folder Kendaraan maka syntaxnya akan berubah menjadi:
spl_autoload_register( function ($class){
 include 'nama_folder/'.$class.'.php';
});

Tuesday, November 8, 2016

Closure Pada PHP 5

Jika pada tutorial sebelumnya saya menjelaskan tentang anonymous function , kali ini saya akan menjelaskan penggunakan closure pada PHP 5. Closure hampir mirip dengan anonymous fungtion, perbedaannya adalah closure ini dapat menerima parameter dan mengakses variable dari luar fungsi tersebut. Contohnya seperti berikut :

$merk = "Avanza";
$tahun = 2015;

function detailMobil($merk, $tahun){
 return $merk." tahun ".$tahun;
}

function beliMobil($detail){
 echo "Anda membeli mobil ".$detail." 
";
}

beliMobil(detailMobil($merk, $tahun));
pada syntax tersebut, kita membuat fungsi detailMobil() yang menerima input merk dan tahun. Kita juga juga membuat fungsi beliMobil() yang menerima input detail. Pada baris terakhir, kita memanggil fungsi beliMobil dengan parameter dari fungsi detailMobil(). dari syntax diatas, jika dijalankan pada browser akan menghasilkan output seperti ini:

Output Closure.php
Selanjutnya jika kita mengunbah fungsi detailMobil menjadi closure, maka syntaxnya akan berubah menjadi :

$merk = "Avanza";
$tahun = 2015;

$detail = function() use ($merk, $tahun){
 return $merk." tahun ".$tahun;
};

function beliMobil($detail){
 echo "Anda membeli mobil ".$detail." 
";
}

beliMobil($detail());
Kita dapat melihat disini, untuk menggunakan variable diluar closure ($merk dan $tahun), kita menggunakan keyword use. Jika kita jalankan pada browser, maka outputnya akan tetap sama. Salah satu penggunaan closure adalah digunakan pada fungsi yang menggunakan callback sebagai parameternya.

Monday, November 7, 2016

Anonymous Function pada PHP 5

Pada tutorial kali ini saya akan membahasa mengenai  Anonymous Function atau disebut juga dengan Lambda pada PHP 5. anonymous function atau lambda merupakan sebuah fungsi dimana pada saat memanggil fungsi ini, kita dapat memanggilnya tanpa harus menulis nama fungsinya. Untuk menggunakan anonymous function ini, kita membutuhkan sebuah variable pada saat pembuatan fungsi tersebut. Agar lebih mudah dipahami, kalian bisa melihat contoh syntax berikut :

function merkMobil(){
 return "Avanza";
}

function beliMobil($merk){
 echo "Anda membeli mobil merk ".$merk."
";
}

beliMobil(merkMobil());
Pada syntax diatas, kita membuat dua fungsi yaitu merkMobil() dan beliMobil() dimana function merkMobil() adalah fungsi yang berfungsi untuk menampilkan merk mobil. Sedangkan fungsi beliMobil() berfungsi untuk menampilkan detail pembelian mobil beserta merknya. fungsi beliMobil() menerima parameter yang diberi nama $merk.

Pada baris terakhir, kita memanggil fungsi beliMobil() dengan parameter kembalian dari fungsi merkMobil(). Hasil dari program diatas adalah :
Output pada localhost








Jika kita menggunakan anonymous fungtion, maka syntax nya akan berubah menjadi :

$merk = function(){
 return "Avanza";
};

function beliMobil($merk){
 echo "Anda membeli mobil merk ".$merk."
";
}

beliMobil($merk());

Pada syntax diatas dapat dilihat jika output dari anonymous function dilemparkan ke dalam variable $merk. Dan jika dijalankan lagi, hasilnya akan sama dengan syntax sebelumnya.