T0616 ALGORITMA DAN PEMROGRAMAN (3) UNIVERSITAS BINA NUSANTARA

Download Report

Transcript T0616 ALGORITMA DAN PEMROGRAMAN (3) UNIVERSITAS BINA NUSANTARA

T0616
ALGORITMA DAN PEMROGRAMAN
(3)
SUBANDIJO
UNIVERSITAS BINA NUSANTARA
FAKULTAS ILMU KOMPUTER
JAKARTA, 2005
6/28/2016
T0616 - Algoritma dan Pemrograman
1
OPERATOR
• SIMBOL YANG DIGUNAKAN UNTUK MENGOLAH
OPERAND SEHINGGA MENGHASILKAN NILAI
BARU.
• DAPAT DIBEDAKAN BERDASARKAN BANYAK
OPERAND-NYA YAITU UNARY OPERATOR DAN
BINARY OPERATOR.
• UNARY OPERATOR MEMBUTUHKAN SATU
OPERAND, BINARY OPERATOR MEMBUTUHKAN
DUA OPERAND.
6/28/2016
T0616 - Algoritma dan Pemrograman
2
TIPE OPERATOR
• OPERATOR ASSIGNMENT
• OPERATOR LOGIKA
• OPERATOR ARITMATIKA
• OPERATOR INCREMENT, DECREMENT
•
•
•
•
•
OPERATOR RELASI
OPERATOR BITWISE
COMBINED OPERATOR
OPERATOR PRECEDENCE
ASSOCIATIVITY OF OPERATOR
6/28/2016
T0616 - Algoritma dan Pemrograman
3
OPERATOR ASSIGNMENT =
(1)
• DIGUNAKAN UNTUK MEMBERIKAN NILAI DATA
KEPADA SUATU VARIABEL.
• VARIABEL = NILAI;
• OPERAND DI SEBELAH KIRI HARUS BERUPA
VARIABEL, SEDANGKAN OPERAND KANAN
MUNGKIN BERBENTUK SUATU KONSTANTA,
VARIABEL LAIN, EKSPRESI ATAU FUNGSI.
6/28/2016
T0616 - Algoritma dan Pemrograman
4
OPERATOR ASSIGNMENT =
(2)
• CONTOH
•
•
•
•
X = 2;
X = Y;
X = 2 * Y;
X = SIN (Y);
// KONSTANTA
// VARIABEL LAIN
// EKSPRESI
// FUNGSI
• TIPE HASIL OPERASI DISESUAIKAN DENGAN
TIPE VARIABEL.
• INT X = 7/2;
6/28/2016
/*3 BUKAN 3.5 */
T0616 - Algoritma dan Pemrograman
5
OPERATOR ASSIGNMENT =
(3)
CONTOH
#include <stdio.h>
void main() {
int panjang, lebar, luas;
panjang = 5;
lebar = 4;
luas = panjang * lebar;
printf(\nLuas = %5d”, luas);
}
6/28/2016
T0616 - Algoritma dan Pemrograman
6
OPERATOR LOGIKA
• SIMBOL: && (AND),
|| (OR),
! (NOT)
• HASIL OPERASI BERNILAI TRUE (1) ATAU FALSE
(0) DAN DITENTUKAN OLEH TRUTH TABLE
BERIKUT:
6/28/2016
P
Q
P&&Q
P||Q
!P
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
T0616 - Algoritma dan Pemrograman
7
OPERATOR ARITMATIKA
• SIMBOL
+
*
/
%
++
--
6/28/2016
FUNGSI
TAMBAH
KURANG
KALI
BAGI
MODULO
INCREMENT
DECREMENT
T0616 - Algoritma dan Pemrograman
CONTOH
X = Y + 5;
X = Y - 5;
X = Y * 5;
X = Y / 5;
X = Y % 5;
X++;
X--;
8
OPERATOR MODULO
• UNTUK MENCARI SISA HASIL BAGI
• n % 2, DAPAT DIGUNAKAN UNTUK MENGUJI
APAKAH INTEGER n GENAP ATAU GANJIL
• n % 2 = 0  n GENAP
• n % 2 = 1 n GANJIL
• UNTUK INTEGER POSITIF n, n % 10 = BUANG
DIGIT TERAKHIR DARI n.
6/28/2016
T0616 - Algoritma dan Pemrograman
9
OPERATOR INC ++ DAN DEC - (1)
• MENAIKKAN (++) DAN MENURUNKAN (--) NILAI
VARIABEL DENGAN 1
• POSISINYA BISA DIDEPAN ATAU DIBELAKANG
VARIABEL
• n = n + 1; 
n++;
post increment
++n;
pre increment
• n = n - 1;
6/28/2016

