7 Tipe Data Pemograman Yang Harus Diketahui

 

7 Tipe Data Pemograman

Tipe Data dan Penerapan

Tipe data merupakan jenis atau karakteristik nilai yang ditampung dalam sebuah variabel. Setiap tipe data mendefinisikan tujuan yang berbeda sesuai dengan operasi yang akan dilakukan pada data tersebut. Tipe data pada PHP tidak didefinisikan secara eksplisit. Hal ini dikarenakan tipe data dari setiap variabel ditentukan dari nilai yang di-assign.

Berikut adalah beberapa fungsi penting yang dapat dimanfaatkan berkaitan dengan tipe data, yaitu:

  • gettype() digunakan untuk mengetahui tipe data suatu variabel.
  • isset() digunakan untuk menentukan apakah sebuah variabel telah dideklarasi dan tidak sama dengan NULL.
  • empty() digunakan untuk menentukan apakah sebuah variabel kosong.

Fungsi empty() mengembalikan nilai false apabila sebuah variabel dideklarasi dan memiliki nilai tidak kosong dan angka bukan nol '0'.

Berikut adalah beberapa nilai yang mengembalikan nilai false pada fungsi empty():

  • “” (sebuah string kosong)
  • 0 (sebuah integer bernilai 0)
  • 0.0 (sebuah float bernilai 0)
  • “0” (sebuah string bernilai 0)
  • NULL
  • false
  • [] (sebuah array kosong)

Fungsi empty($var) memiliki ekuivalensi dengan !isset($var) || $var == false.

Contoh:

<?php
$varNull = NULL;
$varBoolean = true;
$varInteger = 1;
$varDouble = 3.2;
$varString = "kata";
$varArray = [1, 2, 3];
$varObject = new stdClass;
echo gettype($varNull); // Output: NULL
echo gettype($varBoolean); // Output: boolean
echo gettype($varInteger); // Output: integer
echo gettype($varDouble); // Output: double
echo gettype($varString); // Output: string
echo gettype($varArray); // Output: array
echo gettype($varObject); // Output: object
?>

Dalam PHP terdapat 7 tipe data, yaitu:

1. NULL

Tipe data NULL merepresentasikan sebuah variabel tanpa nilai. Apabila kita membentuk sebuah variabel baru tanpa memberikan nilai, tipe data variabel tersebut secara otomatis menjadi NULL. Begitu pula apabila kita hendak mengosongkan nilai dari isi variabel, kita dapat melakukan assignment NULL pada variabel tersebut. Hal ini akan menyebabkan variabel terhapus dari memori.

Tipe data NULL memiliki nilai kebenaran false.

Untuk melakukan evaluasi tipe data NULL, kita dapat menggunakan fungsi is_null().

NULL berbeda dengan undefinedundefined berarti sebuah variabel yang tidak dideklarasi sehingga tidak memiliki nilai dan tipe data.

<?php
$nullVariable = NULL;
echo gettype($undefinedVariable);
// Notice: Undefined variable: undefinedVariable
// Output: NULL
echo gettype($nullVariable);
// Output: NULL
echo isset($undefinedVariable) ? "true" : "false";
// Output: false
echo isset($nullVariable) ? "true" : "false";
// Output: false
echo empty($undefinedVariable) ? "true" : "false";
// Output: true
echo empty($nullVariable) ? "true" : "false";
// Output: true
echo is_null($undefinedVariable) ? "true" : "false";
// Notice: Undefined variable: undefinedVariable
// Output: true
echo is_null($nullVariable) ? "true" : "false";
// Output: true
?>

Kita dapat memperhatikan bahwa sebuah variabel yang tidak dideklarasikan akan menampilkan peringatan Notice: Undefined variable ... dan menetapkan variabel tersebut bertipe data NULL sebagai default value.

2. Boolean

Tipe data boolean merupakan tipe data yang hanya dapat bernilai true dan false. Tipe data ini umumnya dimanfaatkan dalam struktur kontrol. Penulisan true dan false tidak perlu menggunakan tanda petik, karena akan menetapkannya sebagai string.

Tipe data boolean yang tidak dideklarasi memiliki default value false.

Untuk melakukan evaluasi tipe data boolean, kita dapat menggunakan fungsi is_bool().

<?php
$varTrue = true;
$varFalse = false;
echo gettype($varTrue);
// Output: boolean
echo gettype($varFalse);
// Output: boolean
echo isset($varTrue) ? "true" : "false";
// Output: true
echo isset($varFalse) ? "true" : "false";
// Output: true
echo empty($varTrue) ? "true" : "false";
// Output: false
echo empty($varFalse) ? "true" : "false";
// Output: true
echo is_bool($varTrue) ? "true" : "false";
// Output: true
echo is_bool($varFalse) ? "true" : "false";
// Output: true
?>

3. Integer

