Dalam tutorial PHP sebelumnya, kita telah mempelajari 4 tipe data dasar dalam PHP, yaitu Integer, Float, String dan Boolean, serta 1 tipe data bentukan: Array. Dalam beberapa tutorial kedepan, saya akan membahas operasi-operasi yang bisa dilakukan dengan kelima tipe data dasar PHP ini.
Sebagai permulaan, kali ini saya akan mulai dengan membahas pengertian operand, operator dan urutan operator di dalam PHP. Dalam bahasa pemograman, terdapat istilah operand dan operator. Operand adalah nilai asal yang digunakan didalam proses operasi, sedangkan operator adalah instruksi yang diberikan untuk mendapatkan hasil dari proses tersebut.
Contohnya, operasi: 5+2. Angka 5 dan 2 adalah operand, sedangkan tanda tambah (karakter +) adalah operator. Beberapa operator bisa mengubah nilai dari operandnya sendiri, walaupun kebanyakan hanya sebagai penghubung antar operand. Operator di dalam PHP banyak meminjam contoh karakter dari bahasa C dan Perl.
Jenis Operator Berdasarkan Jumlah Operand
Berdasarkan jumlah operand, operator dapat dibedakan menjadi 3, yaitu Operator Unary, Binary dan Ternary.
Program tersebut akan dieksekusi oleh PHP dengan melihat urutan prioritasnya. Urutan prioritas ini menetapkan seberapa “dekat” operator dengan kedua operand-nya. Sebagai contoh, 2+3*5 hasilnya adalah 17, bukan 25. Hal ini karena operator perkalian (*) memiliki prioritas lebih tinggi daripada operator penambahan (+).
Namun urutan prioritas ini dapat “dipaksa” dengan menggunakan tanda kurung, jika anda ingin menjumlahkan 2 dan 3 terlebih dahulu, maka operasi sebelumnya bisa ditulis menjadi (2+3)*5 yang hasilnya adalah 25.
Berikut adalah tabel urutan prioritas operator dalam PHP. Operator paling atas lebih diprioritaskan dari pada operator dibawahnya, dan operator yang berada dalam baris yang sama memiliki urutan prioritas yang sama.
Dari tabel diatas, terdapat beberapa operator yang berada dalam 1 baris. Bagaimana PHP memproses operator-operator yang memiliki urutan prioritas sama? Di dalam PHP, operator tersebut akan diproses berdasarkan kolom arah proses.
Kolom arah proses (atau dalam manual PHP disebut dengan Associativity) digunakan untuk melihat bagaimana arah proses operator dijalankan.
Misalkan operator kurang (-), di dalam tabel dapat dilihat bahwa operator kurang (-) memiliki arah proses “kiri”, sehingga operasi 5 – 3 – 1 oleh PHP diproses dari kiri ke kanan. 5 – 3 – 1 diproses menjadi (5 – 3) – 1, dan hasilnya adalah 1.
Namun di dalam tabel, operator “=” memiliki arah proses “kanan”, sehingga $a = $b = $c, akan diproses dari kanan terlebih dahulu, menjadi $a = ($b = $c).
Jika arah proses tersebut “non-arah”, berarti operator itu tidak bisa digunakan secara berdampingan. Misalkan 4 < 6 > 2, tidak dapat diproses oleh PHP, namun 1 <= 1 == 1 bisa diproses karena operator == memiliki urutan prioritas lebih rendah daripada <=.
Selain untuk memaksakan urutan prioritas, penggunaan tanda kurung juga akan memudahkan pembacaan program, bahkan ketika tidak diperlukan. Misalkan $a AND $b OR $c, akan lebih mudah dimengerti ketika ditulis menjadi ($a AND $b) OR $c, walaupun sebenarnya operator AND memiliki urutan prioritas lebih tinggi daripada OR.
Sebagai permulaan, kali ini saya akan mulai dengan membahas pengertian operand, operator dan urutan operator di dalam PHP. Dalam bahasa pemograman, terdapat istilah operand dan operator. Operand adalah nilai asal yang digunakan didalam proses operasi, sedangkan operator adalah instruksi yang diberikan untuk mendapatkan hasil dari proses tersebut.
Contohnya, operasi: 5+2. Angka 5 dan 2 adalah operand, sedangkan tanda tambah (karakter +) adalah operator. Beberapa operator bisa mengubah nilai dari operandnya sendiri, walaupun kebanyakan hanya sebagai penghubung antar operand. Operator di dalam PHP banyak meminjam contoh karakter dari bahasa C dan Perl.
Jenis Operator Berdasarkan Jumlah Operand
Berdasarkan jumlah operand, operator dapat dibedakan menjadi 3, yaitu Operator Unary, Binary dan Ternary.
- Operator unary adalah operator yang hanya memiliki 1 operand, contohnya karakter – (tanda minus). Tanda minus digunakan membuat sebuah angka menjadi negatif, contohnya: -5, atau karakter + untuk menegaskan nilai positif, contohnya: +5.
- Operator binary adalah operator yang memiliki 2 operand. Operator jenis ini adalah yang paling banyak digunakan, misalkan 5×2, atau 10/3.
- Operator Ternary adalah operator yang memiliki 3 operand. Didalam PHP hanya dikenal 1 operator ternary, yaitu operator kondisi (? :). Kita akan mempelajari operator ini dalam tutorial selanjutnya.
Urutan Prioritas Operator dalam PHP
Sama seperti membuat persamaan dalam matematika, operator dalam PHP juga memiliki urutan pemrosesan tersendiri. Misalkan terdapat kode program sebagai berikut:
$hasil1 = $a + $b/$c - $d; $hasil2 = $a AND $b || $c AND $d;
Namun urutan prioritas ini dapat “dipaksa” dengan menggunakan tanda kurung, jika anda ingin menjumlahkan 2 dan 3 terlebih dahulu, maka operasi sebelumnya bisa ditulis menjadi (2+3)*5 yang hasilnya adalah 25.
Berikut adalah tabel urutan prioritas operator dalam PHP. Operator paling atas lebih diprioritaskan dari pada operator dibawahnya, dan operator yang berada dalam baris yang sama memiliki urutan prioritas yang sama.
Dari tabel diatas, terdapat beberapa operator yang berada dalam 1 baris. Bagaimana PHP memproses operator-operator yang memiliki urutan prioritas sama? Di dalam PHP, operator tersebut akan diproses berdasarkan kolom arah proses.
Kolom arah proses (atau dalam manual PHP disebut dengan Associativity) digunakan untuk melihat bagaimana arah proses operator dijalankan.
Misalkan operator kurang (-), di dalam tabel dapat dilihat bahwa operator kurang (-) memiliki arah proses “kiri”, sehingga operasi 5 – 3 – 1 oleh PHP diproses dari kiri ke kanan. 5 – 3 – 1 diproses menjadi (5 – 3) – 1, dan hasilnya adalah 1.
Namun di dalam tabel, operator “=” memiliki arah proses “kanan”, sehingga $a = $b = $c, akan diproses dari kanan terlebih dahulu, menjadi $a = ($b = $c).
Jika arah proses tersebut “non-arah”, berarti operator itu tidak bisa digunakan secara berdampingan. Misalkan 4 < 6 > 2, tidak dapat diproses oleh PHP, namun 1 <= 1 == 1 bisa diproses karena operator == memiliki urutan prioritas lebih rendah daripada <=.
Selain untuk memaksakan urutan prioritas, penggunaan tanda kurung juga akan memudahkan pembacaan program, bahkan ketika tidak diperlukan. Misalkan $a AND $b OR $c, akan lebih mudah dimengerti ketika ditulis menjadi ($a AND $b) OR $c, walaupun sebenarnya operator AND memiliki urutan prioritas lebih tinggi daripada OR.