/ PHP

PHP - Variable

Apa Itu Variabel?

Mungkin kalian sudah sering mendengar kata variabel terutama di pelajaran matematika, misalnya variabel x, variabel y, dst. Namun apa sebenarnya yang dimaksud dengan variabel? Sederhananya adalah variabel adalah sesuatu yang memiliki atau menyimpan nilai dan nilai itu bisa diganti dengan nilai lain. Nah dalam PHP, variabel merupakan cara yang paling utama yang digunakan untuk menyimpan suatu nalai yang nantinya akan kita olah.

Ketentuan Mengenai Variabel

Semua bahasa pemrograman memiliki yang namanya variabel, yang membedakan adalah ketentuan mengenai bagaimana kita menggunakan variabel. Dalam PHP, ada beberapa ketentuan mengenai variabel yang perlu kita pahami:

  1. Semua variabel diawali dengan tanda $.
  2. Nama variabel haris diawali dengan huruf atau simbol underscore _. Nama variabel tidak bisa diawali dengan angka.
  3. Nama variabel hanya bisa berisi huruf, angka atau underscore (a-z, 0-9, _).
  4. Nama variabel case-sensitive artinya $name berbeda dengan $NAME.
  5. Nilai suatu variabel, adalah nilai paling terbaru yang kita berikan pada variabel tersenut. Jadi bila kita menentukan variabel $x = 1, kemudian pada statement berikutnya kita buat $x = 2, maka nilai variabel tersebut adalah 2.
  6. Nilai variabel diberikan dengan menggunakan operator =. Bagian di sebelah kiri tanda = merupakan variabel yang akan diberikan nilai, dan bagian sebelah kanan tanda = merupakan perhitungan nilai yang akan kita berikan.
  7. Variable dapat dibuat terlebih dahulu tanpa diberikan nilai.
  8. Variabel dalam PHP tidak dikhususkan untuk tipe data tertentu seperti halnya dalam bahasa pemrograman lain seperti JAVA. Artinya sebuah variabel dapat menyimpan nilai berupa text, number, boolean atau nilai apapun, dan bisa diubah dengan tipe apapun.

Berikut adalah contoh nama variabel yang benar:

  • $name
  • $_age
  • $NAME
  • $tgl_lahir
  • $tmpLahir

Dan berikut adalah contoh yang salah:

  • usia
  • $1ST
  • $-asal

Walaupun ada banyak cara untuk membuat nama variabel, sebaiknya kalian konsisten dalam meberikan nama, jangan terlalu panjang, namun jangan juga terlalu pendek. Nama variabel sebaiknya mudah terbaca dan mencerminkan nilai yang akan disimpan dengan variabel tersebut.

Selanjutnya kita lihat contoh penggunaan variabel dalam PHP:

<?php
    //Mendeklarasikan variabel tanpa nilai dan memberikan nilai
    $name;
    $name = 'Jony';
    echo $name.'<br/>';

    //Mengubah nilai variabel
    $name = 'Joko';
    echo $name.'<br/>';

    //Membuat variable lain dan langsung memberikan nilai
    $NAME = 'Jackson';
    echo $NAME;

    //Kita bisa mengubah tipe nilai variabel dari text menjadi number
    $NAME = 12;
    echo $NAME;
?>

Output dari code di atas adalah:

Jony

Joko

Jackson

12

Cakupan Variabel atau Variable Scope

Kita bisa mendeklarasikan sebuah variabel dibagian manapun di dalam sebuah dokumen PHP. Namun, cakupan dari variabel tersebut mungkin akan terbatas tergantung di mana kita membuatnya.

Ada 3 jenis cakupan variabel:

  • Variabel local
  • Variabel global
  • Variabel statis

Variabel Local

Sebuah variabel yang dibuat dalam sebuah fungsi bisa dikatakan sebagai variabel local. Variabel tersebut hanya bisa diakses di dalam fungsi tersebut, dan tidak bisa diakses di luar fungsi atau di fungsi yang lain.

Perhatikan contoh di bawah ini

<?php
   $x = 4;//global variabel

   //Sebuah fungsi yang memiliki variabel x
   function contoh_variabel_local () { 
      $x = 0;//local variabel
      $y = 1;//local variabel
      echo 'Nilai x di dalam fungsi adalah '.$x.'<br/>';
   }

   //Kita ekesekusi fungsi contoh_variabel_local
   contoh_variabel_local ();

   //Kita lihat variabel nilai variabel x di luar fungsi
   echo 'Nilai x di luar fungsi adalah '.$x.'<br/>';
   echo 'Nilai y di luar fungsi adalah '.$y;
?>

Kode tersebut akan menghasilkan output:

Nilai x di dalam fungsi adalah 0

Nilai x di dalam fungsi adalah 4

