Anda di halaman 1dari 50

Konsep Pemrograman

Basic Programming

1
Agenda
1. Identifier
2. Keywords
3. Basic Data Types
4. Variable
5. Type Modifiers
6. Constant
7. Operator
8. Operator Priority Table
9. Expression
10. Type Conversion in Expression
11. Defining Symbolic Constants
2
Identifier
Pengenal: nama yang digunakan untuk variabel, konstanta,
fungsi/obyek lain yang didefinisikan oleh programmer.
Aturan bagi pengenal :
Pengenal harus diawali huruf (A..Z, a..z) atau karakter garis
bawah (_).
Dapat berupa huruf, digit (0...9) atau karakter garis bawah atau
tanda dolar ($).
Panjang pengenal boleh terdiri lebih dari 32 karakter, akan tetapi
hanya 32 karakter pertama yang akan dianggap berarti
Contoh :
jumlah
Jumlah
nilai2
total_per_bulan
harga_jual$ 3
Keywords

4
Basic Data Types
Data menyiratkan suatu nilai yang dinyatakan dalam konstanta/variabel.
Konstanta menyatakan nilai yang tetap
Variabel menyatakan nilai yang dapat diubah selama eksekusi.
Data berdasarkan jenisnya dibagi menjadi 5 kelompok tipe data dasar :

Type Bit Total Region Information


char 8 -128 s/d 127 karakter
int 16 -32768 s/d32767 bilangan interger
float 32 3.4E-38 s/d 3.4E+38 bilangan real presisi tunggal
double 64 1.7E-308 s/d 1.7E+308 bilangan real presisi ganda
void 0 – tak bertipe

5
Variable
Variabel digunakan untuk menyimpan suatu nilai
dan nilai yang ada padanya dapat diubah-ubah
selama eksekusi program berlangsung.
Yang akan dibahas dalam variabel :
1. Declaring Variables
2. Giving Value to the Variable
3. Variable Initialization
4. Differences Variables of type float and double

6
Declaring Variables
Variabel yang akan digunakan dalam program
harus dideklarasikan dahulu. Deklarasi yaitu
memesan memori dan menentukan jenis data
yang bisa disimpan didalamnya. Bentuk
pendeklarasian variabel :
tipe-data daftar-variabel;
Daftar-variabel berupa sebuah/beberapa
variabel yang dipisahkan dengan tanda koma.

7
Declaring Variables
(next…)
int jumlah;
float harga_per_unit, total_harga;
atau
int jumlah;
float harga_per_unit;
float total_harga;

8
Giving Value to the Variable
Bentuk pernyataan untuk pemberian nilai
ke variabel yang sudah dideklarasikan :
variabel = nilai;
contoh :
jumlah = 10;
harga_per_unit = 17.5;
harga_total = jumlah * harga_per_unit;

9
Giving Value to the Variable
(next…)
#include <stdio.h>
main()
{
int jumlah;
float harga_per_unit, harga_total;
jumlah = 10;
harga_per_unit = 17.5;
harga_total = jumlah * harga_per_unit;
printf(“Harga Total = %f\n”, harga_total);
}

Hasil Eksekusi :
Harga Total = 175.000000
10
Variable Initialization
Adakala dalam penulisan program, setelah
dideklarasikan langsung diberi nilai awal.
Contoh dua pernyataan :
int jumlah;
jumlah = 10;
sebenarnya dapat ditulis :
int jumlah = 10;
disamping menghemat penulisan
pernyataan, juga lebih memberi kejelasan
11
Variable Initialization
(next…)
#include <stdio.h>
main()
{
int jumlah = 10;
float harga_per_unit = 17.5;
float harga_total;
harga_total = jumlah * harga_per_unit;
printf(“Harga Total = %f\n”, harga_total);
}

Hasil Eksekusi :
Harga Total = 175.000000

12
Differences Variables of type
float and double
Tipe double memiliki kawasan nilai lebih
besar dibandingkan dengan tipe float.
Tipe float hanya memiliki ketelitian kira-
kira sampai dengan 7 digit, sedangkan
tipe double memiliki ketelitian sekitar 16
digit.

