Tutorial Belajar PHP Part 12: Pengertian Konstanta dan Cara Penulisan Konstanta PHP

Selain  menggunakan variabel untuk menampung nilai data, dalam konsep bahasa pemograman dikenal juga istilah konstanta atau “constant”. Dalam tutorial belajar PHP kali ini kita akan mempelajari tentang Pengertian dan Cara Penulisan Konstanta dalam PHP, serta perbedaanya dari variabel.


Pengertian Konstanta PHP

Dalam bahasa pemograman, Konstanta (constant) adalah suatu lokasi penyimpanan (dalam memory) yang berisikan nilai yang sifatnya tetap dan tidak bisa diubah sepanjang program berjalan (wikipedia).

Berbeda dengan variabel yang isi/nilainya dapat diubah bahkan dihapus selama program berjalan, sebuah konstanta jika telah diberikan nilai, tidak dapat diubah lagi dalam kode program. Hal ini seseuai dengan namanya, yakni konstant.


Aturan Penulisan Konstanta PHP

1. Cara Pendefenisikan Konstanta dalam PHP

Jika variabel di dalam PHP dibuat dengan menambahkan tanda dollar, seperti: $nama. Untuk membuat konstanta PHP menyediakan 2 cara:

  1. Menggunakan kata kunci (keyword) const.
  2. Menggunakan fungsi define.

Untuk mendefenisikan konstanta dengan kata kunci const, caranya mirip dengan menambahkan nilai kepada sebuah variabel, namun didahului kata const. Berikut adalah contoh penulisannya:

<?php
   const situs = "www.duniailkom.com";
   echo situs;  // www.duniailkom.com
?>

Jika menggunakan fungsi define, fungsi ini membutuhkan 2 nilai, yakni nama konstanta, dan nilainya. Seperti contoh berikut ini:

<?php
   define("situs", "www.duniailkom.com");
   echo situs;  // www.duniailkom.com
?>

Aturan penamaan konstanta sama seperti variabel, yakni untuk karakter pertama hanya boleh menggunakan huruf dan underscore (_), dan untuk huruf kedua dan seterusnya, boleh menggunakan huruf, angka dan underscore. Sehingga sebuah konstanta juga tidak boleh diawal angka atau mengandung karakter khusus sepert #,*, atau &.

Sedikit catatan tentang perbedaan pendefenisian konstanta menggunakan kata kunci const dan fungsi define:

Pembuatan konstanta dengan keyword const hanya dapat digunakan pada top-level scope, yakni harus dalam lingkungan global PHP. Sehingga kita tidak bisa menggunakan const di dalam function, loop, atau kondisi if.

Apabila anda membutuhkan konstanta di dalam fungsi, maka harus menggunakan keyword define.


2. Konstanta PHP bersifat Case Sensitif

Sama seperti variabel, konstanta dalam PHP bersifat case sensitif, sehingga perbedaan huruf besar dan kecil dianggap berbeda. GAJI, GaJi, dan gaji merupakan 3 konstanta yang berbeda.

Walaupun kita boleh menggunakan huruf kecil dalam penulisan konstanta, kesepakatan programmer PHP menganjurkan menggunakan HURUF BESAR untuk penulisan konstanta. Tujuannya agar lebih mudah untuk membedakan dengan variabel (dimana variabel dianjurkan menggunakan huruf kecil).


3. Nilai Konstanta PHP Tidak Dapat Diubah

Jika sebuah konstanta telah didefenisikan, kita tidak bisa merubah nilai tersebut.

Contoh error konstanta:

<?
   define("GAJI", 5000000);
   echo GAJI;  echo "<br />"; 
   define("GAJI", 50000);
?>

Jika kode program tersebut dijalankan, berikut tampilannya:

5000000
Notice: Constant GAJI already defined in 
D:\xampp\htdocs\belajar\test.php on line 4

4. Konstanta hanya dapat berisi tipe data tertentu

