Apa itu Tipe Data Numerik?
Tipe data numerik merupakan tipe data yang mewakili data berupa angka atau bilangan. Terdapat dua macam tipe data numerik di PHP yaitu integer dan float.
Tipe Data Integer
Integer merupakan tipe data yang mewakili bilangan bulat desimal seperti 1, 2, 3, 10, 100, 1000, dan sebagainya.
<?php
var_dump(100);
Biner, Octal, dan Hexadecimal
Selain bilangan basis 10 (desimal: [0 – 9]), PHP juga dapat mewakili penulisan bilangan basis yang lain, seperti:
basis 2 (biner: [0, 1]), penulisan biner dimulai dengan 0b
lalu diikuti dengan deret bilangan binernya.
<?php
var_dump(0b1100100);
basis 8 (octal: [0 – 7]), untuk penulisan octal dimulai dengan angka 0
diikuti dengan deret bilangan octalnya.
<?php
var_dump(0144);
Tambahan: pada PHP versi 8.1 untuk mendefinisikan bilangan octal juga bisa menggunakan 0o
atau 0O
.
basis 16 (hexadecimal [0 – 9, a – f]), sedangkan untuk penulisan hexadecimal dimulai dengan angka 0x
kemudian diikuti dengan deret bilangan/huruf hexadecimalnya.
<?php
var_dump(0x64);
Ketiga contoh di atas akan menghasilkan keluaran:
int(100)
Batasan Tipe Data Integer
Tipe data integer sebenarnya memiliki batas maksimum dan minimumnya. Batasan ini juga tergantung arsitektur dari pc atau sistem yang kita pakai, apakah 32 bit atau 64 bit.
- Jika 32 bit, maka batasnya antara
-2147483648
sampai2147483647
- Jika 64 bit, maka batasnya antara
-9223372036854775808
sampai9223372036854775807
Atau jika ingin mengeceknya sendiri bisa gunakan konstanta PHP_INT_MIN
dan PHP_INT_MAX
.
<?php
# min integer
var_dump(PHP_INT_MIN);
# max integer
var_dump(PHP_INT_MAX);
Lantas bagaimana jika bilangan yang kita tulis melebihi batas?
<?php
var_dump(9223372036854775808); # +1 melebihi batas
Maka PHP secara otomatis akan mengubahnya ke bentuk float.
float(9.223372036854776E+18)
Tipe Data Float
Floating point atau float adalah tipe data numerik yang mewakili bilangan pecahan desimal. Penulisan bilangan pecahan desimal pada PHP menggunakan format tanda titik .
bukan koma ,
.
<?php
var_dump(4.04)
Batasan Float
Sama seperti integer, float juga memiliki batas minimum dan maksimumnya, batasan ini juga tergantung platform yang digunakan. Untuk arsitektur 64 bit umumnya antara 2.2250738585072014E-308
sampai 1.7976931348623157E+308
dengan presisi 14 digit angka.
Nilai maksimum dan minimum float ini bisa dicek melalui konstanta PHP_FLOAT_MIN
dan PHP_FLOAT_MAX
.
<?php
# min float
var_dump(PHP_FLOAT_MIN);
# max float
var_dump(PHP_FLOAT_MAX);
Nilai Infinity (INF)
Ketika sebuah bilangan tipe integer melewati batas maka akan secara otomatis diubah menjadi tipe float, lantas bagaimana bila bilangan bertipe float yang melewati batas?
<?php
var_dump(1.8E+308);
Maka akan menjadi INF
alias infinity
.
float(INF)
Bilangan Positif dan Negatif
Untuk penulisan bilangan positif bisa gunakan tanda plus di awal angka atau bisa juga tidak, karena php sendiri secara default sudah menganggapnya bilangan positif. Sebaliknya untuk bilangan negatif wajib gunakan tanda minus (-) di awal.
<?php
# positif dan negatif pada integer
var_dump(+1); # integer positif
var_dump(1); # secara default positif
var_dump(-1); # integer negatif
# positif dan negatif pada float
var_dump(+1.0); # float positif
var_dump(1.0); # secara default positif
var_dump(-1.0); # float negatif
Notasi E
Notasi ilmiah E merupakan cara singkat untuk menulis bilangan yang memiliki digit terlalu banyak. Notasi ini sudah sempat kita lihat sebelumnya.
Penulisan notasi E dalam PHP adalah sebagai berikut:
<?php
var_dump(5E+3);
Notasi E melambangkan angka 10, angka setelahnya mewakili pangkatnya. misal pada contoh di atas sama seperti 5 x 103.
float(5000)
Nilai yang menggunakan notasi E secara otomatis akan bertipe float.
Sedangkan jika ingin mengubahnya ke bentuk pecahan desimal, maka tambahkan tanda minus seperti ini:
<?php
var_dump(5E-3);
Hasilnya:
float(0.005)
Underscore Sebagai Pemisah Digit
Seringkali kita kesulitan dalam membaca bilangan dengan jumlah digit yang banyak.
<?php
var_dump(1000000000);
Hal ini dikarenakan dalam penulisannya tidak ada pemisah seperti tanda titik yang membuatnya agar mudah dibaca.
1.000.000.000
Namun sayangnya jika kita terapkan pada PHP, hal ini bisa jadi akan dibaca float atau bisa jadi error karena menggunakan lebih dari satu titik.
Parse error: syntax error, unexpected floating-point number ".000"
Dalam PHP, hal ini bisa diakali dengan penggunaan tanda underscore.
<?php
var_dump(1_000_000_000);
Tidak perlu khawatir terhadap tanda underscorenya, karena PHP secara otomatis akan mengabaikannya.
int(1000000000)
Materi Berikutnya….
Hari ini kita sudah belajar tentang tipe data numerik yang meliputi tipe data integer dan float. Selanjutnya kita akan belajar mengenai tipe data Boolean.