Penjelasan Operator Assignment pada PHP

tutorial belajar PHP untuk pemula

Dalam tutorial saat ini saya akan membicarakan mengenai Pengertian dan Jenis-jenis Operator Assignment (Assignment Operators) dalam PHP, serta perbedaan antara Assignment by Value dan Assignment by References.

Pengertian Operator Assignment dalam PHP

Operator assignment ialah operator untuk menambahkan, atau memasukkan sebuah nilai kedalam variabel. PHP mempunyai tiga macam operator assigment, dan kita sudah memakai 2 diantaranya, yaitu tanda = untuk mengdefenisikan variabel, dan tanda => untuk mengisi nilai dari array.

Jenis-jenis Operator Assigment dalam PHP

PHP mengenal tiga macam operator assigment, yaitu Assigment dengan Nilai (Assignment by Value), Assigment Array, dan Assigment dengan Referensi (Assignment by Reference).

Pengertian Operator Assigment dengan Nilai (Assignment by Value)

Assigment dengan Nilai atau dalam istilah pemograman terkenal dengan Assignment by Value , ialah proses pemberian nilai kedalam sebuah variabel dengan meng-copy nilai atau value dari variabel lain.

PHP memakai tanda sama dengan (=) untuk Assignment by Value. Secara tak sadar, kita sudah banyak memakai operator ini di berbagai contoh pada tutorial sebelumnya. Di saat memakai operator “=”, PHP meng-copy nilai (atau value), dari sisi kanan operator ke sisi kiri.

Operator Assignment by Value (dan juga operator assigment lainnya) mempunyai arah proses kanan (bisa dilihat dalam tabel urutan proses pada Tutorial PHP: Pengertian Operand, Operator dan Urutan Operator dalam PHP) sehingga proses pemberian nilai kepada sebuah variabel dimulai dari kanan, seperti contoh berikut:

<?php
$a = 20;
$b = 15;
$c = 5;
echo "$a = $a, $b = $b, $c = $c";
echo "<br />";
// hasil proses: $a = 20, $b = 15, $c = 5
$a = $b = $c+5;
echo "$a = $a, $b = $b, $c = $c";
// hasil proses: $a = 10, $b = 10, $c = 5
?>

Dalam contoh kode PHP diatas, saya mendefenisikan 3 variabel: $a, $b, dan $c dengan operator assigment by value. Perhatikan pada baris terakhir, dimana saya menuliskan kode $a = $b = $c+5, yang urutan pemrosesannya di awali dari kanan ke kiri, sehingga yang diproses oleh PHP jadi: $a = ($b = ($c+5)).

Pengertian Operator Assigment Array

Operator Assigment array ialah operator assigment untuk memasukkan nilai kedalam array. Operator ini memakai tanda panah (=>). Kita sudah mendiskusikan cara pembuatan, dan pemakaian operator ini di tutorial Mengenal Tipe Data Array dan Cara Penulisan Array dalam PHP.

Pengertian Assigment dengan Referensi (Assignment by Reference)

Assigment dengan referensi atau dalam istilah programmingnya: Assignment by Reference, ialah operator assigment khusus yang dipakai untuk men-copy nilai referensi dari sebuah variabel.

Pengalaman saya, assigment dengan referensi ini akan jarang dipakai, namun tetap penting untuk diketahui bahwa PHP menyediakan fitur ini.

Perhatikan contoh kode PHP berikut ini:

<?php
$a = 20;
$b = $a;
echo "$a = $a, $b = $b";
echo "<br />";
// hasil proses: $a = 20, $b = 20
$a = $a + 5;
echo "$a = $a, $b = $b";
echo "<br />";
// hasil proses: $a = 25, $b = 20
$b = $b + 10;
echo "$a = $a, $b = $b";
// hasil proses: $a = 25, $b = 30
?>

Dalam kode program diatas, saya membuat 2 buah variabel, yaitu $a dan $b. Variabel $a saya input dengan nilai 20, sedangkan variabel $b men-copy nilai dari variabel $a. Berikutnya saya tampilkan kedua variabel itu memakai perintah echo.

Pada baris ke-9 saya menambahkan nilai variabel $a dengan 5, lalu menampilkan hasil kedua variabel itu. Berikutnya pada baris ke-14 saya menambahkan $b dengan 10, lalu menampilkan hasilnya

