Anda di halaman 1dari 8

Modul 04

OPERATOR (2)

5.1 Operator Penugasan (assignment)

Operator penugasan adalah operator yang berfungsi memberikan nilai kepada


pengenal(identifier). Operator penugasan menggunakan symbol (=). Operan di sebelah
kiri operator harus berupa variabel atau konstanta. Operan di sebelah kanan harus berupa
ekspresi.
Contoh penggunaan operator penugasan ‘=’ :

Luas = alas * tinggi / 2; // nilai variabel Luas adalah nilai alas dikali dengan
nilai tinggi dibagi 2
A = B = 12; // nilai variabel A akan sama dengan nilai
variabel B akan sama dengan 12

Selain operator ‘=’, bahasa C juga menyediakan operator penugasan yang lain,
tabel 5.6 menyajikan operator penugasan tersebut.

Tabel 5.6 Operator Logika dalam Bahasa C


Operator Contoh Ekuivalen dengan
+= x += y x=x+y
-= x -= y x=x-y
*= x *= y x=x*y
/= x /= y x=x/y
%= x %= y x=x%y
<<= x <<= y x = x << y
>>= x >>= y x = x >> y
&= x &= y x = x &y
|= x |= y x=x|y
^= x ^= y x=x^y

Bahasa C_Modul04_Operator(Bag 2) 1
4.1 Operator Bersyarat

Operator bersyarat atau dikenal juga sebagai ekspresi bersyarat (conditional


expression) merupakan satu-satunya operator ternary (memerlukan 3 operan untuk
operasinya). Ketiga operan yang diperlukan tersebut terdiri dari satu ekspresi yang akan
diuji dan dua ekspresi pilihan. Bentuk umum dari operator bersyarat adalah sebagai
berikut:
Kondisi ? ekspresi1: ekspresi2;

Operator bersyarat akan menghasilkan satu dari dua pilihan. Misalnya x = y?


nilai1: nilai2; Pertama ekspresi x= y akan diperiksa apakah bernilai benar atau salah,
jika bernilai benar maka ekspresi nilai1 akan dievaluasi dan nilainya akan diberikan
kepada x, jika salah maka ekspresi nilai2 yang akan dievaluasi dan nilainya diberikan
kepada x.

Listing program 5.7 Program Operator Bersyarat

#include <stdio.h>

