Belajar Dasar Dasar Pemrograman PHP : Function


Halo sobat lautan, semoga sehat selalu ya.
Kali ini, kita akan kembali mempelajari bahasa pemrograman. Setelah sebelumnya, kita belajar C++, HTML, CSS, JavaScript, kali ini kita akan belajar PHP. Sebelumnya, kita telah mempelajari tentang kontrol pemrograman PHP. 
Tentunya kita telah mengenai logika IF, Else, Else IF, Switch dan lainnya. 

Jika anda belum paham, anda bisa baca ulang di sini

Baca juga : Belajar dasar-dasar pemrograman PHP : kontrol pemrograman PHP

Pada artikel ini, kita akan membahas function pada pemrograman PHP. Apa itu function ?
Function adalah kode program yang dirancang untuk menyelesaikan sebuah tugas tertentu, dan merupakan bagian dari program utama. 

Sering diperlukan untuk memecah alur program yang besar menjadi beberapa kode program kecil agar mudah dikelola. Dalam dunia pemrograman, function sering disebut sebagai subroutine. Dalam PHP, function disediakan dalam jumlah ratusan bahkan ribuan untuk membantu kita dalam membuat program. 
Dengan function, kita dapat melakukan pemroresan string, pencarian array, akses database

Membuat Function di PHP

Cara membuat funtcion di PHP dikenal dengan sebutan user defined function. Fungsi tersebut digunakan untuk membuat program kecil yang bisa menjalankan tugas-tugas tertentu.

Berikut adalah struktur dasar pembuatan fungsi di PHP

function nama_fungsi ($arg1, $arg2) {
    statement;
    statement;
}

Untuk dapat membuat fungsi, maka harus dilalui dengan langkah pertama membuat keyword function, kemudian memberikan nama sesuai dengan fungsi tersebut. 
Terkait nama function, aturannya sama dengan variabel, contoh tidak boleh mengandung spasi, bukan angka diawalnya, dan lain sebagainya. 
Nama function bersifat case insensitive, yang artinya tidak membedakan huruf besar dan huruf kecil. Ada baiknya dalam function PHP, ditulis dengan gaya snake_case.

Selanjutnya adalah penulisan argumen, argumen digunakan untuk inputan function. Dalam satu function bisa terdiri dari beberapa argumen ,tergantung dari kebutuhan. Penulisan argumen dipisah dengan tanda koma
Statement, adalah kode program penyusun function, dan harus berada didalam block function yang ditandai dengan kurung kurawal '{' dan '}'.

Berikut adalah contoh function sederhana

<?php
    function salam(){
                 echo "<p>Selamat Pagi</p>";
}
?>

Memanggil Function

Dalam penulisan function, terdapat yang namanya "calling a function". Calling a function dilakukan dengan menulis nama function, yang kemudian diikuti argumennya. Jika fungsi tersebut tidak memiliki argumen, maka tetap ditulis dengan tanda kurung kosong

Contoh;

<?php
    function salam(){
                 echo "<p>Selamat Pagi</p>";
}
    salam();   // Selamat Pagi 
?>

Argumen Function

Lihat script dibawah baik-baik

<?php
    function salam($nama){
                 echo "<p>Selamat Pagi, $nama</p>";
}
?>

Dalam script diatas, kita memasukkan 1 argumen untuk fungsi salam(). Argumen pada sebuah fungsi adalah variabel input untuk fungsi tersebut. Didalam function, kita bisa menggunakan variabel $nama sesuai dengan kebutuhan, dan kali ini Lautan akan menampilkan argumen $nama dalam perintah echo. Contoh ;

<?php
    function salam($nama){
                 echo "<p>Selamat Pagi, $nama</p>";
}
   salam("Andri"); // Selamat Pagi, Andri 
?>

String Andri dipindahkan ke dalam variabel argumen $nama dalam function salam(). 
Kita juga dapat memberikan gaya lain, seperti satu function salam(), dengan 2 argumen. 
Berikut ini adalah contohnya ;