13
Differences Variables of type
float and double (next…)
#include <stdio.h>
main()
{
float x = 56.0123456789123456789;
double y = 56.0123456789123456789;
printf(“x = %20.16f\n”, x);
printf(“y = %20.16lf\n”, y);
}

Hasil Eksekusi :
x = 56.0123443603515630
y = 56.0123456789123470
14
Type Modifiers
Pemodifikasi tipe dikenakan awal tipe data dasar, yaitu :
signed unsigned long short
Type Bit Total Region
unsigned char 8 0 s/d 255
signed char 8 -128 s/d 127
unsigned int 16 0 s/d 65535
signed int 16 -32768 s/d 32767
short int 16 -32768 s/d 32767
unsigned short int 16 0 s/d 65535
signed short int 16 -32768 s/d 32767
long int 32 -2147483648 s/d 2147483647
signed long int 32 -2147483648 s/d 2147483647
unsigned long int 32 0 s/d 4294967295
long double 80 3.4E-4932 s/d 1.1E+4932
15
Type Modifiers
(next…)
#include <stdio.h>
main()
{
signed i = -127; /* i integer bertanda*/
unsigned j; /* j integer tak bertanda*/
j = i;
printf(“i = %d, j = %u\n”, i, j);
}

Hasil Eksekusi :
i = -127, j = 4294967169
16
Constant
Konstanta menyatakan nilai tetap, tidak
dideklarasikan, dan memiliki tipe.
Yang akan dibahas dalam konstanta :
1. Octal and Hexadecimal Constants
2. Escape Sequence Character Constants
3. String Constants

17
Octal and Hexadecimal
Constants
Pada oktal, digit yang dipakai antara 0–7. Pada
heksadesimal, digit yang dipakai berupa salah satu
diantara 16 simbol :
0123456789ABCDEF
Simbol A,B,C,D,E,F dapat juga dinyatakan dengan
huruf kecil a,b,c,d,e,f
Hexadecimal Decimal
A 10
B 11
C 12
D 13
E 14
F 15
18
Octal and Hexadecimal
Constants (next…)
#include <stdio.h>
main()
{
int a, b;
a = 010 /* 10 oktal */
b = 0x10; /* 10 heksadesimal */
printf(“a = %d, b = %d\n”, a, b);
}

Hasil Eksekusi :
a = 8, b = 16
19
Escape Sequence Character
Constants
Konstanta karakter diawali dan diakhiri tanda petik tunggal (‘), misal
‘A’ dan ‘&’. Beberapa konstanta karakter diawali tanda \ (setelah ‘).
Karakter yang berawalan \ : rangkaian escape.
Sequence Value Character Meaning
\0 0x00 NULL karakter ber-ASCII=0
\a 0x07 BEL bunyi speaker
\b 0x08 BS Backspace (mundur ke kiri)
\f 0x0C FF formfeed (ganti halaman)
\n 0x0A LF linefeed (ganti baris)
\r 0x0D CR carriage return (ke awal baris)
\t 0x09 HT tab horisontal
\v 0x0B VT tab vertikal
\\ 0x5C \ karakter miring kiri
\’ 0x27 ‘ karakter petik tunggal
\” 0x22 “ karakter petik ganda
\? 0x3F ? karakter tanda tanya 20
Escape Sequence Character
Constants (next…)
#include <stdio.h>
main()
{
unsigned char kar1 = ‘\xF4’;
unsigned char kar2 = ‘\xF5’;
printf(“%c\n%c”, kar1, kar2);
}

Hasil Eksekusi :


