Estimasi Waktu Baca: 3 menit

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 sampai 2147483647
  • Jika 64 bit, maka batasnya antara -9223372036854775808 sampai 9223372036854775807

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.