Selain menggunakan fungsi bawaan PHP, untuk keperluan yang lebih khusus kita bisa membuat fungsi sendiri. Dalam tutorial kali ini kita akan membahas Cara Penulisan dan Pembuatan Fungsi dalam PHP.
Cara Penulisan Fungsi dalam PHP
Sebuah fungsi merupakan kode program yang dirancang untuk menyelesaikan sebuah tugas tertentu. Tujuan memisahkan sebuah kode menjadi fungsi adalah untuk kepraktisan dan kemudahan dalam membuat program utama. Karena jika dijadikan fungsi, maka untuk menjalankan tugas yang sama, kita tinggal memanggil fungsi tersebut, tanpa perlu membuat kembali kode programnya.
Untuk membuat fungsi di dalam PHP, berikut adalah format dasar pembuatan fungsi:
function nama_fungsi ($parameter1, $parameter2) { // kode program fungsi return $nilai_akhir }
- Kata function adalah instruksi kepada PHP bahwa kita akan membuat fungsi
- nama_fungsi adalah nama dari fungsi yang akan ditulis
- $parameter1, $parameter2 adalah variabel perantara yang akan menyimpan inputan yang diperlukan dalam pemrosesan fungsi (argumen). Tergantung kebutuhan, anda bebas merancang seberapa banyak parameter yang dibutuhkan.
- return adalah perintah khusus untuk fungsi, dimana kata return menginstruksikan kepada PHP bahwa pemrosesan fungsi telah selesai. return $nilai_akhir berarti bahwa fungsi akan ‘mengembalikan’ $nilai_akhir sebagai hasil dari fungsi.
Perhatikan juga bahwa fungsi ini berada di dalam blok program yang ditandai dengan kurung kurawal pada baris pertama dan terakhir fungsi.
Agar lebih mudah dipahami, kita akan mencoba membuat beberapa fungsi PHP sederhana.
Contoh Pembuatan Fungsi PHP
Sebagai contoh pertama fungsi PHP, saya akan membuat fungsi sederhana untuk perkalian 2 angka. Nama fungsi ini adalah perkalian, dan membutuhkan 2 argumen dengan tipe data angka (integer atau float), berikut adalah cara pembuatan dan penggunaan fungsi perkalian:
<?php //pembuatan fungsi 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 ke-3, saya mendefenisikan fungsi perkalian() yang memerlukan 2 parameter. SParameter ditulis sebagai variabel, dan anda bebas menentukan nama variabel ini, dalam contoh diatas, parameter untuk fungsi perkalian() adalah $angka1 dan $angka2.
Di dalam fungsi perkalian(), saya membuat variabel $a dan $b yang digunakan untuk menampung nilai $angka1 dan $angka2, pemindahan variabel ini sebenarnya tidak diperlukan, namun anda akan sering menemukan hal ini di dalam berbagai fungsi. Biasanya pemindahan ini dilakukan agar lebih mudah dan singkat dalam menggunakan variabel pada pemrosesan fungsi.
Variabel $hasil digunakan untuk menampung nilai akhir dari perkalian $a*$b, dan hasilnya di-kembalikan dengan perintah return $hasil. Return secara otomatis menutup fungsi, dan jika anda masih memiliki kode program setelah perintah return, perintah tersebut tidak akan diproses, oleh karena itu perintah return harus diletakkan di akhir penulisan fungsi.
Selanjutnya pada baris ke-12, saya memanggil fungsi perkalian() dengan menyimpan nilai kembaliannya ke dalam variabel $hasil, atau bisa dipanggil secara langsung dalam satu baris perintah echo, seperti pada baris ke-15.
Sebagai contoh fungsi kedua, saya akan membuat fungsi untuk menentukan luas lingkaran. Seperti yang kita ketahui, luas lingkaran didapat dengan rumus: pi*jari-jari*jari-jari. Berikut adalah program untuk menghitung luas lingkaran:
<?php //pemanggilan fungsi echo "Luas Lingkaran dengan jari-jari 7cm = ".luas_lingkaran(7)."cm"; //pembuatan fungsi function luas_lingkaran($jari2) { return M_PI*$jari2*$jari2; } ?>
Saya memulai program dengan langsung memanggil fungsi luas_lingkaran(7), padahal fungsi tersebut belum didefenisikan. Hal ini dimungkinkan karena pada saat kode PHP dijalankan, web server akan men-compile fungsi-fungsi yang ada terlebih dahulu. Sehingga kita bisa memanggil fungsi yang di defenisikan setelah dipanggil.
Pada fungsi luas_lingkaran(), satu-satunya argumen yang diperlukan adalah panjang jari-jari lingkaran. M_PI adalah konstanta matematis yang disediakan PHP, yang nilainya sama dengan konstanta pi, yaitu 3,14. Namun anda juga bisa mengubahnya menjadi 3.14*$jari2*$jari2.
Perbedaan antara Argumen dan Paramater
Pada penjelasan tentang fungsi perkalian() dan luas_lingkaran(), saya menggunakan 2 istilah untuk nilai inputan fungsi, yakni argumen dan parameter. Tetapi apa perbedaan keduanya?
Argumen merujuk kepada inputan fungsi pada saat fungsi dipanggil, contohnya pada saat saya memanggil fungsi perkalian(4,5), angka 4 dan 5 disebut argumen.
Sedangkan Parameter merujuk kepada inputan fungsi pada saat pendefenisian. Saya membuat fungsi perkalian dengan perintah : function perkalian($angka1, $angka2), variabel $angka1 dan $angka2 adalah parameter.
Namun pada penggunaan sehari-hari, istilah parameter dan argumen sering dipertukarkan. Termasuk dalam manual resmi PHP, dimana istilah argumenlah yang sering digunakan. Dalam tutorial di duniailkom, saya akan menggunakan istilah parameter dan argumen secara bergantian.
Dalam tutorial selanjutnya, kita akan membahas tentang variabel scope, yaitu batasan ruang lingkup dari sebuah variabel. Selanjutnya dalam Tutorial Belajar PHP: Pengertian Variabel Scope, Global Variabel, dan Static Variabel dalam 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.