21
String Constants
Konstanta string adalah deretan karakter
diawali dan diakhiri tanda petik ganda (“).
Contoh : “Selamat belajar bahasa C”.
Konstanta string sebuah karakter berbeda
dengan konstanta karakter. Konstanta
string bisa mengandung karakter rangkaian
escape, misal: “\xDB” adalah konstanta
yang terdiri dari sebuah karakter ber-ASCII
DBh (219 desimal)
22
Operator
Operator: simbol/karakter yang dilibatkan dalam program untuk melakukan
operasi/manipulasi, seperti menjumlahkan 2 nilai, memberikan nilai ke
variabel, membandingkan kesamaan 2 nilai. Sebagian operator C
tergolong sebagai operator binary, yaitu operator yang dikenakan terhadap
2 nilai (operand), contoh : a + b. Sedangkan operator yang hanya memiliki
sebuah operand disebut operator unary, contoh : -c.
Yang akan dibahas dalam operator:
1. Arithmetic Operators
2. Raising and Reduction Operators
3. Arithmetic Operator Priority
4. Bit Manipulation Operators
5. Assignment Operators
6. Combination Operator (shortening)
7. Sizeof Operators

23
Arithmetic Operators
Operator yang tergolong operator binary :
* perkalian
/ pembagian
% sisa pembagian
+ penjumlahan
- pengurangan
Operator yang tergolong operator unary :
- tanda minus
+ tanda plus
Contoh nilai diskriminan persamaan kuadrat :
d = b2 - 4ac
24
Arithmetic Operators
(next…)
#include <stdio.h>
main()
{
float a,b,c,d;
a = 3;
b = 4;
c = 7;
d=b*b–4*a*c
printf(“Diskriminan = %f\n”, d)
}

Hasil Eksekusi :
Diskriminan = -68.000000
25
Raising and Reduction Operators
Operator penaikan untuk menaikkan nilai
variabel sebesar 1 & operator penurunan
untuk menurunkan nilai variabel sebesar 1
++ operator penaikan
-- operator penurunan
Contoh :
x = x + 1; ++x; x++;
y = y – 1; atau --y; atau y--;

26
Raising and Reduction Operators
(next…)
#include <stdio.h>
main()
{
int r = 10;
int s;
s = 10 + r++;
printf(“s = %d, r = %d\n”, s, r);
}

Hasil Eksekusi :
s = 20, r = 11
27
Raising and Reduction Operators
(next…)
#include <stdio.h>
main()
{
int r = 10;
int s;
s = 10 + ++r;
printf(“s = %d, r = %d\n”, s, r);
}

Hasil Eksekusi :
s = 21, r = 11
28
Arithmetic Operator Priority
Operator yang berprioritas tinggi akan diutamakan
pengerjaannya daripada operator berprioritas lebih
rendah.
Tertinggi ++ --
- (unary minus)
*/%
Terendah +-
Contoh :
x = 2 + 3 * 2; atau x = 2 + (3 * 2);
x = 2 * 3 % 2; atau x = (2 * 3) % 2;
x = (2 + 3) * 2  tanda kurung digunakan untuk
mengubah urutan pengerjaan
29
Bit Manipulation Operators
Operator Operation
<< geser bit ke kiri
>> geser bit ke kanan
& dan (AND)
| Atau (OR)
^ XOR
– NOT (komplemen)
Seluruh operator manipulasi bit hanya bisa dikenakan pada operand bertipe
integer atau karakter.
Tertinggi –
>> <<
&
^
Terendah |
Operator manipulasi bit berprioritas lebih rendah daripada operator aritmetika.
Bit terkanan dalam penyajian bilangan biner disebut bit 0.
7 6 5 4 3 2 1 0  posisi bit
1 0 0 1 1 1 1 0
30
Bit Manipulation Operators
(next…)
#include <stdio.h>
main()
{
unsigned x = 93;
printf(“Nilai x semula = %d\n”, x);
x = x << 1; /* geser ke kiri 1 bit*/
printf(“Nilai x kini = %d\n”, x);
}

Hasil Eksekusi :
Nilai x semula = 93
Nilai x kini = 186
31
Bit Manipulation Operators
(next…)
#include <stdio.h>
main()
{
unsigned x = 93;
printf(“Nilai x semula = %d\n”, x);
x = x >> 1; /* geser ke kanan 1 bit*/
printf(“Nilai x kini = %d\n”, x);
}

