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 sebagaiargumen. 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 argumenmerupakan 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. Fungsiis_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 foruntuk 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.