Tipe data integer merupakan tipe data yang nilainya mencakup angka (number). integer dapat diterapkan dengan notasi decimal (…, -2, -1, 0, 1, 2, …), hexadecimal (awalan 0x), atau octal (awalan 0). Penulisan untuk nilai integer juga tidak memerlukan tanda petik.

  • Tipe data integer memiliki nilai kebenaran true untuk angka bukan nol '0'.
  • Tipe data integer memiliki nilai kebenaran false untuk angka nol '0'.

Tipe data integer yang tidak dideklarasi memiliki default value 0.

Untuk melakukan evaluasi tipe data integer, kita dapat menggunakan fungsi is_int().

<?php
$decimalPos = 77; // angka decimal positif
$zeroValue = 0; // angka 0
$decimalNeg = -77; // angka decimal negatif
$hexadecimalPos = 0xB; // angka hexadecimal positif
$hexadecimalNeg = -0x1D; // angka hexadecimal negatif
$octalPos = 012; // angka octal positif
$octalNeg = -022; // angka octal negatif
echo gettype($decimalPos);
// Output: integer
echo gettype($decimalNeg);
// Output: integer
echo isset($hexadecimalPos) ? "true" : "false";
// Output: true
echo isset($hexadecimalNeg) ? "true" : "false";
// Output: true
echo empty($decimalPos) ? "true" : "false";
// Output: false
echo empty($zeroValue) ? "true" : "false";
// Output: true
echo empty($decimalNeg) ? "true" : "false";
// Output: false
echo is_int($octalPos) ? "true" : "false";
// Output: true
echo is_int($octalNeg) ? "true" : "false";
// Output: true
?>

4. Float

Tipe data float merupakan tipe data yang nilainya mencakup bilangan pecahan (angka desimal). Sama seperti integer, penulisan float tidak memerlukan tanda petik.

Jika kita menjalankan fungsi gettype() pada variabel bertipe data float, variabel akan didefinisikan sebagai double. Hal ini dikarenakan pada dasarnya float dan double merupakan tipe data yang sama, hanya berbeda pada ukurannya.

  • Tipe data float memiliki nilai kebenaran true untuk angka bukan nol '0'.
  • Tipe data float memiliki nilai kebenaran false untuk angka nol '0'.
  • NAN (Not-A-Number) memiliki nilai kebenaran true. Hal ini dikarenakan NAN termasuk angka bukan nol '0'.

Tipe data float yang tidak dideklarasi memiliki default value 0.

Untuk melakukan evaluasi tipe data float, kita dapat menggunakan fungsi is_float() atau is_double().

<?php
$floatPos = 7.5237;
$zeroValue = 0.00;
$floatNeg = -0.13967;
$floatExpo = 2.1e5; // 2.1 x 10^(5)
$floatEnot = 5E-3; // 5 x 10^(-3)
echo gettype($floatPos);
// Output: double
echo gettype($floatNeg);
// Output: double
echo isset($floatExpo) ? "true" : "false";
// Output: true
echo isset($floatEnot) ? "true" : "false";
// Output: true
echo empty($floatPos) ? "true" : "false";
// Output: false
echo empty($zeroValue) ? "true" : "false";
// Output: true
echo empty($floatNeg) ? "true" : "false";
// Output: false
echo is_float($floatPos) ? "true" : "false";
// Output: true
echo is_double($floatNeg) ? "true" : "false";
// Output: true
?>

5. String

Tipe data string merupakan tipe data yang terdiri dari kumpulan karakter (array of characters). Penulisan string menggunakan tanda petik.

  • Tipe data string memiliki nilai kebenaran true untuk teks dengan panjang tertentu (> 0), selain string angka nol '0'.
  • Tipe data string memiliki nilai kebenaran false untuk teks kosong dan string angka nol '0'

Tipe data string yang tidak dideklarasi memiliki default value ''.

Untuk melakukan evaluasi tipe data string, kita dapat menggunakan fungsi is_string().

<?php
$statement1 = 'Ini string.';
$statement2 = "Ini juga string.";
$statementEmpty = "";
$statementZero = "0";
echo gettype($statement1);
// Output: string
echo gettype($statement2);
// Output: string
echo isset($statement1) ? "true" : "false";
// Output: true
echo isset($statementEmpty) ? "true" : "false";
// Output: true
echo isset($statementZero) ? "true" : "false";
// Output: true
echo empty($statement1) ? "true" : "false";
// Output: false
echo empty($statementEmpty) ? "true" : "false";
// Output: true
echo empty($statementZero) ? "true" : "false";
// Output: true
echo is_string($statement1) ? "true" : "false";
// Output: true
echo is_string($statementEmpty) ? "true" : "false";
// Output: true
echo is_string($statementZero) ? "true" : "false";
// Output: true
?>

6. Object

Tipe data object merupakan tipe data yang dapat berisi data dan method (function). object dapat juga diartikan sebagai instance dari sebuah classobject disebut sebagai tipe data yang abstrak, berfungsi untuk menampung data dan method yang dapat diakses menggunakan operator ->.