Hasil Eksekusi :
Nilai x semula = 93
Nilai x kini = 46
32
Bit Manipulation Operators
(next…)
bit operand1 bit operand2 | (OR) & (AND) ^ (XOR)
0 0 0 0 0
0 1 1 0 1
1 0 1 0 1
1 1 1 1 0
#include <stdio.h>
main()
{
unsigned nilai = 81;
unsigned cadar = 99;
unsigned a, b, c;
a = nilai | cadar; /* operasi atau */
b = nilai & cadar; /* operasi dan */
c = nilai ^ cadar; /* operasi XOR */
printf(“a = %u, b = %u, c = %u\n”, a, b, c);
}

Hasil Eksekusi :
33
A = 115, b = 65, c = 50
Assignment Operators
Operator penugasan berupa tanda sama
dengan (=), contoh : x = 2 + 3; artinya
memberikan hasil penjumlahan 2 dengan
3 ke variabel x. Contoh lain :
x = a = b = c;
b = c;
a = b;
x = a;
a = (b = 1) + 2
34
Combination Operator (shortening)
x = x + 2;
y = y * 4;
menjadi
x += 2;
y *= 4;

35
Sizeof Operators
Operator sizeof : operator yang akan
menghasilkan ukuran dari suatu variabel /
tipe pada saat kompilasi, dengan operand
(tipe / variabel) ditempatkan didalam tanda
kurung. Contoh :
sizeof(char)  1
sizeof(int)  2

36
Sizeof Operators
(next…)
#include <stdio.h>
main()
{
int I;
float f;
printf(“ukuran variabel int = %d\n”, sizeof(i));
printf(“ukuran variabel float = %d\n”, sizeof(f));
printf(“ukuran variabel char = %d\n”, sizeof(char));
printf(“ukuran variabel double = %d\n”, sizeof(double));
}

Hasil Eksekusi :
ukuran variabel int = 4
ukuran variabel float = 4
ukuran variabel char = 1
ukuran variabel double = 8
37
Operator Priority Table
Operator Priority Execution Sequence
() [] -> tertinggi dari kiri ke kanan
! ~ ++ -- - (tipe) * sizeof dari kanan ke kiri
*/% dari kiri ke kanan
+- dari kiri ke kanan
<< >> dari kiri ke kanan
< <= > >= dari kiri ke kanan
== != dari kiri ke kanan
& dari kiri ke kanan
^ dari kiri ke kanan
| dari kiri ke kanan
&& dari kiri ke kanan
|| dari kiri ke kanan
?: dari kanan ke kiri
= += -= *= dan lain-lain dari kanan ke kiri
‘ terendah dari kanan ke kiri
38
Expression
Ekspresi dalam C dapat berupa :
- Pengenal
- Konstanta
- Variabel pseudo (seperti _AX, _AL : variabel
register)
- Atau diantara kombinasi elemen diatas dengan
operator
Contoh ekspresi : 3 + 2 – 1
3, 2, 1 adalah operand dan simbol + - adalah
operator. Nilai ekspresinya adalah hasil
penjumlahan 3 dan 2, dikurangi 1
39
Expression
(next…)
Contoh ekspresi lain : a = b + c – 2 (tanpa titik koma)
a,b,c adalah operand, simbol = + - adalah operator.
Variabel a diisi hasil penjumlahan b dan c dikurangi 2.
Nilai a ini menyatakan nilai ekspresi.

40
Type Conversion in Expression
Aturan pengkonversian tipe aritmetika dan manipulasi bit :
1. Semua tipe char dan short int akan dikonversikan ke int dan
semua tipe float akan dikonversikan ke double.
2. Untuk setiap pasangan operand :
 Jika salah satu operand bertipe long double, operand
pasangannya akan dikonversikan ke long double.
 Jika salah satu operand bertipe double, operand
pasangannya akan dikonversikan ke double.
 Jika salah satu operand bertipe long, operand
pasangannya akan dikonversikan ke long.
 Jika salah satu operand bertipe unsigned, operand