Kata kunci disini ialah, variabel $b cuma men-copy nilai yang ada di variabel $a, sehingga kedua variabel memiki nilai sendiri-sendiri dan terpisah, seperti yang tampak dari hasil echo.

Bagaimana bila yang saya harapkan ialah: sebab variabel $a=$b, maka saat saya mengubah nilai salah satu variabel, nilai pada variabel yang lain juga ikut berubah. Fitur inilah yang dapat diperoleh dengan Assignment by Reference.

Assignment by Reference dalam PHP memakai operator “= &”.

Perhatikan contoh kode PHP berikut yang sama persis dengan contoh sebelumnya, tetapi saya mengganti baris $b = $a, jadi $b = &$a:

<?php
$a = 20;
$b = &$a;
echo "$a = $a, $b = $b";
echo "<br />";
// hasil proses: $a = 20, $b = 20
$a = $a + 5;
echo "$a = $a, $b = $b";
echo "<br />";
// hasil proses: $a = 25, $b = 25
$b = $b + 10;
echo "$a = $a, $b = $b";
// hasil proses: $a = 35, $b = 35
?>

Seperti yang bisa dilihat, bahwa sekarang kedua variabel ($a dan $b), seakan-akan saling terikat, sehingga saat sebuah variabel diubah nilainya, variabel yang lain juga ikut berubah.

Perbedaan Assigment By Value dan Assigment By Reference

Supaya lebih jelas, berikut ialah Perbedaan Proses Assigment By Value, dengan Assigment By Reference

Didalam bahasa pemograman (dan juga PHP), sebuah nilai dari variabel di simpan dalam sebuah alamat  tertentu di memory komputer. Alamat memory inilah yang dimaksud dengan referensi.

Misalnya variabel $a mempunyai nilai 20, dan berada di tempat memory 1013, saat saya membuat kode program $b=$a, maka nilai (atau value) dari variabel $a di-copy ke dalam variabel $b yang bisa saja akan berada di tempat memory 1014. Sehingga sekarang ini ada 2 buah tempat memori untuk menampung nilai dari masing-masing variabel, $a pada tempat 1013 dengan nilai 20, dan $b pada tempat 1014 dengan nilai 20 (dicopy dari nilai $a).

Saat saya menambahkan variabel $a dengan operasi $a = $a + 5, nilai pada tempat memory 1013 akan jadi 25, tetapi sebab mempunyai tempat memory yang berbeda, nilai pada variabel $b akan tetap 20. Inilah proses yang terjadi saat memakai Assigment By Value.

Bagaimana dengan Assigment By Reference?

Saat variabel $a dengan nilai 20 berada di tempat memory 1013, dan saya menjalankan perintah $b=&$a, maka yang terjadi ialah, alamat tempat memory (referensi) untuk variabel $b dicopy dari nilai variabel $a, sehingga kedua variabel mempunyai 1 alamat memory yang sama, yaitu 1013.

Sebab alamat untuk variabel $a dan $b sama, maka saat salah satu variabel merubah nilai di alamat 1013, maka nilai itu akan berganti. Saat saya menambahkan nilai variabel $a dengan operasi $a = $a + 5, nilai pada tempat memory 1013 akan jadi 25. Dan saat saya tampilkan nilai dari variabel $b, maka PHP akan mencari nilai di tempat memori 1013, dan menampilkan hasilnya, yaitu 25. Kedua variabel $a dan $b terikat dengan 1 tempat memory yang sama.

Dalam tutorial ini kita sudah mempelajari mengenai pengertian dan jenis operator assigment, serta perbedaan antara assigment by value dengan assigment by references. Konsep ini bersifat universal untuk beragam bahasa pemograman (tidak cuma PHP).


Butuh Web Developer Makassar atau Jasa SEO di Makassar yang bergaransi? Jangan ragu dengan infanthree.com. Kami juga penyedia Jasa Pembuatan Aplikasi Android di Makassar yang terkemuka. Selain itu ada layanan SEM, SMM, Internet Marketing Agency Makassar dan Social Media, Pembuatan Logo, Konten, Video, Maskot dan Instalasi jaringan ataupun mikrotik, hingga pelatihan komputer dan internet marketing.

Recommended Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *