Tutorial Function Pada PHP

Variable Functions

Materi ini memiliki 1 buah lampiran. Namun Anda tidak dapat mengakses lampiran karena belum terdaftar di kursus ini. Klik disini untuk mendaftar.

Apakah itu fitur Variable Functions? Kita bisa menyimpan nama function dalam bentuk string ke dalam variable. Kemudian apabila kita menambahkan tanda kurung setelah nama variable tersebut, maka PHP akan mencari dan menjalankan function yang namanya sesuai dengan isi variable.

Sebagai contoh. Misalkan kita membuat function hello. Biasanya untuk menjalankan function ini, kita tinggal memanggil langsung namanya yaitu hello(). Nah, dengan menggunakan fitur Variable Functions ini, maka kita bisa menyimpan nama function tersebut ke dalam suatu variable, misalkan variable $functionName. Kemudian kita jalankan dengan cara menyebutkan nama variable, yaitu $functionName, diikuti oleh tanda kurung. PHP akan mencari function dengan nama hello dan kemudian menjalankannya. Sebagai hasilnya kita mendapatkan tulisan ‘Hello World’.

Konsep ini juga bisa kita gunakan untuk mengirimkan function sebagai argument.

Kita langsung praktek. Kita buka kembali file terakhir kita mengenai latihan Tahun Kabisat. Disini kita memiliki 3 buah function untuk solusi tahun kabisat, yaitu function isLeapYear, isLeapYear2 dan isLeapYear3. Namun perhatikan pada waktu kita hendak melakukan tes, kita ingin tes ketiga function, namun caranya kita melakukan copy paste kode sebanyak 3 kali. Dan perbedaan dari source codenya hanya berada di nama function yang hendak digunakan untuk tes. Nah, dengan menggunakan fitur Variable Functions, kita bisa melakukan refactoring terhadap fungsi testLeapYear.

Kita coba konsepnya terlebih dahulu ya. Misalkan kita buat variable $functionName untuk menampung nama function yang hendak digunakan, yaitu ‘isLeapYear’. Nah, pada saat hendak menjalankan, maka kita memanggil function dari nama variablenya $functionName.

Pada saat kita jalankan, kode berjalan normal ya. Tidak ada perubahan apa-apa. Namun agar lebih jelas, kita tambahkan $functionName(): pada hasil yang hendak ditampilkan di layar. Kita coba jalankan. Dan berhasil berjalan tanpa error ya. Sekarang kita bisa melihat nama function yang digunakan untuk menentukan tahun kabisat.

Kalau kita hendak melakukan test terhadap ketiga versi fungsi isLeapYear, maka seharusnya kita tidak boleh melakukan copy paste kode yang sama sebanyak 3 kali seperti ini ya. Cara yang benarnya adalah kita ubah menjadi satu function khusus, yang kemudian kita panggil sebanyak 3 kali. Namun setiap kali kita panggil, kita harus menggunakan function isLeapYear yang berbeda.

Untuk itu kita buat function baru ya. Kita beri nama function executeLeapYear(int $year, string $functionName). Lalu kita copy paste kode testLapYear yang awal ke dalam executeLeapYear. Kita hapus inisialisasi nilai $functionName karena sudah berubah menjadi parameter. Sedangkan isi testLeapYear kita hapus, dan kita ganti jadi memanggil executeLeapYear sebanyak 3 kali.

  executeLeapYear($year, 'isLeapYear');
  executeLeapYear($year, 'isLeapYear2');
  executeLeapYear($year, 'isLeapYear3');

Kita simpan dan jalankan. Kode berjalan dengan benar tanpa error ya.

Kita telah berhasil melakukan refactoring terhadap function testLeapYear dengan menggunakan fitur Variable Functions. Kita membuat function executeLeapYear dimana kita bisa menentukan function mana yang hendak dijalankan sebagai parameter. Kemudian function ini kita panggil di dalam testLeapYear sebanyak 3 kali, untuk melakukan tes terhadap function isLeapYear, isLeapYear2 dan isLeapYear3.

2 Jam 41 Menit

Dengan menggunakan fasilitas tanya jawab, maka Anda bisa bertanya dan akan dijawab langsung oleh instruktur kursus.

Anda belum terdaftar pada kursus ini sehingga tidak bisa mengajukan pertanyaan.