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:
- Menggunakan kata kunci (keyword) const.
- 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 &.
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.
Maju terus..
Siap gan :)
gaan, nyampe di sini kok makin rumit, keterangannya sangat kurang bisa di fahami bagi pemula…
Saya sudah ubah sedikit penjelasan tentang konstanta. Tetapi apabila masih susah dipahami, silahkan lewatkan saja dulu. Karena kosntanta memang tidak terlalu sering digunakan di dalam PHP.
Jika nanti denva sudah mempelajari tipe data, silahkan coba kembali ke tutorial ini, dan praktekkan dengan kode program.
Mudah-mudahan bisa dipahami.
Thanks mas andre artikel yg sangat membantu, seharusnya pemerintah memberikan perhatian terhadap website yg seperti ini karena sangat membatu masyarakat yang ingin belajar pemrograman PHP.
Terima kasih mas vikar :)
Mudah2an saja nanti menkominfo sempat blusukan ke website saya.. hehe..
perbedaan define dan const
const itu bernilai tetap dan tidak bisa di rubah ya
sedang define itu seperti variabel dimna var1 berisi nama variabel dan var2 berisi nilainya
betul kan min
itu yang ane pahami ketika belajar ini
Bukan gan, perintah define dan const sama2 bernilai tetap, dan sama2 digunakan untuk membuat konstanta di PHP.
Memang bikin bingung karena ada 2 cara pendefenisian konstanta di PHP, hehe…
Makasih gan ^_^
Sangat bermanfaat ^_^
<?php
define("GAJI", 50000000);
echo GAJI; "<br/>";
define("GAJI", 9999999);
?>
di saya kok hasilnya cuma 50000000, ngk ada pesan errornya
Kemungkinan besar fitur error reporting di PHPnya g diset gan, jadi pesan kesalahan PHP tidak tampil.
setnya dimananya mas ?
Dari file php.ini gan, lalu ubah pengaturan error_reporting menjadi E_ALL;
Atau bisa juga dengan menambahkan kode: error_reporting(E_ALL); di atas kode program saat ini (baris paling awal)
:D :D membantu artikelnya…tapi kok ada kata ini ya "tidak bisa dirumah nilainya". ngakak lihatnya :v :v
Sengaja tu gan, biar lucu.. (nyari2 alasan).. hehe.. :D
Langsung di perbaiki.. :D
sebenarnya aku belum paham ini nanti penerapan diwebsite seperti apa, karena awalnya hanya ingin belajar membuat blog "aku pilih lanjut terus" pelan-pelan tak baca , tak praktekkan meski harus clingak clinguk error karena belum tau kode apa yang salah, tapi maju terus "Duniailkom"
Goo….goo..goo..!!!Duniailkom.
pokoke belajar disini sampai bisa membuat website.
Siip, lanjut gan… pelan2 nanti akan paham. Tapi untuk pemula sebaiknya mulai dari HTML dulu. Baru setelah itu lanjut ke PHP :)
mas kalo boleh tau itu nulis kodingnya bisa warna warni pakek css/javascript apa?boeh minta?soalnya aku juga mau buat website tentang pemrograman bahasa c
Itu saya menggunakan plugin khusus yang tersedia di CMS WordPress. Kalau untuk blog di blogspot kurang tau juga apa tersedia atau tidak.
om andre,
untuk contoh penulisan ini ada yang saya bingung.
const SITUS = "ilmu komputer";
echo SITUS."<br>";
//atau dengan pengetikan define
define ("WEB","ilmu komputer perintah define");
echo WEB. "<br>";
kenapa ya setelah saya ketik begitu malah ada syntax error?
tetapi kalau sy jalankan hasil ketikannya di google chrome tetap tidak masalah, hasilnya sebagai berikut
ilmu komputer
ilmu komputer perintah define
tolong penjelasannya om.
terimakasih
Menggunakan web browser apa y? Barusan saya test di firefox tidak ada masalah…
saya coba mengetiknya di Dreamweaver CS5, tetapi ada keterangan syntax error.
tetapi jika saya jalankan tetap bisa menampilkan dengan baik.
ini yg salah software dreamweavernya atau bagaimana ya?.
kalau mau insert gambar di komen ini bagaimana ya caranya? sy mau berikan hasil printscreenya supaya lebih jelas.
Vang Vang ane kan nyoba nyoba gabungin Cons sama Variabel kok sytanx error ? itu gk bisa atau napa?
<?php
//Belajar PHP di Duniailkom
//Define Gabungan dengan Variabel
$name ="arya "
$gaji ="Gaji Anda Adalah = "
define('ARYA', '1000000000');
echo "$name";
echo "$gaji";
echo ARYA;
?>
tuh vang ane bikin kek gtu
#nubi
Lupa nulis penutup tanda titik komanya tuh ( ; ), seharusnya ditulis seperti ini:
<?php
//Belajar PHP di Duniailkom
//Define Gabungan dengan Variabel
$name ="arya ";
$gaji ="Gaji Anda Adalah = ";
define('ARYA', '1000000000');
echo "$name";
echo "$gaji";
echo ARYA;
?>
Di dalam programming, satu titik aja yang lupa ditulis, programnya g akan jalan…
Mantap gan artikelnya.. sangat membantu terutama bagi yg baru belajar dan masih awam di dunia pemrograman. semoga sukses selalu :)
Siip, semoga bisa bermanfaat..
kalo pengen buat fiture deposit saldo automatis via pulsa/bank gmna gan? saya mau bikin buat e commerce saya :)
Sebaiknya cari jasa programmer saja yang buatkan. Fitur seperti itu cukup rumit untuk pemula, terlebih jika harus terintegrasi dengan saldo bank. Biasanya ini harus menggunakan jasa pihak ketiga (payment gateway).
Gan, saya kurang paham di bagian Catatan ini :
"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."
Mungkin di artikelnya bisa ditambahin sedikit contoh yaa gan.. hehee
Saya baru belajar, Terimakasih artikelnya.. Sangat membantu untuk orang yang baru belajar seperti saya.. Sangat terperinci tahap demi tahap..
Penjelasan tentang scope ini nanti ada di bagian tentang function (Part 41), jadi untuk sementara bisa di lewati saja terlebih dahulu.
$table_data = array(
'#',
_l('pproduction_name'),
_l('pproduction_customer'),
_l('tags'),
_l('pproduction_start_date'),
_l('pproduction_deadline'),
_l('pproduction_members'),
);
_l artinya apa ya
Sepertinya itu sebuah function yang bernama _I(). Itu bukan function bawaan PHP, tapi dibuat oleh programmer yang merancang kode program tersebut.
manfaat sekali
Saat ini di versi php terbaru (saya gunakan versi 7.4) konstanta mendukung penggunaan array.
<?php
define("GAJI", 5000000);
echo GAJI; echo "";
define("GAJI_PEGAWAI", array( 1000000,1500000));
var_dump(GAJI_PEGAWAI);
?>
Hasil:
5000000
array(2) { [0]=> int(1000000) [1]=> int(1500000) }