<?php
    function salam($waktu, $nama){
                 echo "<p>Selamat $waktu, $nama</p>";
}
   salam("Malam", "Andri");  // Selamat Malam, Andri
   salam("Siang", "Andi");    // Selamat Siang, Andi
   salam("Pagi", "Bolang");  // Selamat Pagi, Bolang
?>

Kita juga dapat melakukan penulisan dengan cara yang berbeda, seperti menyimpan nilai yang akan diinput ke dalam variabel. Contoh;

<?php
    function salam($waktu, $nama){
                 echo "<p>Selamat $waktu, $nama</p>";
}
   $event="Belajar PHP";
   $user="Andri";

   salam($event, $user);  // Selamat Belajar PHP, Andri
?>

Mengembalikan Nilai Function

Untuk dapat memahami bagian ini, perhatikan contoh dibawah ini

<?php
 function tambah($satu,$dua){
 $hasil = $satu + $dua;
 echo $hasil;
}

 tambah(6,10); // 16
 echo "<br>";
 tambah(100,99); // 199
?>

Pada script diatas, terdapat fungsi tambah() dengan 2 argumen. Sesuai dengan namanya, fungsi ini menambahkan argumen pertama dengan argumen kedua dan menampilkan hasilnya. Tapi bagaimana caranya, jika kita ingin memproses dulu nilai ini sebelum ditampilkan? Berikut adalah perubahannya.


<?php
 function tambah($satu,$dua){
 $hasil = $satu + $dua;
 return $hasil;
 }

 $a=tambah(6,10);
 echo $a; // 16
?>

Lihatlah di dalam function tambah(), tidak lagi menggunakan perintah echo, di ganti dengan perintah return. Perintah return untuk menginstruksikan sebuah agar nilai akhir fungsi 'dikembalikan'. 

Ketika Lautan memanggil fungsi tambah(6,10), fungsi akan mengembalikan nilainya. Selanjutnya nilai kembalian di simpan dalam variabel $a, dan kemudian hasilnya di tampilkan dengan perintah echo. 

Perlu diketahui, nilai kembalian juga tidak harus disimpan dalam variabel, tetapi juga bisa ditampilkan pada saat pemanggilan perintah echo

<?php
 function tambah($satu,$dua){
 $hasil = $satu + $dua;
 return $hasil;
 }

 echo tambah(5,7);
 echo "<br>";

 echo "Hasil dari 6 + 9 adalah: ". tambah(6,9);
 echo "<br>";

 echo tambah(99,1).", Bisa didapat dari 99 + 1";
 ?>

 /* Output-------------------------------------------------------
 12
 Hasil dari 6 + 9 adalah: 15
 100, Bisa didapat dari 99 + 1
 --------------------------------------------------------------*/

Cara pemanggilan seperti ini banyak digunakan untuk fungsi-fungsi singkat PHP. Tidak hanya mengembalikan nilai, return juga berguna untuk memberhentikan fungsi, contoh 

<?php
 function tambah($satu,$dua){
 $hasil = $satu + $dua;
 return $hasil;
 echo "Kalimat ini tidak akan pernah dijalankan...";
 }

 echo tambah(5,7); // 12
 ?>

Perintah echo di dalam fungsi tambah() tidak akan pernah dijalankan, karena ketika di dalam sebuah fungsi ditemukan perintah return, proses fungsi langsung berhenti dan seluruh perintah lain setelahnya akan diabaikan. Ini mirip seperti perintah break pada perulangan.

Variabel Scope

Pembahasan ini berkaitan dengan sejauh mana sebuah variabel masih dapat diakses. Ketika sebuah variabel di definisikan di dalam function, variabel tersebut berstatus sebagai local variable. Variabel ini tidak bisa diakses dari luar fungsi tersebut. Contoh ;