main()
{ int min, max, n1=10, n2=5;

min = n1<n2? n1: n2;


printf("Nilai yang lebih kecil dari %d dan %d = %d", n1,
n2,min);

max= n1>n2? n1: n2;


printf("\nNilai yang lebih besar dari %d dan %d = %d", n1,
n2,max);

Output:

Nilai yang lebih kecil dari 10 dan 5 = 5


Nilai yang lebih besar dari 10 dan 5 = 10

4.2 Operator sizeof

Operator sizeof digunakan untuk mengetahui ukuran dari operannya dalam satuan
byte. Operator size of hanya memerlukan satu operan sehingga termasuk dalam operator
unary.

Bahasa C_Modul04_Operator(Bag 2) 2
Listing program 5.8 Program Operator sizeof

#include <stdio.h>

int main(void)
{
long big;
printf("\"big\" is %u bytes\n", sizeof(big));
printf("a short is %u bytes\n", sizeof(short));
printf("a double is %u bytes\n", sizeof(double));
return 0;
}

Output program:

"big" is 4 bytes
a short is 2 bytes
a double is 8 bytes

4.3 Derajat Operator

Derajat operator menunjukkan tingkat atau level operator, misalnya operator ( )


memiliki derajat yang lebih tinggi dibandingkan dengan operator *, sehingga operator ( )
akan dikerjakan terlebih dahulu sebelum operator *, contohnya ekspresi: y = ( 5 + 3 ) * 2
akan menghasilkan nilai y sama dengan 16, bandingkan dengan ekspresi kedua berikut: y
= 5 + (3 * 2) akan menghasilkan nilai y sama dengan 11. Meskipun elemen yang
digunakan sama tetapi ada perbedaan peletakan tanda “( )” maka akan menyebabkan
hasil yang berbeda, ini dikarenakan tingkatan atau derajat dari masing-masing operator
berbeda.
Selain derajat operator jika dilihat ekspresi y = ( 5 + 3 ) * 2 maka kita dapat
evaluasi arah proses operasi (asosiativitas), pertama akan dioperasikan nilai 5
dijumlahkan dengan 3, kemudian hasil penjumlahan tersebut dikalikan dengan 2 baru
kemudian nilai yang didapat tersebut diberikan ke y, ini berarti operator ‘+’ dan ‘*’ memiliki
arah operasi dari kiri ke kanan, sedangkan operator ‘=’ memiliki arah operasi dari kanan
ke kiri.
Untuk mengetahui derajat atau tingkatan dari masing-masing operator dan arah
proses operasi dapat dilihat dari tabel 5.7

Bahasa C_Modul04_Operator(Bag 2) 3
Tabel 5.7 Predensi dan Asosiativitas Operator

Kategori Operator Arah Proses Derajat


(Asosiativitas) (Predensi)
Kurung, indeks array, dan () [] -> . Kiri ke kanan Tertinggi
elemen struktur data
Operator unary ! ~ ++ -- - + (cast) * & Kanan ke kiri
sizeof
Operator aritmatika */% Kiri ke kanan
Operator aritmatika +- Kiri ke kanan
Operator bitwise pergeseran bit << >> Kiri ke kanan
Operator relasi < <= >= > Kiri ke kanan
Operator relasi == != Kiri ke kanan
Operator bitwise AND & Kiri ke kanan
Operator bitwise XOR ^ Kiri ke kanan
Operator bitwise OR | Kiri ke kanan
Operator kondisi AND && Kiri ke kanan
Operator kondisi OR || Kiri ke kanan
Operator bersyarat ?: Kiri ke kanan
Operator penugasan = += -= *= /= %= Kanan ke kiri
Operator koma , Kiri ke kanan Terendah

4.4 Ekspresi

Ekspresi adalah segala sesuatu yang bila dievaluasi akan menghasilkan suatu nilai.
1. Sebuah konstanta adalah sebuah ekspresi.
2. Sebuah variabel adalah sebuah ekspresi.
3. Sebuah ekspresi yang dioperasikan dengan operasi lain adalah sebuah ekspresi.
4. pemanggilan terhadap sebuah function adalah sebuah ekspresi.

Bahasa C_Modul04_Operator(Bag 2) 4
4.5 Contoh Pemecahan Masalah:

1. Buatlah program untuk mencari total nilai seorang mahasiswa. Total nilai didapatkan
dari nilai-nilai absen, tugas, uts dan uas dengan formula sebagai berikut:
Nilai akhir = 10% Absen + 20% Tugas + 30% UTS + 40% UAS
Tampilan program yang diharapkan adalah sebagai berikut:

Masukkan Nama Mahasiswa: Yulia Arti


Nilai Absen: 70
Nilai Tugas: 80
Nilai UTS : 60
Nilai UAS : 70

Yulia Arti anda mendapatkan Nilai akhir : 69

Kode Program:

Bahasa C_Modul04_Operator(Bag 2) 5
Hasil eksekusi program:

2. Buatlah program untuk mencari nilai jam, menit, detik dari total detik yang dimasukkan
Tampilan program sbb:

Masukkan Total detik: 4000

1 jam 6 menit 40 detik

Kode Program:

Bahasa C_Modul04_Operator(Bag 2) 6
Hasil eksekusi program:

Latihan:

1. Tulislah empat pernyataan/ekspresi dalam bahasa C yang berbeda untuk menyatakan


variabel x yang bertipe integer ditambah 1.

2. Tulislah sebuah ekspresi dalam bahasa C untuk masing-masing pernyataan di bawah


ini:
a. Berikan nilai penjumlahan x dan y ke z dan nilai x bertambah 1 (increment) setelah
operasi.
b. Mengalikan variabel kali dengan 2 menggunakan operator *=
c. Mengalikan variabel kali dengan 2 menggunakan operator * dan =
d. Decrement (mengurangi dengan 1) variabel z, lalu variabel z mengurangi variabel
total dan nilai akhir diberikan ke variabel total.
e. Jumlahkan variabel x dengan variabel total lalu berikan nilainya kepada variabel
total, kemudian variabel x berkurang (decrement) 1.

3. Berdasarkan derajat masing-masing operator, tentukanlah apakah ekspresi-ekspresi


di bawah ini menghasilkan nilai benar atau salah:
a. 5 < 4 * 2 || int (43 / 2) > 21 || 7 * 8 == 6 + 5 * 10
b. ! (5 > 4 * 2 && int (43 / 2) > 21 && 7 * 8 == 6 + 5 * 10)
c. 23 - 5 + 4 * 3 >= 40 - 5 * 2 && 23 * 2 == 93 / 3

Bahasa C_Modul04_Operator(Bag 2) 7
Tugas Mandiri:
Berdasarkan program di bawah ini berapakah nilai akhir dari variabel-variabel yang
terdapat dalam program?

#include <stdio.h>

main()
{
int a,b,c,d,e;
float v, w, x, y, z ;
a= 5, b = 4, v = 1.5, w= 5.2;

a += b/(int)v;
c = a > b*2 && a != w;
d = ++c;
b = a + c / d;
d *= b * v;
e = d /(int)w;
x = a % e;
v *= d / x;
w += e * 2;
y = v > w ? a + 2: b *2;
z = sizeof(a)+ sizeof(x);

printf("a= %d\n",a);
printf("b= %d\n",b);
printf("c= %d\n",c);
printf("d= %d\n",d);
printf("e= %d\n",e);
printf("v= %.3f\n",v);
printf("w= %.3f\n",w);
printf("x= %.3f\n",x);
printf("y= %.3f\n",y);
printf("z= %.3f\n",z);
}

Referensi:
Cheltenham Computer Training, C Programming, www.cctglobal.com, United Kingdom,
1997
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa C, Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika,
Jakarta, 2004

Bahasa C_Modul04_Operator(Bag 2) 8

Anda mungkin juga menyukai