pasangannya akan dikonversikan ke unsigned
Aturan di atas tidak berlaku pada operator penugasan (=).
41
Type Conversion in Expression
(next…)
Pada operator penugasan, nilai ekspresi yang terletak di
kanan = secara otomatis akan dikonversikan sesuai tipe
variabel yang terletak di kiri =. Contoh :
int jumlah;
float harga_per_unit, harga_total;
harga_total = harga_per_unit * jumlah;
mula-mula harga_per_unit akan dikonversikan ke double,
maka secara otomatis pasangannya diubah ke double.
Operasi perkalian menghasilkan nilai bertipe double. Hasil
perkalian dikonversikan ke float, karena variabel di kanan =
bertipe float. Usaha pengkonversian tipe dalam ekspresi :
1. Using Cast Type
2. Type Conversions in Assignment to Variables
42
Using Cast Type
Tipe cast : usaha untuk mengkonversikan suatu
menjadi tipe yang lain. Bentuk umum tipe cast :
(tipe) ekspresi
dengan tipe dapat berupa pengenal tipe seperti
char, int.
Contoh : x dideklarasikan bertipe float. Jika
dikehendaki agar ekspresi x/2 menghasilkan
niali pecahan (real), maka ekspresi x/2 ditulis
menjadi :
(float) x/2
43
Using Cast Type
(next…)
#include <stdio.h>
main()
{
int x = 21;
float y;
y = x / 2;
printf(“y = x / 2 = %f\n”, y);
y = (float) x / 2;
printf(“y = (float) x / 2 = %f\n”, y);
}

Hasil Eksekusi :
y = x / 2 = 10.000000
y = (float) x / 2 = 10.500000
44
Type Conversions in Assignment
to Variables
Tipe ekspresi di kanan operator penugasan (=) akan dikonversikan sesuai
dengan tipe variabel di kiri operator penugasan. Contoh :
#include <stdio.h>
main()
{
char c; int i; float x;
x = 176.5; /* penugasan 1 */
i = x; /* penugasan 2 */
c = i; /* penugasan 3 */
printf(“isi x = %f\n”, x);
printf(“isi i = %f\n”, i);
printf(“isi c = %f\n”, c);
}

Hasil Eksekusi :
isi x = 176.500000
isi i = 176
isi c = -80
45
Type Conversions in Assignment
to Variables (next…)
Variable Type Expression Type Likelihood of happening
unsigned char Nilai negatif akan dikonversikan ke nilai positif
char unsigned char Jika nilai ekspresi > 127 menjadi nilai negatif
char int 1 byte tertinggi hilang
int long int 2 byte tertinggi hilang
int float Terjadi pembulatan atau terjadi kehilangan
informasi yang lebih besar lagi jika nilai di luar
kawasan int
float double Ketelitian berubah. Ada kemungkinan nilai
juga berubah
double long double Ada kemungkinan nilai berubah

46
Defining Symbolic Constants
Suatu konstanta dapat diberi nama.
Pendefinisiannya dilakukan dengan
menggunakan pengarah praprosesor #define.
Contoh : didefinisikan KALIMAT untuk
menyatakan “Selamat belajar bahasa C”,
pendefinisiannya berupa:
#define KALIMAT “Selamat belajar bahasa C”
Dengan pendefinisian ini, KALIMAT dapat
dipakai untuk menyatakan string “Selamat
belajar bahasa C”.
47
Defining Symbolic Constants
(next…)
#include <stdio.h>
#define KALIMAT “Selamat belajar bahasa C”
main()
{
printf(KALIMAT);
}

Hasil Eksekusi :
Selamat belajar bahasa C
48
Defining Symbolic Constants
(next…)
#include <stdio.h>
#define phi 3.141593
main()
{
float r, K, L;
r = 20;
K = 2 * phi * r;
L = phi * r * r;
printf(“Jari-Jari Lingkaran = %f\n”, r);
printf(“Keliling Lingkaran = %f\n”, K);
printf(“Luas Lingkaran = %f\n”, L);
}

Hasil Eksekusi :
Jari-Jari Lingkaran = 20.000000
Keliling Lingkaran = 125.663719
Luas Lingkaran = 1256.637207
49
See You Next Time

50

Anda mungkin juga menyukai