<?php
 function test(){
 $a="variabel lokal";
}
 test();
 echo $a; // Notice: Undefined variable: a
?>

Script diatas akan menghasilkan error, karena variabel $a merupakan local variable yang tidak bisa diakses dari luar fungsi. Lawan dari local variable adalah Global variable. Global Variable adalah sebutan untuk variabel yang di defenisikan di luar fungsi. Tapi di dalam fungsi, variabel ini juga tidak bisa di akses. Contoh ;

<?php
 $a="variabel global";

 function test(){
 echo $a;
}

 test(); // Notice: Undefined variable: a
?>

Kesimpulannya, setiap function memiliki dunianya sendiri. Variabel yang di defenisikan di dalam fungsi tidak bisa di akses, begitu sebaliknya. Untuk situasi khusus, kita bisa memaksa function untuk membaca global variabel, yakni dengan menambahkan keyword global di depan variabel tersebut:

<?php
 $a=100;

 function test(){
 global $a;
 $a=500;
 echo $a;
}

 echo $a; // 100
 echo "<br>";

 test(); // 500
 echo "<br>";

 echo $a; // 500
 echo "<br>";
?>

Keyword global $a di dalam function test() akan memaksa fungsi tersebut menggunakan
variabel global. Sekarang, ketika Lautan mengubah isi variabel $a menjadi 500 dari dalam fungsi, nilai variabel $a diluar fungsi juga akan ikut berubah.

Penggunaan perintah global seperti ini tidak terlalu banyak digunakan. Bahkan dari beberapa referensi, hal ini tidak disarankan. Mengubah variabel global dari dalam sebuah fungsi sering menjadi sumber bug yang susah dicari.

Sebaiknya kita menggunakan argumen untuk menginput sesuatu ke dalam fungsi dan mengambil nilai fungsi tersebut dengan perintah return. Sehingga, sebuah fungsi tetap menjadi unit yang terpisah dan tidak ada variabel yang saling tercampur.

Static Variabel

Static varibel adalah jenis variabel yang mempertahankan nilainya dalam setiap pemanggilan fungsi. Pada kondisi normal, nilai sebuah variabel akan otomatis dihapus pada saat fungsi selesai dijalankan dan akan dibuat ulang pada saat fungsi tersebut dipanggil kembali. Perhatikan contoh berikut:

<?php
 function coba()
 {
 $a=0;
 $a=$a+1;
 return "Ini adalah pemanggilan ke-$a fungsi coba() <br />";
}

 echo coba(); // Ini adalah pemanggilan ke-1 fungsi coba()
 echo coba(); // Ini adalah pemanggilan ke-1 fungsi coba()
 echo coba(); // Ini adalah pemanggilan ke-1 fungsi coba()
 echo coba(); // Ini adalah pemanggilan ke-1 fungsi coba()
?>

Dalam contoh diatas, Lautan membuat semacam counter untuk menghitung berapa kali fungsi coba() dipanggil. Seperti yang terlihat, variabel $a akan terus di reset menjadi nol dalam setiap pemanggilan fungsi. Jika variabel tersebut dinyatakan sebagai static variabel, nilainya akan tetap dipertahankan. Berikut contohnya:

<?php
 function coba()
{
 static $a=0;
 $a=$a+1;
 return "Ini adalah pemanggilan ke-$a fungsi coba() <br />";
 }

 echo coba(); // Ini adalah pemanggilan ke-1 fungsi coba()
 echo coba(); // Ini adalah pemanggilan ke-2 fungsi coba()
 echo coba(); // Ini adalah pemanggilan ke-3 fungsi coba()
 echo coba(); // Ini adalah pemanggilan ke-4 fungsi coba()
?>

Sekarang, nilai variabel $a akan terus naik setiap kali pemanggilan fungsi coba(). Perhatikan, walaupun di dalam fungsi coba terdapat perintah untuk mereset variabel $a = 0, tapi efek perintah statis akan mempertahankan nilai yang ada.

