Wednesday, March 30, 2016

Operator, Ekspresi dan Pernyataan 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 ataubinary 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 plus berturut-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 memperlakukan operan-operand-nya sebagai sebuah kuntitas yeng terdiri dari bit-bit. Operasi dilakukan terhadap masing-masing bittersebut satu demi satu. Operator &&, ||, dan ! memperlakukan seluruhoperand-nya sebagai sebuah nilai benar atau salah yang tunggal. Sedangkan operator bitwise logika dikenakan secara parallel terhadap posisi bit 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 operator unary 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 binaryoperator, 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 operatorbitwise 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 bit di-OR kan dengan setiap bit n
^=
x ^= n
x = ^ n
Setiap bit di-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 operand yang 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 operator unary maupun sebagai operatorbinary. 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.

1.8 Pernyataan


Pernyataan merupakan unsur pembentuk program yang utama. Sebuah program terdiri dari sederetan pernyataan, yang merupakan intruksi-intruksi yang lengkap bagi komputer. Dalam C, sebuah pernyataan diakhiri oleh titik koma. Jika kita hanya menuliskan x = 1 saja misalnya, bentuk ini barulah sebuahh ekspresi.


Instruksi yang diberikan pada komputer haruslah merupakan sebuah instruksi yang lengkap berupa sebuah pernyataan. Agar sebuah instruksi menjadi lengkap, ia harus menyelesaikan suatu tindakan tertentu.

A. Jenis-jenis pernyataan

Pernyataan yang digunakan dalam sebuah program menurut jenisnya dapat dikelompokkan dalam beberapa kelompok: pernyataan deklarasi, pernyataan penugasan (assignment statement), pernyataan fungsi, pernyataan pengulangan, dan pernyataan kendali.
1. Pernyataan deklarasi digunakan untuk menetapkan nama dan jenis variabel, menyebabkan disisihkannya lokasi memori untuk variabel itu.
2. Pernyataan penugasan adalah suatu pernyataan yang memberikan nilai kepada suatu variabel. Pernyataan ini dimulai dengan nama variabel, diikuti dengan operator =, kemudian diikuti dengan ekspresi dan diakhiri dengan titik koma.
3. Pernyataan fungsi menyebabkan dilakukannya sesuatu tugas yang tertentu sesuai dengan yang ditentukan.
4. Pernyataan pengulangan adalah pernyataan yang menyebabkan dilakukannya pengulangan terhadap kode program selama memenuhi kondisi tertentu.
5. Pernyataan kendali berperan untuk mengendalikan alur tertentu jika suatu kondisi dipenuhi, atau bercabang ke arah lain jika kondisi tersebut tidak dipenuhi. Penyataan kendali ini disebut juga dengan pernyataan percabangan (branching). Nama lain untuk pernyataan ini adalah pernyataan keputusan (decision).

B. Pernyataan majemuk

Pernyataan majemuk (compound statement) atau blok pernyataan adalah dua atau lebih pernyataan yang dikelompokkan dan dibatasi oelh kurung kurawal buka dan diakhiri dengan kurung kurawal tutup. Pernyataan majemuk biasanya digunakan bersama dengan pernyataan-pernyataan pengulangan dan keputusan.


EmoticonEmoticon

:)
:(
hihi
:-)
:D
=D
:-d
;(
;-(
@-)
:o
:>)
(o)
:p
:-?
(p)
:-s
8-)
:-t
:-b
b-(
(y)
x-)
(h)