ALGORITMA & PEMRORAMAN 3
PERTEMUAN KE–5: “OPERATOR PADA BAHASA C”
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
R 01 04
Unary Bitwise
New Product Introduction
Introduction Of The
ProductNew
P 02 Logika
05 Compound
S 03 Kondisi
06 Ekspresi &
Penugasan
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
ekspresi
sebuah kombinasi dari lebih dari satu operand dan
operator
ekspresi menghitung nilai tunggal yang disimpan di
dalam sebuah variabel.
operator menandakan jenis aksi yang akan
dijalankan; operand adalah sesuatu yang
kepadanya operasi akan diterapkan.
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
ekspresi
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
jenis ekspresi
a. infix: operator digunakan di antara kedua
operand. a = x + y
b. postfix: operator digunakan setelah operand. xy+
c. prefix: operator digunakan sebelum operand. -xy
d. unary: satu operator dan satu operand. i++
e. binary: satu operator dan dua operand. x+y
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
penugasan
pengisian nilai yang disimpan di dalam suatu lokasi
memori tertentu (lokasi tertentu diberi pengenal:
nama variabel)
dengan kata lain, menyalin sebuah nilai kepada
variabel
operator penugasan termasuk ke dalam operator
biner
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
penugasan
pengisian nilai yang disimpan di dalam suatu lokasi
memori tertentu (lokasi tertentu diberi pengenal:
nama variabel)
dengan kata lain, menyalin sebuah nilai kepada
variabel
operator penugasan termasuk ke dalam operator
biner
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
variabel konstanta/variabel/ekspresi
operand kiri = operand kanan
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
penugasan
variable_x = 10 // right hand side (RHS) adalah
konstanta
variable_y = variable_x // RHS adalah variabel
variable_z = 2+3+variable_y //RHS adalah ekspresi
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
penugasan
variable_x = variable_y = variable_z = 10
satu kali penugasan kepada beberapa variable
pertama: 10 kepada variable_z,
kedua: variabel z kepada variabel_y
ketiga:variabel y kepada variabel x
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
penugasan
#include <stdio.h>
void main() {
int x = 10;
int y = x; // nilai x akan diisi dengan nilai x
printf("x = %d\n" , x); // x = ?
printf("y = %d\n" , y); // y = ?
}
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
minus
dilambangkan dengan tanda “-”
untuk mengubah tanda untuk setiap nilai positif
menjadi nilai negative, dan mengubah sebuah nilai
negative menjadi nilai positif
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
plus
dilambangkan dengan tanda “+”
tidak mengubah nilai operand
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
#include <conio.h>
void main()
{
int a = 10;
int b = -(a);
int n1 = 20;
int n2 = -40;
printf ("Nilai a: %d \n", a);
printf ("Nilai b: %d \n", b);
printf ("nilai dari -n1: %d \n", -n1);
printf ("nilai dari +n2: %d ", +n2);
} PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
increment
dilambangkan dengan tanda “++”
Menambah nilai operand dengan nilai 1
Ada dua jenis:
pre-increment
post-increment
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
pre-increment
dilambangkan sebagai “++a”
artinya adalah nilai variabel a ditambahkan dengan
nilai 1 sebelum operand digunakan dalam ekspresi
X = 1;
A = ++X;
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
post-increment
dilambangkan sebagai “b++”
artinya adalah nilai variabel b ditambahkan dengan
nilai 1 setelah operand digunakan dalam ekspresi
X = 1;
B = X++;
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
#include <conio.h>
void main ()
{
int x, y, a, b;
a = 10;
printf (" \n nilai a adalah %d.", a);
x = ++a; printf("\n");
printf (" Pre-decrement");
printf (" \n nilai x adalah %d.", x);
printf (" \n nilai a adalah %d.", a); printf("\n");
b = 30;
printf (" \n nilai b adalah %d.", b);
y = b++;
printf (" \n Post-decrement");
printf (" \n nilai y adalah %d.", y);
printf (" \n nilai b adalah %d.", b);
} PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
decrement
dilambangkan dengan tanda “--”
mengurangi nilai operand dengan nilai 1
Ada dua jenis:
pre-decrement
post-decrement
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
pre-decrement
dilambangkan sebagai “++a”
artinya adalah nilai variabel a dikurangi dengan nilai
1 sebelum operand digunakan dalam ekspresi
X = 1;
A = ++X;
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
post-decrement
dilambangkan sebagai “b++”
artinya adalah nilai variabel b dikurangi dengan nilai
1 setelah operand digunakan dalam ekspresi
X = 1;
B = X++;
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
#include <conio.h>
void main ()
{
int x, y, a, b;
a = 10;
printf (" \n nilai a adalah %d.", a);
x = ++a; printf("\n");
printf (" Pre-decrement");
printf (" \n nilai x adalah %d.", x);
printf (" \n nilai a adalah %d.", a); printf("\n");
b = 30;
printf (" \n nilai b adalah %d.", b);
y = b++;
printf (" \n Post-decrement");
printf (" \n nilai y adalah %d.", y);
printf (" \n nilai b adalah %d.", b);
} PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
sizeof()
untuk mengetahui ukuran dari tipe data
Seperti: int, float, char, double, dan lainnya
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
#include <conio.h>
void main ()
{
int x; float y; char ch; double z;
//ukuran dalam satuan Byte
printf (" ukuran dari variabel int (x) adalah: %d", sizeof(x));
printf (" \n ukuran dari variabel float (y) adalah: %d", sizeof(y));
printf (" \n ukuran dari variabel char (ch) adalah: %d", sizeof(ch));
printf (" \n ukuran dari variabel double (z) adalah: %d", sizeof(z));
}
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
address of
simbol: “&” (ampersand)
Untuk menemukan alamat memori dari sebuah
variable/
misal: &a (alamat dari variabel/konstanta bernama
“a”)
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
#include <conio.h>
void main ()
{
int a = 10;
int *b; //b adalah variabel pointer; menyimpan alamat dari variabel lain
b = &a; //b menyimpan alamat dari variabel bernama a
printf (" nilai dari variabel bernama a adalah: %d", a);
printf (" \n alamat memori dari variabel bernama a adalah: %d", b);
}
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
logika And (&&)
simbol: “&&” (double ampersand)
jika kedua operand bernilai “true”, maka akan
mengembalikan hasil “true”.
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
logika Or (||)
simbol: “II” (double pipe)
jika salah satu operand bernilai “true”, maka akan
mengembalikan hasil “true”.
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
logika Not (!)
digunakan untuk membalikkan kondisi yang telah
ditentukan
misalkan operand adalah “true”, maka operator
logika “not” (!) membalikkannya dan
mengembalikan nilai “false”; jika operand adalah
“false”, operator logika mengembalikan “true”.
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
int main() result = (a != b) || (c < b);
{ printf(" (a != b) || (c < b) adalah %d \n", result);
int a = 5, b = 5, c = 10, result;
result = !(a != b);
result = (a == b) && (c > b); printf(" !(a != b) adalah %d \n", result);
printf(" (a == b) && (c > b) adalah %d \n", result);
result = !(a == b);
result = (a == b) && (c < b); printf(" !(a == b) adalah %d \n", result);
printf(" (a == b) && (c < b) adalah %d \n", result);
return 0;
result = (a == b) || (c < b); }
printf(" (a == b) || (c < b) adalah %d \n", result);
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
kondisi
simbol: “?”
adalah satu-satunya operator “ternary” di dalam
bahasa pemrograman C
dapat digunakan sebagai sebuah alternatif untuk
kondisi “if-else”, jika “if else” hanya memiliki satu
statement
jika ekspresi benar, maka statement pertama
dijalankan; jika tidak, maka statement kedua.
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
int main()
{
int a=5,b; // deklarasi variabel
b=((a!=5)?(3):(2)); // operator kondisi
printf(" nilai dari variabel bernama b variable adalah : %d",b);
return 0;
}
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
operator bitwise
digunakan untuk memanipulasi data pada tingkat
bit (bit level programming); operasi bit per bit pada
nilai integer
bekerja pada satu atau lebih angka biner pada
tingkat bit tunggal
digunakan pada komputasi numerik untuk
mempercepat proses
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
operator bitwise
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
int main()
{
int a=12, b=10;
printf(" hasil operasi bitwise AND a&b adalah %d\n", a&b);
printf(" hasil operasi bitwise OR a&b adalah %d\n", a|b);
printf(" hasil operasi bitwise XOR a&b adalah %d\n", a^b);
int x=1;
int c=~x;
printf("\n");
printf(" hasil operasi bitwise 1 COMPLEMENT dari angka %d adalah %d\n", x, c);
int d =~c;
printf(" hasil operasi bitwise 2 COMPLEMENT angka %d adalah %d\n", x, d);
return 0;
} PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
operator tugas majemuk
“compound assignment operators”
digunakan sebagai pintasan (shortcut) untuk
melakukan penugasan dan operasi matematika di
dalam satu langkah
Jenis operator:
“+=“
“-=“
“*=“
“/=“
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
operator “+=“
operasi yang dijalankan:
1. penambahan
2. penugasan dari hasil operasi penambahan kepada operand
contoh: jika diketahui i=2, operasi i+=2 berarti:
- operasinya adalah i = i + 2
- yaitu menambahkan nilai 2 kepada nilai dari variabel bernama i; nilai i
menjadi 4
- hasil dari operasi penambahan (yaitu 4) ditugaskan kembali kepada i;
pembaruan nilai variabel i menjadi 4
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include<stdio.h>
//int main() float f=10.5f;
void main() printf(" nilai awal float: %f \n", f);
{ f+=20; /* f = f+20; */
char c='a'; printf(" nilai float setelah operasi +=20: %f \n\n", f);
printf(" nilai awal char: %c \n", c);
c+=10; /* c = c+10; */ double d=22.5;
printf(" nilai char setelah operasi +=10: %c \n\n", c); printf(" nilai awal double: %lf \n", d);
d+=30; /* d = d+30; */
short s=10; printf(" nilai double setelah operasi +=30: %lf ", d);
printf(" nilai awal short: %d \n", s);
s+=5*10; /* s = s+(5*10); */ //return 0;
printf(" nilai short setelah operasi +=5*10: %d \n\n", s); }
int i=10;
printf(" nilai awal int: %d \n", i);
i+=10; /* i = i+10; */
printf(" nilai int setelah operasi +=10: %d \n\n", i);
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
operator “-=“
operasi yang dijalankan:
1. pengurangan
2. penugasan dari hasil operasi pengurangan kepada operand
contoh: jika diketahui i=10, operasi i-=2 berarti:
- operasinya adalah i = i - 2
- yaitu mengurangkan nilai 2 dari variabel bernama i; nilai i menjadi 8
- hasil dari operasi pengurangan (yaitu 8) ditugaskan kembali kepada i;
pembaruan nilai variabel i menjadi 8
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
int main()
{ float f=10.5f;
char c='k'; printf(" nilai awal float: %f \n", f);
printf(" nilai awal char: %c \n", c); f-=20; /* f = f-20; */
c-=10; /* c = c-10; */ printf(" nilai float setelah operasi -=20: %f \n\n", f);
printf(" nilai char setelah operasi -=10: %c \n\n", c);
double d=22.5;
short s=10; printf(" nilai awal double: %lf \n", d);
printf(" nilai awal short: %d \n", s); d-=30; /* d = d-30; */
s-=5*10; /* s = s-(5*10); */ printf(" nilai double setelah operasi -=30: %lf ", d);
printf(" nilai short setelah operasi -=5*10: %d \n\n", s);
return 0;
int i=10; }
printf(" nilai awal int: %d \n", i);
i-=10; /* i = i-10; */
printf(" nilai int setelah operasi -=10: %d \n\n", i);
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
operator “*=“
operasi yang dijalankan:
1. perkalian
2. penugasan dari hasil operasi perkalian kepada operand
contoh: jika diketahui i=3, operasi i*=2 berarti:
- operasinya adalah i = i * 2
- yaitu mengalikan nilai 2 dari variabel bernama i; nilai i menjadi 6
- hasil dari operasi perkalian (yaitu 6) ditugaskan kembali kepada i;
pembaruan nilai variabel i menjadi 6
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
float f=10.5f;
int main() printf(" nilai awal float: %f \n", f);
{ f*=20; /* f = f*20; */
char c='k'; printf(" nilai float setelah operasi *=20: %f \n\n", f);
printf(" nilai awal char: %c \n", c);
c*=1; /* c = c*1; */ double d=22.5;
printf(" nilai char setelah operasi *=10: %c \n\n", c); printf(" nilai awal double: %lf \n", d);
d*=30; /* d = d*30; */
short s=10; printf(" nilai double setelah operasi *=30: %lf ", d);
printf(" nilai awal short: %d \n", s);
s*=5*10; /* s = s*(5*10); */ return 0;
printf(" nilai short setelah operasi *=5*10: %d \n\n", s); }
int i=10;
printf(" nilai awal int: %d \n", i);
i*=10; /* i = i*10; */
printf(" nilai int setelah operasi *=10: %d \n\n", i);
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
operator “/=“
operasi yang dijalankan:
1. pembagian
2. penugasan dari hasil operasi pembagian kepada operand
contoh: jika diketahui i=6, operasi i/=2 berarti:
- operasinya adalah i = i / 2
- yaitu membagi nilai 2 terhadap variabel bernama i; nilai i menjadi 3
- hasil dari operasi pembagian (yaitu 3) ditugaskan kembali kepada i;
pembaruan nilai variabel i menjadi 3
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
float f=10.5f;
int main() printf(" nilai awal float: %f \n", f);
{ f*=20; /* f = f*20; */
char c='k'; printf(" nilai float setelah operasi -=20: %f \n\n", f);
printf(" nilai awal char: %c \n", c);
c*=1; /* c = c*1; */ double d=22.5;
printf(" nilai char setelah operasi -=10: %c \n\n", c); printf(" nilai awal double: %lf \n", d);
d*=30; /* d = d*30; */
short s=10; printf(" nilai double setelah operasi -=30: %lf ", d);
printf(" nilai awal short: %d \n", s);
s*=5*10; /* s = s*(5*10); */ return 0;
printf(" nilai short setelah operasi -=5*10: %d \n\n", s); }
int i=10;
printf(" nilai awal int: %d \n", i);
i*=10; /* i = i*10; */
printf(" nilai int setelah operasi -=10: %d \n\n", i);
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h> Masukkan nama: Dennis Ritchie
void main() Your name is Dennis.
{
char nama[20];
printf("Masukkan nama: ");
scanf("%s", nama);
printf("Your name is %s.", nama);
}
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h> Masukkan nama: Dennis Ritchie
int main() Your name is Dennis Ritchie.
{
char nama[20];
printf("Masukkan nama: ");
scanf("%[^\n]", nama);
printf("Your name is %s.", nama);
return 0;
}
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
Fungsi getche()
Sintak: int getche(void)
mengembalikan satu karakter dari keyboard
Karakter ditampilkan di layar (echo)
Tidak menunggu sampai ada ENTER
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdlib.h> pwd[i] = '\0';
#include <stdio.h> printf("\n");
#include <string.h>
for (i = 0; pwd[i] != '\0'; i++)
printf("%c", pwd[i]);
void main()
{
getch();
char pwd[9];
}
int i;
system("cls");
printf("Masukkan sandi: ");
for (i = 0; i < 8; i++) {
pwd[i] = getche();
}
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
Fungsi getch()
Sintak: int getch(void)
mengembalikan satu karakter dari buffer keyboard
karakter tidak ditampilkan di layar monitor (no echo)
Tidak menunggu sampai ada ENTER
Menunggu pemasukkan karakter apa pun dari
keyboard
Cocok untuk membuat password
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include<stdlib.h> pwd[i] = '\0';
#include <stdio.h> printf("\n");
#include <string.h>
for (i = 0; pwd[i] != '\0'; i++)
printf("%c", pwd[i]);
void main()
{
getch();
char pwd[9];
}
int i;
system("cls");
printf("Masukkan sandi: ");
for (i = 0; i < 8; i++) {
pwd[i] = getch();
printf("*");
}
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
2
Output
stdio.h:
putch(), puts(), putchar(),
printf()
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
Fungsi putch()
menampilkan karakter ascii pada monitor (stdout)
tanpa memindahkan kursor ke posisi berikutnya
mengembalikan EOF jika error, dan
mengembalikan karakter yang di tampilkan jika
sukses
ada di dalam file header “conio.h”
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
#include <conio.h>
void main()
{
char ch = 0;
printf("Masukkan kalimat anda: ");
while ((ch != '\r'))
{
ch = getch();
putch(ch);
}
}
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
Fungsi puts()
Menampilkan string str ke monitor (stdout) dan
memindahkan kursor ke baris baru
Mengembalikan nilai non-negative jika sukses dan
EOF jika ada error
ada di dalam file header “stdio.h”
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
#include <conio.h>
void main()
{
char ch = 0;
puts("Masukkan kalimat anda: ");
while ((ch != '\r'))
{
ch = getch();
putch(ch);
}
} PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
Fungsi putchar()
Menampilkan karakter ke monitor pada cursor,
kemudian setelah ditampilkan cursor bergerak ke
posisi berikutnya.
Mengembalikan EOF jika error, dan
mengembalikan karakter yang ditampilkan jika
sukses
ada di dalam file header “stdio.h”
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
void main()
{
int c;
c = 0; // ASCII Code a
while (c < 255) {
putchar(c);
c++;
}
putchar('\n');
} PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
Fungsi printf()
untuk mengirimkan output terformat ke monitor
(stdout)
ada di dalam file header “stdio.h”
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
void main()
{
int c;
c = 0; // ASCII Code a
while (c < 255) {
putchar(c);
c++;
}
putchar('\n');
} PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
#include <stdio.h>
void main()
{
int a, b;
float c;
puts("Masukkan angka pertama: ");
scanf("%d", &a);
puts("Masukkan angka kedua: ");
scanf("%d", &a);
c=(a+b/2);
printf("\n");
printf("Rerata adalah: %f", c);
printf("\n");
printf("Rerata adalah: %10.2f", c);
getch();
} PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA
TERIMA
KASIH
Tim Penyusun:
1. Fauziah, S.Kom., MT
2. Jamilah, S.Kom., MT
3. Ulfa …
4. Priyo S.W., S.Kom., MT
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA