Tutorial Belajar PHP Part 42: Cara Cek Tipe Data Argument Fungsi

Sepanjang pembuatan function PHP, kita bisa menambah argument atau parameter sebagai nilai input. Dalam tutorial belajar PHP kali ini akan dibahas tentang cara memeriksa tipe data argument untuk fungsi PHP.


Pentingnya Pengecekan Tipe Data Argument

Dalam pembuatan function PHP, selain merancang cara kerja fungsi tersebut, kita juga harus memperkirakan berapa banyak parameter yang dibutuhkan. Sebuah function bisa saja memiliki 1, 2 atau 5 parameter, namun ada juga yang tanpa parameter sama sekali.

Tergantung tujuannya, sebuah fungsi hanya bisa menerima tipe data tertentu sebagai argument. Sebagai contoh, untuk function yang berhubungan dengan matematika, hanya bisa menerima argument dengan tipe data angka (integer atau float). Atau untuk function penghitung kata, harus di isi tipe data string sebagai argument.

Jika kita hanya satu-satunya pengguna function, maka masalah perbedaan tipe data argument bisa di minimalisir. Namun jika terdapat kemungkinan function tersebut akan dipakai pihak lain, tipe data argument perlu di periksa sebelum di proses lebih lanjut.

Jika tipe data argument tidak sesuai, biasanya PHP akan mengeluarkan pesan error. Atau malah yang lebih berbahaya, tidak ada pesan error sama sekali namun hasil yang dihasilkan salah.

Cara yang lebih elegan untuk mengatasi masalah ini adalah dengan menambah kode program untuk memeriksa tipe data parameter sebelum masuk ke pemrosesan di dalam function.

Pengecekan tipe data dilakukan pada awal function, dan jika tipe data tidak sesuai, kita bisa buat pesan ke user. Memeriksa apakah suatu argument merupakan bagian dari tipe data tertentu bisa dilakukan dengan fungsi khusus yang telah disediakan PHP.

Berikut adalah daftar fungsi untuk memeriksa tipe data di 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 (misalnya 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. Tipe data array, object dan resource bukan scalar)
  • is_string($var):  fungsi pengecekan apakah tipe data adalah string

Cara Pengecekan Tipe Data Argument Fungsi

Fungsi-fungsi diatas bisa dimanfaatkan untuk pengecekan tipe data variabel, dan tentu saja juga argument. Agar lebih mudah dipahami, saya telah merancang fungsi pangkat() untuk melakukan pemangkatan bilangan.

Fungsi pangkat() di rancang dengan 2 nilai input atau parameter. Parameter pertama adalah angka yang akan dihitung, dan parameter kedua untuk nilai pangkatnya.

Perintah pangkat(2,3) berarti 2 pangkat 3. Sedangkan pangkat(2,8) berarti 2 pangkat 8. Kedua parameter harus di isi angka, dan khusus untuk nilai pangkat, harus dalam bentuk angka bulat (integer).

Berikut kode program untuk fungsi pangkat():

<?php
  function pangkat($nilai, $pangkat) {
    // Jalankan function hanya jika tipe argument sesuai
    if (is_numeric($nilai) and is_int($pangkat)) {
      $hasil = 1;
      for ($i=1; $i<=$pangkat; $i++) {
        $hasil = $hasil * $nilai;
      }
      return $hasil;
    }
    else {             
      // Jika tipe data argument tidak cocok
      return "Tipe data argument harus berupa angka";
    }
  }
  
  //Test beberapa kasus inputan 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>";
?>

Tutorial Belajar PHP - Cara Memeriksa Tipe Data Argument Fungsi

Function pangkat() ini terasa sedikit panjang, namun jika teman-teman sudah mengikuti seluruh tutorial PHP di duniailkom, saya yakin tidak akan kesulitan memahaminya.

Sesuai namanya, function pangkat() saya rancang untuk menghitung nilai pangkat. Variabel $nilai dan $pangkat akan menjadi parameter di dalam function.

Di baris 4, saya memeriksa kedua parameter menggunakan logika if. Parameter $nilai dan $pangkat haruslah berisi angka, sehingga pemanggilan is_numeric($nilai) dan is_int($pangkat) langsung disambung dengan operator logika and.

Jika pemeriksaan ini tidak terpenuhi, maka blok else di baris 11-14 akan berjalan. Hasilnya, akan tampil kalimat "Tipe data argumen harus berupa angka" untuk memberitahu user bahwa tipe argument harus berupa angka.

Hanya jika kondisi is_numeric() dan is_int() terpenuhi, kode program akan masuk ke blok di baris 5-9. Blok kode ini berisi perulangan for untuk mencari hasil pemangkatan dan mengembalikannya dengan perintah return.

Untuk menguji function ini, antara baris 18-22 terdapat pemanggilan fungsi pangkat() dengan beberapa kondisi. Jika argument yang di input tidak sesuai, akan tampil pesan kesalahan yang kita rancang, tidak sekedar error bawaan PHP.

Teknik seperti ini bisa dipakai untuk menghindari error program dari PHP dan memberikan fleksibilitas untuk melakukan pencegahan jika tipe data yang di input bukan yang seharusnya.


Sepanjang tutorial ini kita telah membahas cara memeriksa tipe data parameter atau argument function. Dalam tutorial belajar PHP selanjutnya, akan dibahas terkait cara membuat default parameter pada fungsi PHP.

31 Comments

  1. Putra Pratama Nst
    14 Jul 15
    • Andre
      14 Jul 15
  2. noor muhammad
    07 Aug 15
    • Andre
      07 Aug 15
  3. rr
    24 Aug 15
  4. August
    10 Sep 15
    • Andre
      10 Sep 15
      • Jarang Pulang
        01 Dec 15
  5. August
    11 Sep 15
    • Andre
      12 Sep 15
    • adexs21
      04 Feb 18
      • Andre
        04 Feb 18
  6. Anonymous
    10 Oct 15
    • Andre
      10 Oct 15
  7. Theo
    09 Nov 15
    • Andre
      09 Nov 15
  8. Slk
    09 Nov 15
  9. Singgih
    21 Feb 16
    • Andre
      22 Feb 16
  10. William
    28 Mar 16
    • Andre
      28 Mar 16
  11. Agus
    03 Nov 16
  12. Rasid
    30 Jan 17
    • Andre
      30 Jan 17
  13. Anonymous
    29 Apr 19
  14. anak rantau
    16 Jan 21
  15. Firdaus
    12 Nov 22
    • Andre
      14 Nov 22

Add Comment