Untuk melakukan evaluasi tipe data object, kita dapat menggunakan fungsi is_object().

<?php
class Contoh {
// data-data
// method-method
function Contoh() {
$this->keterangan = "Tidak ada ...";
}
}
$first_object = new Contoh;
echo gettype($first_object);
// Output: object
echo $first_object->keterangan;
// Output: Tidak ada ...
echo $first_object->contoh;
// Output: Notice: Undefined property: Contoh::$contoh
echo isset($first_object) ? "true" : "false";
// Output: true
echo isset($first_object->keterangan) ? "true" : "false";
// Output: true
echo isset($first_object->contoh) ? "true" : "false";
// Output: false
echo empty($first_object) ? "true" : "false";
// Output: false
echo empty($first_object->keterangan) ? "true" : "false";
// Output: false
echo empty($first_object->contoh) ? "true" : "false";
// Output: true
echo is_object($first_object) ? "true" : "false";
// Output: true
$second_object = new stdClass;
$second_object->nilai1 = "Nilai pertama";
$second_object->nilai2 = 2;
var_dump($second_object);
// Output: object(stdClass)#1 (2) { ["nilai1"]=> string(13) "Nilai pertama" ["nilai2"]=> int(2) }
?>

7. Array

Tipe data array merupakan tipe data yang dapat memuat lebih dari satu nilai (value), umumnya digunakan untuk memuat data yang saling berhubungan. Masing-masing nilai dari array diakses menggunakan index atau key.

Sebuah array dapat berupa indexed array jika array menggunakan index dimulai dari angka 0. Selain itu, array juga dapat berupa associative array dengan key yang dapat kita tentukan sendiri. Pada dasarnya, semua array dalam PHP merupakan associative array. Namun, dalam konvensinya, associative array ditujukan secara spesifik untuk array yang memiliki satu atau lebih key bukan angka (menggunakan index).

Pada PHP, penulisan array dapat menggunakan array(...) dan [...]. Namun, penulisan dengan [...] terlihat lebih rapi dan modern.

Untuk melakukan evaluasi tipe data array, kita dapat menggunakan fungsi is_array().

<?php
$foods = ["Spaghetti", "Bread", "Steak", "fastFood" => "Burger"];
echo gettype($foods);
// Output: array
echo $foods[2];
// Akses nilai dari array menggunakan index
// Output: Steak
echo $foods["fastFood"];
// Akses nilai dari array menggunakan key
// Output: Burger
echo $foods[5];
// Output: Notice: Undefined offset: 5
echo isset($foods) ? "true" : "false";
// Output: true
echo isset($foods[2]) ? "true" : "false";
// Output: true
echo isset($foods[5]) ? "true" : "false";
// Output: false
echo empty($foods) ? "true" : "false";
// Output: false
echo empty($foods[2]) ? "true" : "false";
// Output: false
echo empty($foods[5]) ? "true" : "false";
// Output: true
echo is_array($foods) ? "true" : "false";
// Output: true
var_dump($foods);
// Output: array(4) { [0]=> string(9) "Spaghetti" [1]=> string(5) "Bread" [2]=> string(5) "Steak" ["fastFood"]=> string(6) "Burger" }
?>

Evaluasi Tipe Lainnya [Pengayaan]

Selain melakukan evaluasi tipe data, kita juga dapat memanfaatkan beberapa fungsi tambahan yang disediakan PHP untuk melakukan evaluasi keadaan tipe tertentu.

  • is_finite() berguna untuk menentukan apakah sebuah nilai terhingga (masih dalam range yang diperbolehkan pada PHP float).
  • is_infinite() berguna untuk menentukan apakah sebuah nilai tidak terhingga (di luar range yang diperbolehkan pada PHP float).
  • is_numeric() berguna untuk menentukan apakah sebuah nilai merupakan angka atau string berupa angka.
  • is_nan() berguna untuk menentukan apakah sebuah nilai bukan angka (not a number).
<?php
$zeroLog = log(0); // infinity
$oneThousand = 1000;
$twoThousand = '2000';
$boolFalse = false;
$acosValue = acos(1.1); // NaN (not a number)
echo is_finite($zeroLog) ? "true" : "false";
// Output: false
echo is_finite($oneThousand) ? "true" : "false";
// Output: true
echo is_infinite($zeroLog) ? "true" : "false";
// Output: true
echo is_infinite($oneThousand) ? "true" : "false";
// Output: false
echo is_numeric($zeroLog) ? "true" : "false";
// Output: true
echo is_numeric($oneThousand) ? "true" : "false";
// Output: true
echo is_numeric($twoThousand) ? "true" : "false";
// Output: true
echo is_numeric($boolFalse) ? "true" : "false";
// Output: false
echo is_nan($oneThousand) ? "true" : "false";
// Output: false
echo is_nan($acosValue) ? "true" : "false";
// Output: true
?>
close