Dalam pembuatan fungsi PHP, kita dapat memanfaatkan argumen atau parameter sebagai inputan kedalam fungsi yang dirancang. Dalam tutorial belajar PHP kali ini kita akan membahas tentang Cara Pengecekan Tipe Data Argumen untuk Fungsi PHP.
Pentingnya Pengecekan Tipe Data Argumen
Dalam pembuatan fungsi PHP, selain merancang cara kerja fungsi, kita juga harus memperkirakan berapa banyak parameter yang dibutuhkan untuk fungsi tersebut. Sebuah fungsi bisa memiliki 1, 2 atau 5 parameter, namun bisa juga tanpa parameter sama sekali.
Tergantung tujuannya, sebuah fungsi umumnya hanya memperbolehkan tipe data tertentu sebagai argumen. Misalnya, untuk fungsi yang berhubungan dengan matematika, biasanya hanya membutuhkan argumen dengan tipe data angka (integer atau float), dan fungsi penghitung kata, hanya membutuhkan tipe data string sebagai argumen.
Jika anda adalah satu-satunya pengguna fungsi yang anda rancang sendiri, maka dapat dipastikan bahwa tidak akan ada inputan argumen yang salah tipe data. Namun jika terdapat kemungkinan fungsi yang dirancang akan digunakan oleh pihak lain, pengecekan tipe data argumen perlu dirancang agar fungsi berjalan sebagaimana mestinya.
Jika tipe data parameter tidak sesuai, maka fungsi tidak akan berjalan sebagaimana mestinya, dan biasanya PHP akan mengeluarkan pesan error. Cara elegan untuk mengatasi permasalahan ini adalah membuat kode program untuk memeriksa tipe data parameter ini sebelum masuk kepada pemrosesan di dalam fungsi.
Pengecekan tipe data dilakukan pada awal pemrosesan fungsi, dan jika tipe data tidak sesuai, kita bisa membuat pesan bahwa fungsi tidak dapat diproses. Pengecekan apakah suatu argumen merupakan bagian dari tipe data tertentu, dilakukan dengan fungsi khusus yang telah disediakan PHP.
Berikut adalah list fungsi pengecekan tipe data dalam PHP:
- is_array($var): fungsi pengecekan apakah tipe data adalah array
- is_bool($var): fungsi pengecekan apakah tipe data adalah boolean
- is_double($var): fungsi pengecekan apakah tipe data adalah float
- is_float($var): fungsi pengecekan apakah tipe data adalah float
- is_int($var): fungsi pengecekan apakah tipe data adalah integer
- is_integer($var): fungsi pengecekan apakah tipe data adalah integer
- is_long($var): fungsi pengecekan apakah tipe data adalah integer
- is_null($var): fungsi pengecekan apakah tipe data adalah null
- is_numeric($var): fungsi pengecekan apakah tipe data adalah angka (integer dan float)
- is_object($var): fungsi pengecekan apakah tipe data adalah objek
- is_real($var): fungsi pengecekan apakah tipe data adalah float
- is_resource($var): fungsi pengecekan apakah tipe data adalah resource (seperti variabel yang menampung koneksi ke database)
- is_scalar($var): fungsi pengecekan apakah tipe data adalah scalar (scalar adalah penyebutan untuk tipe data dasar, seperti integer, float, string atau boolean. Array, object dan resource bukan scalar)
- is_string($var): fungsi pengecekan apakah tipe data adalah string
Cara Pengecekan Tipe Data Argumen Fungsi
Fungsi-fungsi diatas dapat dimanfaatkan untuk pengecekan tipe data suatu variabel, dan tentu saja juga argumen fungsi. Agar lebih mudah dipahami, saya telah merancang fungsi pangkat() yang berfungsi untuk melakukan pemangkatan bilangan.
Fungsi pangkat() saya rancang dengan 2 buah inputan atau parameter. Parameter pertama adalah angka yang akan dihitung, dan parameter kedua adalah nilai pangkatnya. pangkat(2,3) berarti 2 pangkat 3. pangkat(2,8) berarti 2 pangkat 8. Kedua parameter ini harus berupa angka, dan khusus untuk nilai pangkat, harus berupa angka bulat (integer).
Berikut adalah kode program fungsi pangkat():
<?php function pangkat($nilai, $pangkat) { if (is_numeric($nilai) AND is_int($pangkat)) //pengecekan tipe data argumen { //Jika argumen sesuai, maka jalankan proses fungsi $hasil=1; for ($i=1;$i<=$pangkat;$i++) { $hasil=$hasil*$nilai; } return $hasil; } else { //Bagian ini akan dijalankan jika tipe data argumen bukan angka return "Tipe data argumen harus berupa angka"; } } //Test beberapa kasus inputan untuk fungsi pangkat() echo pangkat(5,2); echo "<br />"; echo pangkat(5.6,2); echo "<br />"; echo pangkat(2,8); echo "<br />"; echo pangkat(5,2.9); echo "<br />"; echo pangkat("lima",2); echo "<br />"; ?>
Fungsi pangkat() diatas terasa sedikit panjang, namun jika anda telah mengikuti seluruh tutorial PHP di duniailkom, maka fungsi tersebut tidak akan terlalu sulit untuk dipahami.
Fungsi pangkat() saya rancang untuk menghitung pangkat dari sebuah angka. Variabel $nilai dan $pangkat adalah parameter yang akan menjadi variabel perantara.
Pada baris ke-4 saya membuat pengecekan masing-masing parameter di dalam logika IF. Fungsi is_numeric() dan is_int() akan menghasilkan nilai TRUE jika keduanya benar, sehingga saya menggabungkan keduanya kedalam logika AND. Seandainya logika AND ini salah, maka kondisi IF akan bernilai FALSE, dan bagian ELSE akan dijalankan (baris ke-13), dimana saya membuat kalimat “Tipe data argumen harus berupa angka” untuk memberitahu pengguna fungsi bahwa tipe argumennya harus berupa angka.
Jika kedua kondisi is_numeric() dan is_int() benar, maka saya membuat proses perulangan for untuk mencari hasil pemangkatan. Setelah hasilnya ditemukan, perintah return akan mengembalikan nilai tersebut (baris ke-11).
Dari hasil pemanggilan fungsi, kita dapat melihat bahwa logika alur program sudah berjalan benar, dan jika saya memberikan nilai argumen yang salah, hasil yang ditampilkan bukan kode error PHP, melainkan pesan kesalahan yang lebih informatif.
Dengan menggunakan fungsi seperti is_numeric() dan is_int() kita dapat melakukan pengecekan tipe data terlebih dahulu sebelum melakukan proses fungsi. Hal ini akan menghindari error program PHP, dan memberikan fleksibilitas untuk melakukan tindakan pencegahan jika tipe data yang diinput bukan yang seharusnya.
Dalam tutorial belajar PHP selanjutnya, kita akan membahas tentang Cara Pembuatan Default Parameter pada Fungsi PHP.
maaf kak, saya mau minta penjelasan bagian script yg ini
$hasil=1;
for ($i=1;$i<=$pangkat;$i++)
{
$hasil=$hasil*$nilai;
}
return $hasil;
Sebenarnya itu cuma perulangan ‘sederhana’ kok, tapi jika kurang paham, mungkin bisa mempelajari kembali cara penulisan perulangan for, dan cara penggunaan operator assignment PHP :)
Secara garis besar, kode diatas akan melakukan perulangan untuk mengalikan sebuah nilai beberapa kali (tergantung argumen yang diberikan)
makasih gan tutorialnya sangat. ada yang ingin saya tanyakan. untuk pengecekan bisakah dilakukan tanpa fungsi
Maksudnya pengecekan apa y gan? Kalau pengecekan tipe data, setahu saya yang paling gampang memang menggunakan fungsi seperti is_array() atau is_int(). Kalau tanpa fungsi sepertinya agak susah…
$hasil=1;
for ($i=1;$i<=$pangkat;$i++)
{
$hasil=$hasil*$nilai;
}
return $hasil;
bingung nih min perulangan di bagian itu mohon di perjelas :)
Ini perulangan PHP gan, untuk jelasnya mungkin bisa kesini: Tutorial perulangan for PHP
Untuk penulisan dan cara kerja perulangan for nya ane udah paham gan. Tapi saya juga masih belum paham, sama kayak agan2 yang diatas ane ini. Masalahnya juga sama skrip koding yg di dalam if nya.
Itu kan kalo diterjemahin ke angka hasilnya gini gan:
Misal argumen diisi gini = pangkat (7,2)
$hasil=1; //Ini nilainya 1 kan??
for ($i=1;$i<=$pangkat;$i++) //ini for nya $i<=2 (ngikut argumen yg ane buat barusan)
{
$hasil=$hasil*$nilai; //tadi $hasil kan 1, karna di for $i<=2 jadi $hasil = 2,
} //kalo gitu $hasil=2*7
return $hasil; //nah, hasilnya mestinya 14, kalo ngikuti alur perulangan for nya
Oh, yang bagian itu y gan…
Kalau menggunakan fungsi pangkat(7,2), maka perulangannya akan menjadi sebagai berikut:
$hasil=1;
for ($i=1;$i<=2;$i++) { $hasil=$hasil*$nilai; } return $hasil;
Perulangan diatas akan diproses 2x gan, bukan 1 kali,
sehingga pada perulangan pertama:
$hasil=$hasil*$nilai; // $hasil = 1 * 7 = 7, bukan 2 * 7
untuk perulangan kedua:
$hasil=$hasil*$nilai; // $hasil = 7 * 7 = 49
Perintah “$i<=2” bukan berarti “$hasil=2*7“, ini hanya sebagai penanda berapa kali perulangan akan dijalankan.
$hasil=1 itu untuk mewadahi nilai pangkat yang di loop ya gan?
Ane sekarang udah paham gan, di script ini
$hasil=$hasil*$nilai; // $hasil = 1 * 7 = 7, (hasil 7 tersebut disimpan ke dalam $hasil )
(lalu untuk perulangan kedua: hasil simpanan $hasil yang terakhir dipnggil untuk diproses)
$hasil=$hasil*$nilai; // $hasil = 7 * 7 = 49
Iya gan, seperti itu.. :)
Yups benar kira2 spt itu, memory terakhir yang didefinisikan yg di munculkan…. misal : $a = 1, kemudian di ketik lagi $a= 2, trs kita panggil nilai a skrg berapa….? maka echo $a ; // 2. Ingat lagi terori tentang memory, di web DuniaIlkom ada disebutkan tentang memory ini….sebelumnya terima kasih ilmu nya gan, sangat bermanfaat utk orang indonesia
Siip, terimakasih juga tambahannya…
akhirnya setelah saya menyimak komen agan, saya juga ikut mengerti.
makasih gan
Sama2 gan, senang bisa membantu :)
Mas itu link "DEFAULT PARAMETER" nya malah ke halaman variabel parameter mas, hehehe
Btw, tutorialnya duniailkom ini enak, mudah dipahami:)
Lanjutkan mas, manfaat banget :D
Eh iya, benar mas. Mungkin karena saking semangatnya buat tutorial sampai bersalahan, hehe…
Terimakasih koreksinya mas, segera saya perbaiki.
Pak, saya mau tanya.
Kalo "isset" itu pengecekan argument juga kah?
Apakah ada tutorialnya, Pak?
Terima kasih.
Semoga berkah usaha tutorialnya, Pak:)
Lanjut kesini mas: Cara Membuat Validasi Form PHP (fungsi isset dan empty).
Mau tanya mas, kenapa bagian else itu bukan echo untuk menampilkan "Type data argumen harus berupa angka"?
Kenapa ditulis return dan bukan echo?
Kalau membuat kode program dengan function, lebih disarankan menggunakan return mas, karena mungkin saja hasil fungsi ini ingin diproses lagi, misalnya:
$hasil = pangkat(2,8);
// variabale $hasil akan diproses lagi sebelum ditampilkan
Kalau hasil function langsung di echo, kita tidak bisa menjalankan kode diatas, setiap pemanggilan fungsi pangkat akan langsung ditampilkan ke web browser.
Mas Andre mau tanya sedikit..
Bisa tidak ya fungsi is_numeric digunakan untuk validasi nomor telepon pada form?
Jika bisa, bagaimana cara memberi batasan digit nomor yg dimasukkan (min length)? Karena kan fungsi is_numeric hanya mem-validasi angkanya, sedangkan nomor telpon minimal terdiri dari 6/7 angka.
thanks :)
Untuk validasi seperti itu cocoknya pakai regular expression mas. Karena mas William sudah punya eBook PHP Uncover, bisa langsung di cek bab tentang pemrosesan form. Disana saya sudah bahas cara penggunaan regex untuk validasi inputan form :)
Tutornya mudah dipahami gan,
yg bagian ini yg ngejelimet,
tapi alhamulilah agak cerah sekarang
Lanjutkan gan tutor-tutor dunia ilkom sangat bermanfaat
terutama bagi saya pemula :D
Siip gan..
Bang Andre saya mau dong di email kalau ebook atau Tutorial php yang udah bang andre buat dicetak dalam versi buku atau ebook.biar mudah kalau bseok mau buka buka lagi materi dari bang andre.
Terima Kasih
Siap, silahkan di cek emailnya.. cara pemesanan eBook maupun buku cetak sudah saya kirim ke email, terimakasih.
mau tanya mas , cara ngecek angka 1,2,"3",4,5 klo di situ ada angka 3 gimana yaa?? #mohondibantu
hasil tampilan saya , kok jadi perkalian min
misalnya saya ketikkan
echo pangkat(5,7);
echo "<br/>";
hasilnya jadi 35
mohon bantuannya min