Operator Dan Ekspresi Dalam Bahasa C
1. Operator, Ekspresi dan Pernyataan
Operator adalah simbol-simbol yang digunakan untuk melaksanakan suatu pengolahan data, baik berupa bilangan maupun teks. Dengan menggunakan operator-operator tersebut, seorang pemrogram tidak perlu lagi secara khusus mempelajari bagaimana subuah perangkat keras komputer melaksanakan pengolahan terhadap data yang diberikan.
C memiliki banyak sekali operator, menjadikan bahasa ini sangat ampuh dalam menyelesaikan berbagai persoalan. Berbagai jenis operator yang dikenal oleh C dapat dikelompokkan atas : operator aritmatika, operator rasional, operator logika, operator bit-wise logika, dan beberapa operator khusus, misalnya operator sizeof, operator penugasan, operator koma, operator bertingkat, operator alamat, operator bersyarat, dan operator cast. Masing-masing kelompok operator tersebut akan dibahas secara terperinci pada bagian berikut. Pembahasan mengenai operator ini dilengkapi pula dengan presedensi operator.
1.1 Operator Aritmatika
Operator adalah simbol-simbol yang digunakan untuk melaksanakan suatu pengolahan data, baik berupa bilangan maupun teks. Operator aritmatika adalah sekelompok operator yang digunakan untuk mengolah aritmatik.
Tabel 1.1 Daftar operator aritmatika
Operator
|
Nama
|
Contoh
|
Penjelasan
|
*
|
Perkalian
|
x * y
|
Kalikan x dengan y
|
/
|
Pembagian
|
x / y
|
Bagi x dengan y
|
%
|
Modulo
|
x % y
|
Sisa pembagian x oleh y
|
+
|
Penjumlahan
|
x + y
|
Tambahkan x dengan y
|
-
|
Pengurangan
|
x – y
|
Kurangkan x dengan y
|
++
|
Postfix Inkremen
Prefix Inkremen
|
++x
x++
|
Inkremen x setelah digunakan
Inkremen x sebelum digunakan
|
--
|
Postfix Dekremen
Prefix Dekremen
|
--x
x--
|
Dekremen x sebelum digunakan
Dekremen x sesudah digunakan
|
-
|
Negasi
|
-x
|
Negasikan nilai x
|
+
|
Unary plus
|
+x
|
Nilai positif x
|
Operator-operator *, /, %, +, dan – merupakan operator dyadic atau binary operator, yakni operator yang membutuhkan dua operand: kiri dan kanan. Sedangkan operator yang hanya membutuhkan satu operand, disebutmonadic atau operator unary. Yang termasuk golongan operator ini adalah:inkremen (++) dekremen (--), unary minus (-),unary plus (+).
Operasi unary inkremen dan dekremen masing-masing berfungsi untuk menambah nilai variabel dengan satu dan mengurangi nilai variabel dengan satu. Operator unary minus dan unary plusberturut-turut digunakan untuk mengambil nilai negatif dan nilai positif dari suatu bilangan.
Tabel 1.2 Presedensi operator aritmatika
Operator
|
Asosiatifias
|
Presedensi
|
++ --
|
Kanan ke kiri
|
Tertinggi
|
-
|
Kiri ke kanan
| |
* / %
|
Kiri ke kanan
| |
+ -
|
Kiri ke kanan
|
Terendah
|
1.2 Operator Relasional
Operator relasional adalah binary operator yang digunakan untuk membandingkan suatu nilai. Dalam C, ada enam jenis operator relasional: lebih besar, lebih besar atau sama dengan, lebih kecil, lebih kecil atau sama dengan, sama dengan, dan tidak sama dengan.
Tabel 1.3 Daftar operasi relasional
Operator
|
Nama
|
Contoh
|
Penjelasan
|
<
|
Lebih kecildari
|
x > y
|
1 jika x lebih besar y, 0 jika tidak
|
<=
|
Lebih kecilatau samadengan
|
x >=y
|
1 jika x lebih besar atau sama dengan y, 0 jika tidak
|
>
|
Lebih besardari
|
x < y
|
1 jika x lebih kecil y, 0 jika tidak
|
>=
|
Lebih besaratau samadengan
|
x <=y
|
1 jika x lebih kecil atau sama dengan y, 0 jika tidak
|
==
|
Sama dengan
|
x == y
|
1 jika x sama dengan y, 0 jika tidak
|
!=
|
Tidak samadengan
|
x != y
|
1 jika x dan y tidak sama, 0 jika tidak
|
1.3 Operator Logika
Operator logika adalah operator-operator yang berkaitan dengan operasi logika, seperti negasi, (ingkaran), konjungsi (dan), dan disjungsi (atau).
Tabel 1.4 Daftar operator logika
Operator
|
Nama
|
Contoh
|
Penjelasan
|
!
|
NOT logika
|
!x
|
1jika x nol, 0 jika tidak
|
&&
|
AND logika
|
x && y
|
1 jika x dan y keduanya 1
|
||
|
OR logika
|
x ll y
|
0 jika x dan y keduanya 0
|
1.4 Operator Bitwise Logika
Operator bitwise logika memperlakukanoperan-operand-nya sebagai sebuah kuntitas yeng terdiri dari bit-bit. Operasi dilakukan terhadap masing-masing bit tersebut satu demi satu. Operator &&, ||, dan ! memperlakukan seluruh operand-nya sebagai sebuah nilai benar atau salah yang tunggal. Sedangkan operator bitwise logika dikenakan secara parallel terhadap posisibit secara individu.
Tabel 1.5 Operator bitwise logika
Operator
|
Nama
|
Contoh
|
Penjelasan
|
~
|
Bit-NOT
|
~x
|
Mengubah bit 1 menjadi 0 dan bit 0 menjadi 1
|
&
|
Bit-AND
|
x & y
|
AND bitwise dari x dan y
|
|
|
Bit-OR
|
x / y
|
OR bitwise dari x dan y
|
^
|
Eksklusif-OR
|
x ^ y
|
Bernilai 1 bila bit-bit x dan y berbeda
|
<<
|
Left Shift
|
x << 4
|
x digeser ke kiri sebanyak 4 posisi bit
|
>>
|
Right Shift
|
x >> 4
|
x digeser ke kanan sebanyak 4 posisi bit
|
1.5 Operator-operator Khusus
Disamping operator-operator yang telah dibahas sebelumnya, C memiliki beberapa operator lain yang bersifat khusus dan digunakan untuk maksud-maksud tertentu. Beberapa diantaranya adalah sebagai berikut
A. Operator sizeof
Operator sizeof adalah sebuah operatorunary yang digunakan pada perhitungan jumlah byte yang dibutuhkan untuk menyimpan sebuah objek atau jenis data. Penentuan ini diperlukan karena sebagian besar jenis data dan variabel membutuhkan tempat penyimpanan internal yang berbeda antara satu komputer dengan komputer yang lain. Dengan penentuan ini, konsistensi data yang digunakan pada program dapat dipertahankan.
B. Operator penugasan
Operator penugasan (assignment operator) adalah operator yang digunakan untuk memberikan nilai pada suatu variabel. Operator ini adalah binary operator, dengan sisi sebelah kirinya berupa lvalue, yaitu sebuah variabel tunggal yang mengacu ke memori komputer, sementara sisi sebelah kanannya dapat berupa lvalue atau rvalue. Rvalue adalah sebuah ekspresi yang bukanlvlaue, contohnya paling sederhana adalah konstanta. Selain itu operator penugasan juga dapat digabungkan dengan operator aritmatika dan operator bitwise logika.
Tabel 1.6 Daftar operator gabungan
Operator
|
Contoh
|
Ekspresi ekivalen
|
Penjelasan
|
+=
|
x += n
|
x = x + n
|
Tambah x dengan n
|
-=
|
x -= n
|
x = - n
|
Kurangi x dengan n
|
*=
|
x *= n
|
x = * n
|
Kalikan x dengan n
|
/=
|
x /= n
|
x = / n
|
Bagi x dengan n
|
%=
|
x %= n
|
x = % n
|
Pembagian sisa x dengan n
|
<<=
|
x <<= n
|
x = << n
|
x digeser ke kiri sebanyak n posisi bit
|
>>=
|
x >>= n
|
x = >> n
|
x digeser ke kanan banyak n posisi bit
|
&=
|
x &= n
|
x = & n
|
Setiap bit x di-AND kan dengan setiap bit n
|
|=
|
x |= n
|
x = | n
|
Setiap bitdi-OR kan dengan setiap bit n
|
^=
|
x ^= n
|
x = ^ n
|
Setiap bitdi-XOR kan dengan setiap bit n
|
C. Operator koma
Operator koma digunakan untuk memisahkan sederetan nama variabel dalam sebuah deklarasi, memisahkan argument fungsi, menyatukan dua ekspresi menjadi sebuah pernyataan, memungkinkan pemberian lebih besar dari satu ekspresi pada harga awal, dan perbaikan harga pada struktur pengulangan.
D. Operator bertingkat
Operator bertingkat (nested operator) adalah beberapa operator yang dikenakan di dalam sebuah ekspresi. Masing-masing operator di dalam ekspresi tersebut memberikan sebuah nilai yang kemudian dapat digunakan didalam ekspresi yang lebih besar.
E. Operator alamat
Operator alamat adalah operator yang memberikan alamat dari operand-nya, misalnya &x memberikan alamat dari x.Operand yang dikenakan pada & haruslah merupakan lvalue¸yang memiliki tempat penyimpanan di dalam memori.
F. Operator bersyarat
Operator yang satu-satunya bersifat triadic(ternary operator) yang membutuhkan tiga buah operand dan dikenal juga sebagai ekspresi bersyarat. Ketiga buah operandyang dibutuhkan pada operator ini terdiri dari: satu ekspresi yang akan diuji dan dua ekspresi pilihan.
G. Operator cast
Dalam sebuah program, pengkonversian jenis data secara otomatis sedapat mungkin hendaklah dihindarkan, khususnya pada kasus demosi, karena hal ini akan dapat menimbulkan hal-hal yan tidak diinginkan, misalnya terjadi pemotongan nilai (truncation).
Adakalanya pengkonversian jenis data malah berguna dan perlu dilakukan. Dalam hal ini, C berprinsip untuk tidak memberikan batasan apapun dan melimpahkan tanggung jawab ke pemrogram untuk tidak menyalahgunakan kebebasan ini. Jadi, hendaklah pengkonversian dilakukan dengan dangat hati-hati sekali, sehingga jenis data yang dikonversi dapat dilakukan dengan tepat. Metode melakukan hal itu disebut casting, menggunakan operator berupa sepasang tanda kurung biasa.
1.6 Presedensi Keseluruhan Operator
Sebagian operator dapat menimbulkan kekaburan karena menggunakan simbol karakter yang sama, baik sebagai operatorunary maupun sebagai operator binary. Untuk mengatasi kekaburan ini dapat digunakan satu aturan yang menyatakan bahwa operator unary selalu memiliki presedensi yang lebih tinggi daripada operator binary.
Contohnya, -a memiliki presedensi yang lebih tinggi dari pada a – b dan &amemiliki presedensi yang lebih tinggi daripada a & b.
1.7 Ekspresi
Pada dasarnya, ekspresi adalah gabungan antara operator dan operand. Dari penggabungan operator dan operand ini dapat dibangun ekspresi-ekspresi yang lebih rumit. Namun demikian, bisa saja dalam bentuk paling sederhana, sebuah ekspresi hanya terdiri dari sebuah operand.
Tidak ada komentar:
Posting Komentar