download

Matakuliah
Tahun
Versi
: T0616 / Algoritma dan Pemrograman
: 2007
: 1/0
Pertemuan 09-10
Operasi Store - Compute
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Menggunakan sintaks untuk melakukan
operasi store dan compute (C3)
2
Outline Materi
Operasi Store dan Compute
• Operator Penugasan
• Operator Logika
• Operator Aritmetika
• Operator Relasional
3
Operator
• Operator adalah simbol yang mengolah nilai
pada operand dan menghasilkan satu nilai baru.
• Contoh :
A+B
(“+” adalah operator penambahan, sedangkan
“A” dan “B” adalah operand)
• Operator dapat dibedakan menjadi dua
berdasarkan jumlah operand-nya, yaitu : Unary
operator dan Binary operator. Unary operator
memerlukan satu operand, sedangkan binary
operator memerlukan dua operand.
4
Operator
• Berdasarkan jenis operasinya, operator
dalam bahasa C dapat dikelompokkan :
– Operator Penugasan
– Operator Logika
– Operator Aritmatika
– Operator Relasional
– Operator Bitwise *
* Tidak dibahas pada materi ini
5
Operator Penugasan
• Digunakan untuk memberikan nilai data kepada
suatu variabel (Operator =).
Variabel = nilai;
• Operand di sebelah kiri harus berupa variabel,
sedangkan operand kanan mungkin berbentuk
suatu konstanta, variabel lain, ekspresi atau
fungsi.
6
Operator Penugasan
• Contoh
x = 2;
x = y;
x = 2 * y;
x = sin (y);
// konstanta
// variabel lain
// ekspresi
// fungsi
• Tipe hasil operasi disesuaikan dengan tipe
variabel sebelah kiri.
int x = 7/2;
/*3 bukan 3.5 */
7
Operator Penugasan
• Contoh :
#include <stdio.h>
void main() {
int panjang, lebar, luas;
panjang = 5;
lebar = 4;
luas = panjang * lebar;
printf(\nLuas = %5d”, luas);
}
8
Operator Logika
• Digunakan untuk melakukan operasi logika
Simbol
Fungsi
&&
AND
||
OR
!
NOT
• Hasil operasi bernilai true (1) atau false (0) dan
ditentukan oleh Table Kebenaran berikut:
A
B
!A
A && B
A || B
True
True
False
True
True
True
False
False
False
True
False
True
True
False
True
False
False
True
False
False
9
Operator Aritmetika
• Digunakan untuk melakukan operasi matematis
Simbol
Fungsi
Contoh
+
Penambahan
x = y + 6;
-
Pengurangan
y = x – 5;
*
Perkalian
y = y * 3;
/
Pembagian
z = x/y;
%
Modulo
A = 10 % 3;
++
Increment
x++;
--
Decrement
z--;
()
Priority
x=(2+3)*5
10
Operator Aritmetika
• Combined Operator
• Setiap ekspesi yang berbentuk :
<Variabel> = <Variabel> <Operator><Exp>;
• dapat diganti dengan :
<Variabel> <Operator> = <Exp>;
Ekspresi
Dapat diganti dengan
a = a + b;
a += b;
a = a – b;
a -= b;
a = a * b;
a *= b;
a = a / b;
a /= b;
a = a % b;
a %= b;
a=a^b;
a ^= b;
11
Operator Aritmetika : 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 = menghilangkan
digit terakhir dari n
12
Operator Aritmetika : Inc dan Dec
• Menaikkan (++) dan menurunkan (--) nilai
variabel dengan nilai 1
• Posisinya bisa didepan atau dibelakang variabel
n = n + 1;

n = n - 1;