Nilai y di luar fungsi adalah

Bisa kita lihat bahwa variabel x di dalam fungsi berbeda dengan variabel x di luar fungsi. Variabel x yang berada di luar fungsi disebut global variabel, dan yang di dalam fungsi disebut local variabel. Pada output yang pertama, nilai x berasal dari dalam fungsi yang nilainya 0, sedangkan di luar fungsi nilai x tetap 4. Nah pada output yang ke 3, kita coba menampilkan nilai y di luar fungsi dan hasilnya tidak ada. Alasannya karena variabel y hanya ada di dalam fungsi dan tidak bisa diakses dari luar fungsi tersebut.

Variabel Global

Berbeda dengan variabel local, variabel global dapat dibuat, diakses, dan diubah di bagian manapun dalam porogram termasuk di dalam fungsi. Namun, untuk melakukannya, sebuah variabel harus dideklarasinya secara eksplisit sebagai variabel global. Hal ini bisa dilakukan dengan menambahkan keyword global sebelum nama variabel. Apabila sudah ada nama variabel yang sama, maka itu berarti kita tidak ingin membuat variabel baru, tetapi hanya ingin mengambil variabel global yang sudah ada.

Contoh:

<?php
    $x = 5;

    function myTest() {
        global $x;//Contoh mengakses variabel global
        global $y;//Contoh membuat variable global

        echo 'Nilai variabel x di dalam fungsi adalah '.$x.'<br/>'; 

        $y = 3;            
        $x = 12;           
    }   

    myTest();
    echo 'Nilai variabel x di luar fungsi adalah '.$x.'<br/>';
    echo 'Nilai variabel y di luar fungsi adalah '.$y;
?>

Output:

Nilai variabel x di dalam fungsi adalah 5

Nilai variabel x di luar fungsi adalah 12

Nilai variabel y di luar fungsi adalah 3

Penjelasannya sebagai berikut:

  • Pertama, kita mengakses variabel global x di dalam sebuah fungsi dengan keyword global. Pada line berikutnya kita mencetak nilai x sebelum kemudian kita mengubah nilainya menjadi 12. Selain itu kita juga membuat variabel global baru yaitu y. Saat fungsi ini dipanggil dengan myTest(), output yang dihasilnya adalah nilai variabel global x sebelum diubah yaitu x = 5.
  • Ketika kita mencetak nilai x di luar fungsi, nilai yang dihasilkan adalah x = 12, karena kita sudah mengubah nilai global x di dalam fungsi myTest().
  • Kemudian kita mencetak nilai variabel y dari luar fungsi. Hasilnya y = 3. Jadi walaupun y dibuat di dalam ebuah fungsi, ketika y mendeklarasikannya sebagai variabel global, maka y bisa diakses dari manapun di luar fungsi tersebut bahkan dapat diakses dari fungsi lain.

Variabel Statis

Katika sebuah fungsi telah selesai dieksekusi, semua variabelnya akan dihapus dari memory. Tetapi PHP memperbolehkan kita menyimpan data sebuah variabel apabila variabel tersebut didiklarasikan sebagai variabel statis atau static variable. Caranya yaitu dengan menambahkan keyword static saat kita membuat variabel tersebut.

Pada contoh dibawah ini, kita akan coba membuat dua jenis variabel, yang 1 statis dan yang 1 normal. Kalian perhatikan perbedaannya.

<?php
    function tesStatis() {
        static $x = 0;
        $y = 10;

        echo 'x = '.$x.' dan y = '.$y;
        echo '<br/>';

        $x = $x + 1;
        $y = $y + 5;

        //Fungsi berakhir, nilai variabel y akan di hapus
        //Sedangkan nilai variabel x yang statis akan disimpan
    }

    tesStatis();
    tesStatis();
    tesStatis();
?>

Output:

x = 0 dan y = 10

x = 1 dan y = 10

x = 2 dan y = 10

Perhatikan variabel y pada contoh di atas. Pada awal fungsi, kita berikan nilai 10 pada y, dan di akhir fungsi, nilai y kita tambahkan 5 sehingga menjadi 15. Namun, karena fungsi ini sudah berakhir, nilai y akan dihapus dari memori. Sehingga, ketika fungsi ini kita panggil lagi, nilai y akan akan diberikan dari awal lagi, yaitu 10. Hasilnya nilai y akan selalu 10.

Berbeda dengan variabel x yang adalah statis. Setelah kita mencetak nilai x, kita menambahkan 1 pada nilai x sehingga menjadi 2. Nah karena variabel x adalah statis, nilai x akan tetap 2. Sehingga, ketika fungsi ini dipanggil untuk kedua kalinya, nilai x sudah menjadi 2. Walaupun di dalam fungsi ada deklarasi static $x = 1, statement ini akan diabaikan.