n--;
--n;
post decrement
pre decrement
T0616 - Algoritma dan Pemrograman
10
OPERATOR INC ++ DAN DEC -(2)
• APLIKASI
• (1) STAND ALONE: ++n DAN n++ KEDUANYA
EKUIVALEN DENGAN n = n + 1
main () {
int n = 44;
printf”\nN = %d”, n);
/* 44 */
++n;
printf”\nN = %d”, n);
/* 45 */
n++;
printf”\nN = %d”, n);
/* 46 */
}
6/28/2016
T0616 - Algoritma dan Pemrograman
11
OPERATOR INC ++ DAN DEC -(3)
• (2) SUBEKSPRESI
main() {
int n = 0;
printf(“\nN = %d”,n);
printf(“\nN = %d”,n++);
printf(“\nN = %d”,n);
}
main() {
int n = 0;
printf(“\nN = %d”,n);
printf(“\nN = %d”,++n);
printf(“\nN = %d”,n);
}
• OUTPUT: 0
• OUTPUT: 0 1
6/28/2016
0
1
T0616 - Algoritma dan Pemrograman
1
12
COMBINED OPERATOR
• PERNYATAAN BERBENTUK <VARIABEL>=
<VARIABEL><OPERATOR> <EKSPRESI>; DAPAT
DITULIS SEBAGAI BERIKUT
<VARIABEL><OPERATOR> = <EKSPRESI>;
• DIGUNAKAN UNTUK MEMPERPENDEK
PENULISAN PERNYATAAN.
•
•
•
•
6/28/2016
a = a + b;
a = a / b;
a = a % b;
a = a << b;
a += b;
a /= b;
a %= b;
a <<= b;
T0616 - Algoritma dan Pemrograman
13
OPERATOR RELASIONAL
•
•
•
•
•
•
•
==
!=
<
>
<=
>=
?:
SAMA DENGAN
TIDAK SAMA DENGAN
LEBIH KECIL
LEBIH BESAR
LEBIH KECIL ATAU SAMA DENGAN
LEBIH BESAR ATAU SAMA DENGAN
CONDITIONAL ASSIGNMENT
• UNTUK MENGUJI HUBUNGAN ANTARVARIABEL.
HASILNYA TRUE(1) ATAU FALSE(0).
6/28/2016
T0616 - Algoritma dan Pemrograman
14
OPERATOR BITWISE
(1)
• MEMANIPULASI NILAI DATA BIT PER BIT
• SIMBOL FUNGSI
&
BITWISE AND
|
BITWISE OR
^
BITWISE XOR
~
COMPLEMENT 1
<<
SHIFT LEFT
>>
SHIFT RIGHT.
6/28/2016
T0616 - Algoritma dan Pemrograman
15
OPERATOR BITWISE
(2)
• N = ~ 1 = ~ (0000 0000 0000 0001) + (1111 1111
1111 1110) = 0xFFFE
•
•
•
•
n1 = 0xC5, n2 = 0x0F
n1 & n2 = 0x05
n1 | n2 = 0xCF
n1 ^ n2 = 0xCA
• n = 0x01 << 2 = 0x04
• n = 0x81 >> 2 = 0x20
6/28/2016
T0616 - Algoritma dan Pemrograman
16
OPERATOR PRECEDENCE
• OPERATOR MEMPUNYAI PERINGKAT SESUAI
DENGAN KEUTAMAANNYA.
• OPERATOR HITUNG LEBIH TINGGI
PERINGKATNYA DARIPADA OPERATOR
RELASIONAL.
• OPERATOR RELASIONAL LEBIH TINGGI
PERINGKATNYA DARIPADA OPERATOR LOGIKA.
main() {
printf(“\nJawab = %d “, 1<2+4);
}
6/28/2016
T0616 - Algoritma dan Pemrograman
/*Jawab = 1 */
17
ASSOCIATIVITY
• LEFT TO RIGHT
•
•
•
•
•
6/28/2016
INT X, Y, Z, U;
X = 42;
Y = 3;
Z = 5;
U = X + Y + Z;
• RIGHT TO LEFT
• INT X, Y, Z,
• X = Y = Z = 6;
• X * = Y + = Z - = 4;
T0616 - Algoritma dan Pemrograman
18
THE END
“...ALL YOU NEED IS LOVE…”
6/28/2016
T0616 - Algoritma dan Pemrograman
19