Dalam tutorial belajar PHP kali ini, kita akan bahas tentang pengertian variable parameter, dan fungsinya dalam PHP.
Pengertian Variable Parameter
Variable Parameter adalah sebuah fitur PHP dimana kita bisa membuat fungsi dengan jumlah parameter yang berubah-ubah (variable).
Umumnya sebuah fungsi butuh parameter yang telah ditentukan di awal. Namun dengan beberapa perintah khusus, PHP membolehkan kita membuat fungsi dengan jumlah parameter tidak dibatasi, bisa 0, 2, 5, bahkan 100 parameter dengan 1 cara pendefinisian.
Sebuah fungsi dengan jumlah parameter yang tidak diketahui tampaknya agak aneh, namun fleksibilitas ini dapat digunakan untuk kasus-kasus pemograman khusus.
Sebagai contoh, saya ingin membuat fungsi penambahan() yang akan menambahkan seluruh angka di parameter. Misalnya jika dipanggil penambahan(2,6,8) akan menghasilkan 16, atau penambahan(1,2,3,4,5,6) akan menghasilkan angka 21.
Dalam kasus ini, fungsi penambahan() bisa menerima berapa pun jumlah argument. Inilah hasil dari penggunaan variable parameter.
Cara Pembuatan Fungsi dengan Variable Parameter
Untuk membuat fungsi dengan jumlah parameter yang tidak diketahui, PHP menyediakan 3 fungsi tambahan untuk mengakses argument yang diinput pada saat fungsi dipanggil. Ketiga fungsi tersebut adalah:
- func_get_args(): fungsi ini akan mengembalikan seluruh nilai argument dalam bentuk array.
- func_num_args(): fungsi ini akan mengembalikan jumlah argument, apakah 1, 3, atau 10 argument.
- func_get_arg(no_urut_argumen): fungsi ini mengembalikan nilai dari argument pada nomor urut tertentu.
Agar mudah memahami fungsi-fungsi ini, langsung saja kita masuk ke contoh kode program:
<?php function penambahan() { //ambil variable parameter $array_argument = func_get_args(); $jumlah_argument = func_num_args(); $nilai_argument_ke_2 = func_get_arg(1); //index dimulai dari 0 //tampilkan hasil variable parameter echo "Jumlah argument: $jumlah_argument"; echo "<br>"; echo "Nilai argument ke-2: $nilai_argument_ke_2"; echo "<br>"; echo "Array argument: "; var_dump($array_argument); echo "<hr>"; } echo "Rincian dari fungsi penambahan(1,2): <br>"; penambahan(1,2); echo "Rincian dari fungsi penambahan(5,4,3,2,1): <br>"; penambahan(5,4,3,2,1); echo "Rincian dari fungsi penambahan(0,6,8,19): <br>"; penambahan(0,6,8,19); ?>
Mari bahas kode PHP di atas:
Pada baris 2 saya mendefinisikan fungsi penambahan() tanpa parameter. Nantinya, semua parameter akan kita "tangkap" memakai fungsi func_get_args() dari dalam fungsi..
Di baris 4-6, saya menjalankan ke-3 fungsi khusus yang telah dijelaskan sebelumnya. Fungsi-fungsi ini akan mengambil nilai argument yang di input saat pemanggilan fungsi. Nilai ini ditampung oleh 3 variabel: $array_argument, $jumlah_argument, dan $nilai_argument_ke_2
Sebagai catatan, untuk mengambil nilai argumen ke-2, di dapat dari func_get_arg(1). Sebab index argument dihitung dari angka 0, sehingga argument kedua berada di index ke 1.
Selanjutnya dari baris 9-13 saya menampilkan hasil dari masing-masing variabel.
Pada saat pemanggilan fungsi penambahan() di baris ke 19, 22 dan 24, saya memanggilnya dengan jumlah argument yang berbeda-beda. Hasilnya, semua argument sudah bisa diterima dan diproses sebagaimana yang kita inginkan.
Namun perintah untuk menambahkan semua argument belum ada. Solusinya, cukup proses dengan perulangan for:
<?php function penambahan() { //ambil variable parameter $jumlah_argument = func_num_args(); //proses penambahan $nilai = 0; for ($i = 0; $i < $jumlah_argument; $i++) { $nilai += func_get_arg($i); } return $nilai; } echo "penambahan(1,2) = ".penambahan(1,2)."<br>"; echo "penambahan(5,4,3,2,1) = ".penambahan(5,4,3,2,1)."<br>"; echo "penambahan(0,6,8,19,20,44,21) = " .penambahan(0,6,8,19,20,44,21); ?>
Fungsi penambahan() diatas akan memproses setiap argument yang diberikan.
Demikian tutorial kita mengenai variable parameter dalam bahasa pemrograman PHP. Materi ini memang sedikit kompleks dan tidak terlalu banyak kita pakai. Akan tetapi pengetahuan akan fitur ini bisa bermanfaat pada situasi tertentu.
Untuk sementara tutorial ini juga mengakhiri materi tutorial dasar bahasa pemrograman PHP di web duniailkom. Selanjutnya anda bisa masuk ke tutorial lanjutan seperti pemrosesan form, mengakses database MySQL, atau ke OOP PHP. Semoga bisa bermanfaat.
numpang tanya gan
function kaya gini
function ($a, $b = 1 )
bisa di jelaskan ga, pada bagian = 1 nya, namanya apa dan fungsi nya apa ??
Itu namanya default parameter gan. Fungsinya sebagai nilai awal jika parameter tersebut tidak diisi.
Misalkan kita memiliki function kali() yang digunakan untuk membuat perkalian 2 angka. kali (2,3) akan menghasilkan nilai 6. kali (3,4) akan menghasilkan nilai 12. Seperti yang terlihat, fungsi ini membutuhkan 2 nilai inputan.
Apabila saat pembuatan fungsi kita menulisnya sebagai function kali($a, $b = 2). Maka fungsi kali() ini bisa dipanggil hanya dengan 1 inputan saja. karena jika inputan kedua tidak ditulis, PHP akan menggunakan nilai awal $b=2. Pemanggilan fungsi kali (3) akan menghasilkan nilai 6. Pemanggilan fungsi kali (5) akan menghasilkan nilai 10.
Untuk penjelasan yang lebih detail, silahkan lanjut ke Tutorial Belajar PHP: Cara Pembuatan Default Parameter pada Fungsi PHP.
Semoga bisa membantu :)
mohon izin saya copy blognya, terima kasih sungguh sangat bermanfaat sekali bagi saya yang sedang belajar
Silahkan di copy, apabila berkenan boleh cantumkan link sumbernya ke sini y.. :)
Mau nanya mas.., saya punya kasus seperti ini: saya mau bikin database utk tabungan koperasi karang taruna dengan 3 akses level user.
————————————————————————————————————————————————————
id | tanggal | nama | user_level | input_tabungan | bonus | jumlah | penarikan | saldo_akhir
————————————————————————————————————————————————————
1 |21-02-2015 |Budi Daryanto | remaja | 100.000 | 3.000 | 103.000 |………………..|……………….
2 |21-02-2015 |Rahmat Haryadi| pemuda | 200.000 | 8.000 | 208.000 |………………..|……………….
3 |21-02-2015 |Kastholani | dewasa | 300.000 | 15.000 | 315.000 |………………..|……………….
Parameter:
1. Untuk input_tabungan remaja minimal 100.000, pemuda: 200.000 dan dewasa: 300.000. Kalo ada user yang menabung dibawah nilai parameter masing-masing tersebut, maka sistem membertau bahwa "input tabungan anda tidak bisa diproses, batas tabungan anda adalah "sekian" (sesuai parameter masing2 user)".
2. Batas minimal saldo user adalah: remaja minimal 100.000, pemuda: 200.000 dan dewasa: 300.000. jadi jika misal ada user dengan status user_level "remaja" dengan saldo misalnya 120.000, terus dia mau menarik tabungan dengan jumlah 50.000, maka sistem akan memberitau bahwa "transaksi anda tidak bisa kami proses, batas saldo anda adalah 100.000". dan seterusnya juga utk user_level "pemuda" dan "dewasa" sesuai dengan batas saldonya masing2.
3. Value untuk "bonus" itu didapat dari:
a. untuk user_level "remaja" adalah 3% dari nilai input_tabungan.
b. untuk user_level "pemuda" adalah 4% dari nilai input_tabungan.
c. untuk user_level "dewasa" adalah 5% dari nilai input_tabungan.
4. Untuk user yang mau input_data itu saya buat form dengan 3 kolom yaitu: "id", "nama", "input_tabungan", lalu klik submit".
Dan ketika ada user yang input_tabungan, maka di kolom "user_level" akan otomatis terisi data jenis level user sesuai dengan saat user tersebut register pertama kali. terus kolom "bonus" juga otomatis akan terisi jumlah bonus sesuai dengan masing-masing parameter yang sudah ditentukan diatas. begitu pula dengan kolom "jumlah" juga akan terisi otomatis.
Pertanyaannya:
Script untuk membuat sistem seperti itu seperti apa ya mas? kalo harus pake function, cara bikinnya bagaimana mas??. maaf mas kalo pertanyaannya banyak banget, maklum masih baru pertama kali belajar.
sebelumnya terimakasih banyak mas atas bantuan dan tutorialnya.
Wah, untuk membuat sistem seperti itu lumayan rumit tuh… saya tidak menyarankan untuk pemula, karena sudah harus paham tentang HTML, PHP dan MySQL, serta cara validasi form.
Sebagai gambaran, untuk databasenya bisa dipecah menjadi 3 tabel. Tabel pertama untuk menampung biodata user, tabel kedua untuk hak akses beserta setingannya (jika tahun depan perlu mengubah bonus user dewasa menjadi 5% atau minimal saldo menjadi 500rb) dan tabel ketiga untuk menampung seluruh transaksi.
Untuk validasi bisa diset dari PHP, namun akan lebih 'cantik' jika pesan kesalahan juga menggunakan JavaScript. Untuk interfacenya, paling tidak agan harus menyediakan user admin yang bisa melakukan input data dan setingan sistem.
Sistem seperti ini mirip dengan Sistem Informasi Management sederhana. Jika sistem tersebut memiliki deadline, agan bisa mencari programmer web untuk membuatnya.
Mas.., saya bisa minta contactnya mas?? kalo bisa tolong email ke saya mas. [email protected]
Untuk database udah jadi mas, trus untuk file ".php" juga udah jadi semua. Untuk file ".php" nya saya bikin menjadi 4 bagian, yaitu:
1. Admin yang berisi file-file untuk admin. mulai dari tampilan.php sampe file CRUD udah jadi semua.
2. Remaja yang berisi file-file untuk Remaja,.
3. File Pemuda.
4. File Dewasa.
Yang kesemuanya berisi tentang file-file yang dibutuhkan dimasing2 user_level. Bahkan untuk form Input.php, form registrasi.php serta form login.php semuanya udah jadi.
Pada dasarnya kebutuhan file untuk user Remaja, Pemuda dan Dewasa itu isinya sama mas, yang membedakan hanya parameter transaksinya doang. Kecuali untuk admin saya bikin terpisah dengan tampilan yang berbeda. Tapi kendalanya adalah:
1. Sistem gak mau jalan otomatis sesuai dengan yang sudah saya jelaskan di comment saya yang pertama kemarin.
2. Untuk hak akses login, itu masing-masing user_level ketika di klik "Login" langsung masuk ke tampilan "Remaja". Misal saya test dengan user_level Pemuda ato Dewasa..,setelah saya klik "login" semuanya masuk ke tampilan "remaja". padahal seharusnyakan ketika saya klik tombol "login" harusnya langsung diarahkan secara otomatis ke tampilannya masing2 sesuai hak akses loginnya.
Kira2 ada gak mas tutorial untuk itu??
wah. . . . lengkap banget mas, saya sudah sampe hatam hehehe
makasih banyak mas, di tunggu sambungannya :D
Om yang final kenapa pake loop for om??
oh ia buat ngeloop indexnya toh
Yup betul gan, untuk menjumlahkan nilainya :)
mas, mau tanya, untuk di function penambahan yg terakhir fungsi dari $array_argumen = func_get_args() buat apa lagi ya?
-termakasih
Wah, sepertinya itu 'peninggalan' contoh kode program diatasnya mas, dimana fungsi $array_argumen = func_get_args() saya gunakan untuk menampilkan seluruh argumen dengan perintah var_dump($array_argumen);
Tapi karena dalam kode terakhir saya tidak menampilkannya, jadi sebenarnya fungsi tersebut tidak berfungsi apa2.
Terimakasih koreksinya mas, saya akan hapus saja baris tersebut biar g bikin bingung :)
min apa perbedaan func_get_args() dengan huruf s dan func_get_arg() tanpa huruf s?
Sepertinya contoh diatas sudah bisa menjawab pertanyaannya mas :)
func_get_args() akan mengembalikan seluruh argumen, sedangkan func_get_arg() hanya mengembalikan 1 argumen saja.
Tenks gan sngat bermanfaat bgi sy yg newbe, duniailkom (y)
Sip, lanjut gan.. :)
ini caranya gimana gan. . . tolong di jelasin :D
Ada sebuah variabel string $s = "210923".
Rubahlah variabel diatas menggunakan program PHP, menjadi tampilan seperti dibawah:
Contoh tampilan di console:
21:09:23
Sepertinya itu untuk memecah string atau menyisipkan sesuatu ke dalam string gan. Bisa dengan mengkombinasikan dasar2 PHP dengan fungsi substr() yang digunakan untuk mengambil sebagian nilai string. Bisa cek ke https://www.duniailkom.com/tutorial-php-cara-memotong-atau-mengambil-sebagian-string-fungsi-substr/
gan bisa di follow contact nya ke email saya [email protected]
Maksudnya agan pengen kotak saya langsung? bisa ke [email protected] gan. Tp memang saya prioritaskan untuk yang telah memberikan donasi atau membeli eBook duniailkom.
Selain itu agan bisa posting pertanyaannya di komentar ini. Biasanya dalam waktu 1×24 jam akan saya jawab kok…
bermnfaat sekali min…terimakasih
Siip, sama2…
"Fatal error: Cannot redeclare penambahan()". Ini kenapa ya min? tetep error walaupun udah copy-paste tutorialnya.
Dalam 1 halaman PHP, function penambahan() hanya bisa di defenisikan sekali. Dalam tutorial ini terdapat 2 kali pendefenisian fungsi penambahan(). Keduanya harus dijalankan dalam halaman yang terpisah.
mas,saya belajar membuat aplikasi angsuran spp,inpu,delete sudah fix tapi saya bingung menjumlahkan total dari tabel pembayaran persiswa dan pengurangan dari jumlah yang harus dibayar siswa yg saya masukkan di tabel siswa..
———
kira2 scriptnya gimana mas?
kan itu hasil dari array mysql?cara jumlah/totalnya gmna?
trima kasih sblumnya
Wah, kode programnya bisa ratusan atau ribuan baris nih. Saran saya silahkan pelajari konsep PHP dan MySQL dari dasar lagi, nanti bakal bisa sendiri tuh.
Bang Andre mau tanya kenapa untuk bagian $nilai_argumen_ke_2 = func_get_arg(1) ,dibrowser keluar bukan nilai argumen nya .dan terdapat notifikasi
Notice: Array to string conversion in C:\xampp\htdocs……… line 13
untuk lebih jelasnya menghasilkan seperti ini di browser
Rincian dari fungsi penambahan (1,2) :
Jumlah argumen : 2
Notice: Array to string conversion in C:\xampp\htdocs\………………….. on line 13
Nilai argumen ke-2 : Array
Array argumen: array(2) { [0]=> int(1) [1]=> int(2) }
Kodenya ada ditambahkan atau diedit lagi ya? barusan saya coba g ada masalah (contoh kode program yang ada di tutorial ini).
Coba di copy paste saja agar tidak ada error…
Sesuai Contoh bang, oke coba saya copy paste lagi saja .Untuk saya cocokan bagian yang salahnya .Thank you Bang Andre
Om Andre saya sudah hajar 44 materi dasar php disini terus lanjut kemana baiknya ?
Bisa coba lanjut ke materi lanjutannya, atau boleh juga order eBook PHP Uncover untuk tambahan materi yang lebih banyak, hehe…