Default Argument

Default argument adalah nilai awal yang akan digunakan jika argument tidak ditulis.
Berikut contohnya:

<?php
 function salam($nama="Anton"){
 echo "<p>Selamat Siang, $nama </p>";
}

 salam(); // Selamat Siang, Anton
?>

Saat mendefenisikan fungsi salam(), Lautan menambahkan sesuatu di argumen. Selain menulis variabel $nama, Lautan mengisi variabel ini dengan “Anton”. Sekarang, string “Anton” akan digunakan ketika fungsi salam dipanggil tanpa argumen.
Bagaimana jika Lautan memangilnya dengan argumen?

 <?php
 function salam($nama="Anton"){
 echo "<p>Selamat Siang, $nama </p>";
}

 salam(); // Selamat Siang, Anton
 salam("Siska"); // Selamat Siang, Siska
 salam("Indonesia..!"); // Selamat Siang, Indonesia..!
?>

Ketika fungsi salam() ditulis dengan argument, nilai argumen inilah yang akan dipakai.
Jika tidak ditulis, nilai default-lah yang akan digunakan.Bagaimana jika ada 2 argumen? Tidak masalah:

<?php
 function salam($waktu="Malam", $nama="Anton"){
 echo "<p>Selamat $waktu, $nama </p>";
}

 salam(); // Selamat Malam, Anton
 salam("Pagi"); // Selamat Pagi, Anton
 salam("Datang", "pak Presiden!"); // Selamat Datang, pak Presiden!
?>

Selain itu, Lautan juga bisa membuat seperti berikut:

<?php
 function salam($waktu, $nama="Anton"){
 echo "<p>Selamat $waktu, $nama </p>";
}

 salam("Sore"); // Selamat Sore, Anton
 salam("Pagi"); // Selamat Pagi, Anton
 salam("Datang", "Randy"); // Selamat Datang, Randy
 salam(); // Warning: Missing argument 1 for salam()
?>

Kali ini fungsi salam() terdiri dari 2 argumen. Argumen pertama tanpa nilai default, sedangkan argumen kedua memiliki nilai defaut (argumen $nama).
Jika didefenisikan seperti ini, fungsi salam() wajib ditulis sekurang-kurangnya dengan 1 argumen, yakni argumen untuk $waktu. Dengan menambahkan default argument, kita bisa merancang sebuah fungsi dengan berbagai keperluan. Lautan bisa membuat fungsi yang menerima 4 argumen, tapi hanya 1 yang wajib ditulis, seperti berikut:

<?
 function coba($a,$b="Sedang",$c="Belajar",$d="PHP") {
 // isi function disini
 // isi function disini
 }
?>

Fungsi coba diatas bisa dipanggil dengan 4 argumen, tapi sekurang-kurangnya argumen pertama yang wajib ditulis. Ketika kita menggabung penulisan argumen yang tanpa nilai default, default argumen HARUS ditulis paling akhir.

Sebagai contoh, Lautan tidak bisa mendefenisikan sebuah fungsi seperti ini:

<?
 function coba($a="Belajar PHP",$b) {
 // isi function disini
 // isi function disini
 }
 ?>

<?
 function coba2($a="Belajar PHP",$b, c="LautanIT") {
 // isi function disini
 // isi function disini
 }
?>

Argumen yang tanpa nilai default, harus berada di posisi paling depan, baru diikuti dengan
argumen yang memiliki nilai default. Fungsi coba() dan coba2() diatas seharusnya ditulis ulang menjadi:

<?
 function coba($b, $a="Belajar PHP") {
 // isi function disini
 // isi function disini
 }
 ?>

 <?
 function coba2($b, $a="Belajar PHP", c="LautanIT") {
 // isi function disini
 // isi function disini
 }
 ?>

Sekian dan terima kasih ;D.

Post a Comment

1 Comments