Konstanta dalam PHP hanya dapat berisi tipe data sederhana (disebut juga jenis tipe skalar), yakni: boolean, integer, float dan string. Hal ini berbeda dengan variabel, yang dapat juga berisi tipe data turunan seperti array, objek atau resources.

<?php
   define("GAJI", 5000000);
   echo GAJI;  echo "<br />"; 
   define("GAJI_PEGAWAI", array( 1000000,1500000));
?>

Hasil contoh diatas akan menghasilkan error sebagai berikut:

5000000
Warning: Constants may only evaluate to scalar values in 
D:\xampp\htdocs\belajar\test.php on line 4

Di dalam contoh diatas saya mencoba memberikan nilai array sebagai nilai dari konstanta GAJI_PEGAWAI, namun PHP mengeluarkan error yang menjelaskan bahwa konstanta hanya dapat berisi nilai dengan tipe skalar saja. Tipe skalar ini adalah boolean, integer, float dan string. Kita akan mempelajari tipe-tipe data ini dalam tutorial selanjutnya.


5. Konstanta Sistem PHP (Predefined Constant)

Sama seperti variabel, PHP juga telah membuat beberapa konstanta yang telah didefinisikan dan tidak bisa di ubah nilainya. Namun karena banyaknya modul yang dapat ditambahkan kedalam PHP, Predefined Constant dalam PHP akan bertambah tergantung modul yang ada. Namun sebagai contOh, berikut adalah Predefined Constant dalam sistem inti PHP:

PHP_VERSION, PHP_MAJOR_VERSION, PHP_MINOR_VERSION, PHP_RELEASE_VERSION, PHP_VERSION_ID, PHP_EXTRA_VERSION, PHP_ZTS, PHP_DEBUG, PHP_MAXPATHLEN, PHP_OS, PHP_SAPI, PHP_EOL, PHP_INT_MAX, PHP_INT_SIZE, DEFAULT_INCLUDE_PATH, PEAR_INSTALL_DIR, PEAR_EXTENSION_DIR, PHP_EXTENSION_DIR, PHP_PREFIX, PHP_BINDIR, PHP_BINARY, PHP_MANDIR, PHP_LIBDIR, PHP_DATADIR, __LINE__ , __FILE__ , __DIR__ , __FUNCTION__ , __CLASS__ , __TRAIT__ , __METHOD__, __NAMESPACE__,

Daftar list Predefined Constant diatas saya ambil langsung dari manual PHP di http://php.net/manual/en/reserved.constants.php. Kebanyakan dari konstanta tersebut menyimpan nilai yang dapat membantu kita dalam membuat program PHP, khususnya untuk debugging, saya akan membahasnya pada lain kesempatan.


Dalam aplikasi dunia nyata, penggunaan konstanta tidak akan sesering penggunaan variabel, namun jika anda membutuhkan sebuah variabel yang tidak bisa ditimpa nilainya, konstanta merupakan pilihan yang tepat.

Dalam tutorial Belajar PHP Dasar selanjutnya, kita akan masuk kedalam tipe data. Untuk pembahasan pertama, kita akan membahas tentang tipe data integer di dalam PHP.


Tutorial Terkait:

19 Comments

  1. Anonymous
    11 Apr 14
  2. denvainuun
    24 Sep 14
    • Andre
      28 Sep 14
  3. Vikar
    28 Nov 14
    • Andre
      19 Dec 14
  4. fajar siagian
    03 Dec 15
    • Andre
      03 Dec 15
  5. Alvin
    27 Dec 15
  6. fajri
    10 Feb 16
    • Andre
      10 Feb 16
      • fajri
        10 Feb 16
        • Andre
          13 Feb 16
  7. bima
    11 Feb 16
    • Andre
      12 Feb 16
  8. montang
    23 Apr 16
    • Andre
      25 Apr 16
  9. Dimas
    04 Dec 16
    • Andre
      05 Dec 16

Add Comment