Selain memakai fungsi bawaan PHP atau built-in function, untuk keperluan yang lebih khusus kita bisa membuat fungsi sendiri atau user defined function.
Pada tutorial kali ini akan dibahas tentang cara membuat fungsi / function dalam bahasa PHP.
Format Dasar Penulisan Fungsi / Function PHP
Sebuah function berisi kode program yang dirancang untuk menyelesaikan sebuah tugas tertentu. Tujuannya untuk kepraktisan dan kemudahan dalam membuat program utama.
Ketika sebuah kode ditulis dalam bentuk fungsi, maka kita bisa memanggil fungsi tersebut berkali-kali tanpa perlu membuat ulang kode programnya.
Berikut format dasar cara pembuatan function dalam bahasa PHP:
function nama_function ($parameter1, $parameter2) { // kode program di sini... // kode program di sini... return $nilai_akhir }
- Kata function adalah instruksi kepada PHP bahwa kita akan membuat fungsi.
- nama_function adalah nama dari fungsi yang akan ditulis. Aturan penamaan sama seperti variabel, yakni tidak boleh diawali angka dan tidak boleh mengandung spasi.
- $parameter1, $parameter2 adalah variabel perantara untuk menampung nilai input. Tergantung kebutuhan, sebuah function bisa saja memiliki 1, 2 atau lebih parameter.
- return adalah perintah khusus untuk proses output. Perintah ini akan 'mengembalikan' sebuah nilai ke kode program yang memanggil function. Jika ditulis return $nilai_akhir, maka isi variabel $nilai_akhir yang akan dikembalikan. Perintah return juga akan menghentikan kode function.
Perhatikan juga bahwa semua kode function berada di dalam blok program yang ditandai dengan kurung kurawal di baris pertama dan baris terakhir.
Agar lebih mudah dipahami, kita akan mencoba membuat beberapa fungsi PHP sederhana.
Cara Membuat Fungsi / Function PHP
Sebagai contoh pertama dari user defined function, saya akan membuat fungsi sederhana untuk perkalian 2 angka. Nama fungsi ini adalah perkalian dan butuh 2 parameter tipe data angka (integer atau float). Berikut cara membuatnya:
<?php //definisikan fungsi perkalian function perkalian($angka1, $angka2) { $a = $angka1; $b = $angka2; $hasil = $a*$b; return $hasil; } //pemanggilan fungsi $hasil = perkalian(4,5); echo "Perkalian 4 x 5 adalah $hasil"; echo "<br>"; echo "Perkalian 7 x 2 adalah ".perkalian(7,2); ?>
Pada baris 3 saya mendefinisikan fungsi perkalian() dengan 2 parameter. Sepanjang blok kode function, parameter bisa diproses sebagaimana layaknya variabel biasa. Kita bebas menentukan nama parameter ini seperti $angka1 dan $angka2.
Di dalam fungsi perkalian(), terdapat variabel $a dan $b yang dipakai untuk menampung nilai $angka1 dan $angka2, pemindahan variabel ini sebenarnya tidak wajib, sekedar mempermudah penulisan saja.
Variabel $hasil kemudian dipakai untuk menampung nilai akhir dari perkalian $a*$b yang selanjutnya dikembalikan dengan perintah return $hasil.
Perintah return secara otomatis menutup fungsi. Jika kita masih memiliki kode program lain setelah return, perintah tersebut tidak akan diproses. Oleh karena itu perintah return harus diletakkan di akhir penulisan fungsi.
Di baris 12 dan 14 saya memanggil fungsi perkalian() dan menampilkan hasilnya dengan perintah echo.
Sebagai pembanding, fungsi perkalian() juga bisa ditulis dengan lebih singkat:
<?php //definisikan fungsi perkalian function perkalian($angka1, $angka2) { return $angka1*$angka2; } //pemanggilan fungsi echo "Perkalian 12 x 6 adalah ".perkalian(12,6); echo "<br>"; echo "Perkalian 99 x 9 adalah ".perkalian(99,9); ?>
Di baris 4, saya langsung mengembalikan hasil perkalian kedua parameter $angka1*$angka2.
Membuat Fungsi Hitung Luas Lingkaran
Contoh selanjutnya, saya akan buat fungsi untuk mencari luas lingkaran. Seperti yang kita ketahui, luas lingkaran di dapat dengan rumus: pi*jari-jari*jari-jari.
Berikut contoh kode program untuk menghitung luas lingkaran dengan bahasa PHP:
<?php //pemanggilan fungsi echo "Luas Lingkaran dengan jari-jari 7 cm = ".luas_lingkaran(7)." cm"; //definisikan fungsi luas_lingkaran function luas_lingkaran($jari2) { return M_PI*$jari2*$jari2; } ?>
Hasil kode program:
Luas lingkaran dengan jari-jari 7 cm = 153.9380400259 cm
Di awal kode program, saya langsung memanggil fungsi luas_lingkaran(7), padahal fungsi tersebut belum di definisikan. Ini tidak error karena pada saat kode PHP berjalan, web server akan men-compile fungsi-fungsi yang ada terlebih dahulu, sehingga kita bisa memanggil fungsi yang di definisikan setelah dipanggil.
Di dalam fungsi luas_lingkaran(), satu-satunya argument yang diperlukan adalah panjang jari-jari lingkaran. M_PI adalah konstanta matematis bawaan PHP, nilainya sama dengan konstanta pi, yaitu 3,14. Namun kita juga bisa menulisnya manual menjadi 3.14*$jari2*$jari2
.
Perbedaan antara Argument dan Parameter
Pada penjelasan tentang fungsi perkalian() dan luas_lingkaran(), saya menggunakan 2 istilah untuk nilai inputan fungsi, yakni argument dan parameter. Tetapi apa perbedaan keduanya?
Argumen merujuk kepada inputan fungsi pada saat fungsi dipanggil, contohnya pada saat memanggil fungsi perkalian(4,5), angka 4 dan 5 disebut sebagai argumen.
Sedangkan parameter merujuk ke inputan fungsi pada saat pendefinisian fungsi. Ketika membuat fungsi perkalian dengan perintah function perkalian($angka1, $angka2), maka $angka1 dan $angka2 adalah parameter.
Pada penggunaan sehari-hari, istilah parameter dan argumen cukup sering dipertukarkan. Termasuk dalam manual resmi PHP istilah argument lebih sering dipakai. Sepanjang tutorial di duniailkom, saya akan memakai istilah parameter dan argument secara bergantian.
Sepanjang tutorial ini kita telah membahas cara membuat function dalam bahasa PHP.
Selanjutnya akan dibahas tentang batasan ruang lingkup dari sebuah variabel, yakni pengertian variabel scope, global variabel, dan static variabel bahasa PHP.
Bang. terkadang aku masih bingung, kenapa pengajaran php sama javascript harus di matematikakan. emang apa hubungannya sama pembuatan website. makasih
Salah satu alasannya untuk mencontohkan cara penggunaan. Untuk tipe data seperti integer, float, atau desimal, memang harus menggunakan angka. Selain itu fungsi matematika sederhana seperti ini memang banyak digunakan pada saat pembuatan website.
Sebagai contoh, beberapa website menggunakan 'counter' untuk menghitung jumlah pengunjung tiap harinya, dan ini menggunakan matematika (dimana setiap pengunjung yang datang, jumlah counter di tambah 1).
Diatas kolom komentar ini saya juga menampilkan jumlah komentar yang ada : 2 response on "Tutorial Belajar PHP Part 40: Cara Penulisan dan Pembuatan Fungsi PHP", inipun dihitung dengan matematika sederhana (penambahan).
Untuk website sederhana, memang tidak perlu fungsi matematis seperti ini, tapi jika kita ingin membuat website penghitung bunga kredit, online shop (menghitung total belanjaan), beli tiket (menghitung total biaya), semuanya butuh matematika :)
singkat padat dan jelas ini yang saya cari . . . . dapat tongkrongan baru ngabuburit sambil belajar PHP
Silahkan gan.. semoga bermanfaat :)
Makasih ilmunya gan. Oh iya, kira-kira jumlah parameter itu ada batasnya nggak?
Sepengetahuan saya tidak diatasi gan. Tapi kalau terlalu panjang jadi ribet nulisnya.
Beberapa fungsi (terutama di framework PHP) menggunakan array sebagai parameter, sehingga lebih fleksibel.
misi gan, mau nanya
saya lagi ngerjain sesuatu :-)
dan ada beberapa Scipt yang tidak aku ngerti
scriptnya seperti ini :
1. GetaField('jurusan', 'Kode', $kdj, 'Predikat')
2. GetFields('krs', "Bobot>0 and NotActive='N' and NIM", $nim, "sum(SKS) as kmu, sum(SKS*Bobot) as bbt")
mohon penjelasan (deskripsi) dari kedua script tersebut dan apakah ada perbedaan antara fungsi GetaField dengan GetFields ?
Mohon pencerahannya
:-)
Sepertinya kedua fungsi ini didefenisikan sendiri gan (bukan bawaan PHP), jadi untuk mengerti cara kerjanya harus membaca petunjuk penggunaan, atau melihat kodenya langsung.
Cara paling cepat sih bisa ditanya kepada yang buat kode tersebut gan.. :)
gan, kalo nampilin bilangan ganjil dengan function bagaimana?
Bang admin, kalo fungsi yang returnya berupa array,, cara echonya ke dalam tabelgimana??
Untuk menampilkan hasil array bisa menggunakan perulangan for each, Nanti tinggal di sesuaikan saja dengan kolom apa yang ada di dalam tabel. Idenya bisa lihat Cara Penyajian Data MySQL dalam bentuk tabel HTML dengan CSS
Ini sangat bergantung dengan bagaimana isi data arraynya gan. Jika sudah paham strukur tabel HTML, dan perulangan foreach PHP, saya rasa bisa merancang kode programnya :)
Gan, maaf saya bingung nih bagaimana dengan code berikut ini supaya jalan di php5 ?
function isi_keranjang(){
$isikeranjang = array();
$sid = session_id();
$sql = mysql_query("SELECT * FROM keranjang WHERE id_session='$sid'");
while ($r=mysql_fetch_array($sql)) {
$isikeranjang[] = $r;
}
return $isikeranjang;
}
// panggil fungsi isi_keranjang dan hitung jumlah produk yang dipesan
$isikeranjang = isi_keranjang();
$jml = count($isikeranjang);
Thank you sebelumnya atas pencerahannya Gan…
Salam
Bosno
G bisa jalannya kenapa mas? ada kode errornya?
Soalnya saya lihat sekilas tidak ada yang salah dari kode diatas (sepanjang kodenya benar dan databasenya sesuai). Oh ya, PHP 5 sudah ada sekitar 10 tahun mas (sejak 2004), jadi menurut saya bukan masalah di versi PHPnya.
Iya mas Andre, script ini memang sdh lama jalan ,terus koneksi db nya saya ganti ke mysqli (kan mysql sdh mau hilang), nah setelah di ganti yg lain ok cuma bagian itu yg ga jalan, ga ada error yg keluar..script itu kan bagian dari update tabel order_detail, tabelnya tidak terupdate….. semua perintah mysql_query( …) saya ganti dengan $db->query(….),.gitu mas, ada saran? Makasih ya mas andre
Banyak kemungkinannya sih mas, bisa dari querynya, kode PHPnya, atau bahkan tag HTML yang g pas. Saya g bisa memastikan errornya dimana mas…
Ok mas Andre, saya coba-coba lgi, nanti saya share hasilnya buat referensi yg lain juga,..makasih ya mas Andre
Kak,ingin bertanya,pengertian dari "return" lebih jelas dan detail dng
Hehe, sepertinya sudah saya jelaskan semua disini. Agar lebih paham, langsung praktekkan dengan kode program PHP :)
Permisi, saya mau tanya. Saya punya script php. Didalamnya ada variabel yang diawali karakter '@'. Nah, karakter '@' ini fungsinya untuk apa, ?
Trimsss…. :-)
Itu untuk menyembunyikan error, misalnya:
<?php
$a= 5/0; // Warning: Division by zero
?>
Kita tidak bisa membagi sebuah bilangan dengan nol. Untuk menyembunyikan error ini bisa ditambahkan karakter '@' didepannya:
<?php
@$a= 5/0; // Error tidak ditampilkan
?>
Secara umum hal seperti ini tidak disarankan, karena kode program yang error seharusnya dicari solusinya, bukan disembunyikan :)
Itu maksudnya titik dlm kode:
".luas_lingkaran bla bla bla
^ itu titik fungsinya buat apaan ya gan? Dan apabila gk dikasih titik, apa kodenya error?
Itu operator penyambungan string gan. Kalau dihapus tentu saja akan jadi error, hehe…
Operator titik ini pernah saya bahas di tipe data string PHP dan operator string. Silahkan di baca2 lagi part awal tutorial PHP di duniailkom, sudah saya bahas kok :)
Gan, fungsi return ( mengembalikan nilai ) itu maksudnya gimana ya ? kurang ngerti, hehehe ..
Sederhananya, setiap function yang dijalankan mesti ada hasilnya, misalnya:
$hasil = luas_lingkaran(7);
Variabel $hasil harusnya berisi suatu angka, misalnya 153. Darimana angka 153 ini berasal? dari perintah return di dalam function.
Pertanyaan ini sebenarnya bukan murni tentang PHP, tapi tentang dasar2 algortima. Agar lebih paham, agan bisa cari buku khusus tentang algoritma yang akan membahas struktur2 pemrograman seperti kondisi if, perulangan for, termasuk function seperti ini.
Hampir setiap bahasa pemrograman menggunakan perintah return ketika membuat function, tidak hanya PHP.
saya coba nulis 2 fungsi
fungsi akar sama pangkat 2, kenapa jadinya gini..
E_WARNING : type 2 — pow() expects exactly 2 parameters, 1 given — at line 10
bagaimana caranya buat 2 atau lebih fungsi yg berbeda dalam satu php??
udah bisa.. :) hehe..
Hehe, siip gan…
gan ane coba bikin looping di fungsi tapi kok hasilnya error ya, kira2 apanya yang salah
<?php
function looping($i)
{
for($i=1;$i<=5;$i++){
return $i;
}
}
echo $i;
?>
<?php
function lol(){
for ($i= 1; $i <= 5; $i++)
{
echo $i;
echo "<br />";
}
}
echo lol();
?>
Terimakasih koreksinya gan anas… kelupaan saya jawab komentarnya :)
kalo saya pake kodingan gan anas terus saya rubah jadi gini :
<?php
function lol(){
for ($i= 1; $i <= 5; $i++)
{
return $i; //saya rubah jadi return
echo "<br />";
}
}
echo lol();
?>
kok yang muncul pas saya panggil fungsinya cuma angka 1 keluarnya ?
saya masih agak bingung tentang return ini. Return itu untuk mengakhiri dan menyimpan hasil fungsi ke suatu variable kan ?
kalo menurut pemikiran saya seperti ini bener gak : "karena return itu untuk menghentikan proses fungsi, pada saat melakukan pertama kali perulalangan karena adanya statemen return didalam perulangan maka pada saat pertama kali proses perulangan akan berhenti dan menghasilkan nilai 1 dari hasil hanya satu kali perulangan tersebut ?"
Yup betul, perintah return akan menghentikan seluruh proses di dalam function. Jadi perulangannya hanya bisa dijalankan 1 kali saja.
Normalnya, jika di dalam function ada perulangan, perintah return di letakkan di luar perulangan, atau di dalam kondisi if.
Assalamualaikum. Maaf nih gan, mau tnya perintah2 program php menggunakan operator pembanding dalam menghitung luas lingkaran. Mhn bantuannya..
Waalaikumsalam… kebetulan saya sedang ada kerjaan lain nih. Requestnya ditampung dulu y, atau mungkin ada temen2 lain yang bisa bantu..
Assalamu 'alaikum mas, terimakasih sebelumnya penjelasan tentang returnnya, akhirnya mengerti tentang return. Tapi masih ada yang bingung nih mas, biasanya saya melihat contoh fungsi pada kode pemrograman lain dan menggunakan return 0; itu maksudnya apa ya mas? terimakasih.
Ada beberapa bahasa pemrograman yang mengharuskan return dari sebuah function, seperti C dan C++. Jika kita membuat function yang sebenarnya tidak perlu mengembalikan nilai, bisa diakali dengan menulis return 0. Artinya nilai 0 sebagai kembalian dari function. Bisa juga dibuat return 9, return 10000, atau yang lain. Tp yang paling simple cukup ditulis return 0.
Kalau di PHP, sebuah function boleh tidak mengembalikan nilai (tidak akan error), jadi tidak perlu pakai return 0 kalau memang tidak dibutuhkan…
sip, Terimkasih mas.
mas maap ni OOT. mas bisa gk buat tutorial membuat kolom komentar di setiap artikel menggunakan php (kaya yg skrng ini. ane komen artikel agan). ane lg ada tugas nih, dan msh ada yg kurang yaitu membuat fitur komentar di setiap artikel. dan klo bisa agan jls in kode nya gan biar bisa ane terapin di project ane, jd bisa ngerti gmn caranya nerapin kode nya di project yg sdh berjalan. makasih gan
Sangat membantu :)
thanks gan ^_^
Manfaat sekali, setelah lulus kuliah baru paham deh mengenai fungsi dan return stlah baca artikel dan komen2 di blog ini.. dulu kebanyakan main kali yee hehehe
Penulisan fungsi sangat tepat
terimakasih mas penjelasannya, dari banyak ebook dan website yg saya jelajahi untuk bljr function, ternyata paling gampang disini, makasih bgt mas
Siip, semoga bisa bermanfaat..
gan apakah bisa function inputannya variable yang didalamnya berisi array. dan function tersebut digunakan untuk proses matematika pada salah satu array itu. serta outputnya berupa hasil akhir saja.
Assalamualaikum, terimakasih banyak mas materinya, sangat membantu
Btw ada file download untuk semua materi php di site ini ga?
Makasih ?
Waalaikumsalam… belum tersedia nih, tapi jika berminat bisa order eBook PHP Uncover dengan materi yang jauh lebih lengkap, sekalian untuk support duniailkom agar bisa lebih baik lagi :)
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'batralaga_scripts' not found or invalid function name in C:\xampp\htdocs\batralaga.com\wp-includes\class-wp-hook.php on line 286
gimana caranya? mngatasi?
Ini sedang utak-atik kode program WordPress bukan y? kalau iya, bisa coba dibaca2 lagi panduan cara penggunaannya di https://codex.wordpress.org. Atau jika mengikuti panduan dari sumber lain, bisa disesuaikan versi WordPressnya.
Mas Admin, Untuk fungsi apakah dibuat dalam sebuah form tersendiri dan bisa dipanggil dari form lain, atau kita buat fungsi dalam setiap form. Terima kasih
Fungsi atau function ini bersifat umum, hanya sebagai alat bantu untuk membuat program. Jika formnya cukup rumit dan perlu dipecah menjadi beberapa function g ada masalah, atau jika tidak pakai function pun juga g masalah…
Boleh coba pelajari lagi PHP secara berurutan dari awal agar lebih pas memahami konsep function ini dan juga cara pemrosesan form di PHP.
Terima kasih …… Artikel-artikelmu banyak mnginspirasi saya