n++;
++n;
n--;
--n;
post increment
pre increment
post decrement
pre decrement
13
Operator Aritmetika : Inc dan Dec
• Stand alone : Jika ++n dan n++ sebagai
statement yang berdiri sendiri keduanya sama
dengan n = n + 1
void main () {
int x,y = 44;
++x;
printf(”\nx = %d”, x);
n++;
printf(”\ny = %d”, y);
}
/* hasilnya 45 */
/* hasilnya 45 */
14
Operator Aritmetika : Inc dan Dec
• Sub Ekspresi : Jika ++n dan n++ sebagai statement
yang terikat dalam ekspresi lainnya, keduanya
mempunyai arti yang berbeda.
• ++n -> n ditambah 1, baru diproses terhadap
ekspresinya
• n++ -> n langsung diproses terhadap ekspresinya tanpa
ditambah 1 terlebih dahulu, pada saat selesai baru n
ditambah 1
void main () {
int x,y = 44;
printf(”\nx = %d”, ++x);
printf(”\ny = %d”, y++);
printf(”\ny = %d”, y);
}
/* hasilnya 45 */
/* hasilnya 44 */
/* hasilnya 45 */
15
Operator Relasional
• Digunakan untuk membandingkan nilai,
hasilnya true(1) atau false (0)
Simbol
Fungsi
==
Sama Dengan
!=
Tidak Sama Dengan
<
Lebih Kecil Dari
>
Lebih Besar Dari
<=
Lebih Kecil atau Sama Dengan
>=
Lebih Besar atau Sama Dengan
?:
Conditional assignment
16
Operator Relasional
• Contoh :
#include<stdio.h>
void main()
{
int x=5,y=6;
if ( x == y)
printf("%d sama dengan %d\n",x,y)
if ( x != y)
printf("%d tidak sama dengan %d\n",x,y)
if ( x < y)
printf("%d lebih kecil daripada %d\n",x,y)
if ( x > y)
printf("%d lebih besar daripada %d\n",x,y)
if ( x <= y)
printf("%d lebih kecil atau sama dengan %d\n",x,y)
if ( x >= y)
printf("%d lebih besar atau sama dengan %d\n",x,y)
}
17
Operator Relasional
• Contoh :
void main () {
int kode, diskon=0;
kode=1;
diskon = (kode==1)? 30 : 10;
printf(”Diskon item = %d \n”,diskon);
}
void main () {
int bil, abs;
bil = 50;
abs = (bil1>0)? bil : - bil;
printf(“%d \n”,bil);
bil = - 50;
abs = (bil1>0)? bil : - bil;
printf(“%d \n”,bil);
}
18
Latihan
• Buatlah program untuk menerima input dari
keyboard berupa tiga buah bilangan bulat.
• Kemudian urutkan ketiga bilangan tersebut
secara ascending (dari kecil ke besar)
• Hasil programnya test dengan :
2,1,3
2,3,1
3,1,2
3,2,1
19
Latihan
• Buatlah program untuk menerima input dari
keyboard, berupa nilai :
– Tugas Mandiri (NTM)
– Nilai UTS (NUTS)
– Nilai UAS (NUAS)
• Hitung dan tampilkan nilai akhir dengan rumus :
NA = 20 % * Nilai TM + 30 % Nilai UTS + 50 % Nilai UAS
• (Asumsi bahwa nilai yang dinput adalah
bilangan bulat)
• Tampilkan status “Lulus” jika NA >=65, selain itu
“Belum Lulus”
• (Validasikan nilai yang diinput adalah nilai antara
0 sd 100)
20
Latihan
• Berdasarkan soal sebelumnya :
• Tentukan grade untuk nilai :
‘A’ : 85 -100
‘B’ : 75 – 84
‘C’ : 65 – 74
‘D’ : 50 – 64
‘E’ : 0 – 49
• Tampilkan grade untuk kombinasi nilai
yang diinput.
21
Latihan
• Buatlah program untuk menghitung dan
mencetak laba pemilik sebuah perusahaan
berdasarkan data harga jual dan harga pokok
yang diinput, sesuai dengan rumus :
Laba = Harga Jual - Harga Pokok
• Berikan status “Untung” jika Laba > 0, status
“Impas” jika Laba=0 dan status “Rugi” jika Laba
<0.
22
Latihan
• Suatu kali Anda membeli barang di toko. Jumlah barang
yang Anda beli ada 3 item :
– 1 sabun mandi seharga Rp. 5600,– 2 Sikat gigi seharga @ Rp. 1500,– 1 Snack kacang seharga Rp. 3400,-
• Pajak pembelian yg dibebankan adalah 10 %
• Setelah ditotal, Anda diminta membayar ke kasir sebesar
Rp. 13500,• Buatlah program untuk menghitung selisih antara total
harga barang yang Anda beli beserta pajak,
dibandingkan dengan total harga di kasir.
• Berikan status “Kemurahan” jika selisih >0, status
“Kemahalan” jika selisih <0, dan “Tepat” jika selisih = 0.
23
Latihan
• Buatlah program yang dapat menerima input
dari user berupa harga barang dan kode
barang. Program akan menghitung diskon
yang didapat sesuai dengan kodenya.
Kemudian tampilkan harga awal, besar
diskon, dan harga yang harus dibayar.
Adapun ketentuan adalah sbb:
24