Pengantar Bahasa C
Download
Report
Transcript Pengantar Bahasa C
Dasar Pemrograman
Komputer
Pengantar Bahasa C
Sutrisno
Ismiarta Aknuranda
Issa Arwani
Adharul Muttaqin
Teknik Informatika - UB
Bahasa Mesin
Setiap komputer memahami bahasa mesinnya
sendiri
Bahasa mesin adalah ‘bahasa natural’ dari tiap
mesin
Umumnya terdiri dari sederatan angka
Akan diterjemahkan menjadi bahasa biner,
terdiri dari 1 dan 0
Machine-dependent, sebuah bahasa mesin
hanya bisa digunakan pada satu tipe komputer
Pengantar Bahasa C - TIF UB 2010
2
Bahasa Mesin
Jauh dari bahasa manusia
Contoh:
+1300042774
+1400593419
+1200274027
Menambahkan gaji lembur ke gaji pokok dan
menyimpan hasilnya ke gaji kotor
Pengantar Bahasa C - TIF UB 2010
3
Bahasa Assembly
Bahasa mesin terlalu sulit dan lama untuk
memrogram
Ketika komputer semakin populer, muncul
bahasa assembly
Bahasa assembly menggunakan kata-kata atau
singkatan berbahasa Inggris
Kode dalam bahasa assembly dikonversi
menjadi bahasa mesin melalui assembler
Pengantar Bahasa C - TIF UB 2010
4
Bahasa Assembly
Contoh:
LOAD GAJIPOKOK
ADD
GAJILEMBUR
STORE GAJIKOTOR
Menambahkan gaji lembur ke gaji pokok dan
menyimpan hasilnya ke gaji kotor
Pengantar Bahasa C - TIF UB 2010
5
Bahasa Tingkat Tinggi
(High-level Languages)
Bahasa assembly masih butuh banyak instruksi
untuk menyelesaikan suatu tugas sederhana
Bahasa level tinggi dikembangkan untuk
mengatasi kesulitan ini
Bahasa level tinggi menggunakan instruksi
dengan bahasa Inggris dan notasi umum
matematika
Kode dalam bahasa level tinggi dengan compiler
atau interpreter
C/C++ termasuk bahasa level tinggi
Pengantar Bahasa C - TIF UB 2010
6
Bahasa Tingkat Tinggi
Contoh:
gajiKotor = gajiPokok + gajiLembur
Menambahkan gaji lembur ke gaji pokok dan
menyimpan hasilnya ke gaji kotor
Pengantar Bahasa C - TIF UB 2010
7
Sejarah C
Dirancang oleh Denis M. Ritchie & diimplementasikan
pertama kali tahun 1972 di Bell Labs.
Pengembangan dari bahasa BCPL (Martin Richard, 1967)
dan bahasa B (Ken Thompson, 1970)
Dibantu Brian W. Kernighan, Ritchie menulis buku The C
Programming Language (1978). Dikenal dengan nama
K&R C atau “C klasik” atau “traditional C”
Versi C yang lebih baru ANSI C, 1989, untuk
menyediakan definisi yang tidak ambigu dan
independen terhadap mesin. C89.
(ANSI: American National Standards Institute)
Pengantar Bahasa C - TIF UB 2010
8
Mengapa C?
Bahasa tingkat tinggi yang mendekati bahasa
tingkat rendah namun masih mudah dimengerti.
Dipakai mulai dari komputer mikro sampai
superkomputer
Bahasa yang banyak digunakan dalam ilmu
komputer untuk membuat sistem operasi dan
program aplikasi. (e.g. berbagai varian UNIX (C),
Windows (C/C++), berbagai varian Linux (C/C++),
MySql (C++), etc)
Didukung oleh banyak pustaka (libraries)
Pengantar Bahasa C - TIF UB 2010
9
Pustaka Standar C
(C Standard Library)
http://www.utas.edu.au/infosys/info/documentation/C
/CStdLib.html
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/
http://www.csse.uwa.edu.au/programming/ansiclibrary.html
http://en.wikibooks.org/wiki/C_Programming/Standard
_libraries
Pengantar Bahasa C - TIF UB 2010
10
Struktur program
Bahasa C adalah salah satu bahasa pemrograman yang
terstruktur
Bahasa C juga bersifat prosedural, terdiri dari fungsifungsi
Setiap program C mempunyai satu fungsi dengan nama
“main” (program utama)
Program akan dieksekusi dimulai dari pernyataan
(statement) pertama pada fungsi “main” itu
Huruf besar dengan huruf kecil diartikan berbeda (casesensitive)
Setiap pernyataan (statement) sederhana diakhiri
dengan titik koma (semi-colon (;))
Pengantar Bahasa C - TIF UB 2010
11
Struktur program
Pengantar Bahasa C - TIF UB 2010
12
Struktur program
Contoh “Salam Super”
/*---------------------------------Program Pertama
----------------------------------*/
//Program mencetak tulisan Salam Super
#include <stdio.h>
int main()
{
printf(“Salam Super!\n”);
return 0;
}
Pengantar Bahasa C - TIF UB 2010
13
Struktur program
Format penulisan fungsi main
1.
main()
{
statements;
3.
}
2.
void main()
{
statements;
4.
}
Pengantar Bahasa C - TIF UB 2010
main()
{
statements;
return (0);
}
int main()
{
statements;
return (0);
}
14
Struktur program
Sering dijumpai beberapa format penulisan fungsi main
seperti contoh diatas, tetapi tidak semua compiler
mengenalnya.
Contoh:
– dengan menggunakan compiler Turbo C 2.0 (DOS) dan Microsoft
Visual C++ (Windows), (2), (3) dan (4) => Success, tetapi (1) warning
– dengan menggunakan compiler Dev-C (windows), dan gcc (linux) (1),
(3) dan (4) => Success, tetapi (2) warning
return (0); menyatakan program exit secara normal.
Penulisan return 0; sama artinya dengan return (0);
15
Elemen-elemen dalam
source code
Characters (karakter)
Identifiers (nama)
Keywords (kata kunci)
Data types (tipe data)
Variables (variabel)
Constants (symbolic and literal) (konstanta
simbolik dan konstanta literal)
Pengantar Bahasa C - TIF UB 2010
16
Elemen-elemen dalam
source code
Expressions (Ekspresi)
Statements (Pernyaatan)
Comments or non-extecutable statements
(Komentar)
Functions (Fungsi)
Pre-processor commands/directives
(Perintah/pengarah pre-processor)
Pengantar Bahasa C - TIF UB 2010
17
Characters
Program C ditulis menggunakan subset karakter
ASCII yaitu:
Huruf besar A .. Z
Huruf kecil a .. z
Digit 0 .. 9
Karakter khusus seperti ‘!’ , ‘&’, ‘+’, ‘\’, ‘_’ dan sebagainya.
ASCII: American Standards Committee for
Information Interchange
Pengantar Bahasa C - TIF UB 2010
18
Pengantar Bahasa C - TIF UB 2010
19
Extended ASCII Codes
Pengantar Bahasa C - TIF UB 2010
20
Identifiers
Nama berbagai elemen program seperti nama variabel, fungsi,
konstanta, dsb
Diawali dengan huruf atau garis bawah (underscore) _ dan
diikuti dengan huruf, digit atau _
Huruf besar dianggap berbeda dengan huruf kecil (case
sensitive)
Panjang maksimum Identifier tergantung dari compiler sebagai
contoh Turbo C 2.0 (DOS), max 32 karakter
Tidak boleh menggunakan keyword (misal for, while, dll.)
Contoh identifier : name, x1, _total, cubic
Contoh identifier yang salah: 1kali, int
Pengantar Bahasa C - TIF UB 2010
21
Keywords
Keywords adalah kata-kata yang mempunyai arti khusus
pada bahasa pemrograman komputer dan tidak
dibolehkan dipakai untuk identifier lain.
Contoh:
Ke yw o rd s
auto
break
case
char
const
continue
default
do
double
else
enum
extern
float
for
goto
if
int
long
register
return
short
signed
sizeof
static
Pengantar Bahasa C - TIF UB 2010
struct
switch
typedef
union
unsigned
void
volatile
while
22
Keywords
Beberapa compiler akan memberikan warna yang
berbeda untuk keyword, seperti pada Dev-C atau Visual
C++, dibawah ini.
Pada Visual C++ keyword
dicetak dengan warna biru
Pada Dev-C
keyword dicetak
BOLD
Pengantar Bahasa C - TIF UB 2010
23
Variables
Variabel (variable) : sesuatu yang memiliki alamat memori
tertentu (di RAM) untuk menyimpan nilai data.
Setiap variabel memiliki nama/identifier, alamat, tipe, size
(rentang nilai) dan data.
Nilai data atau isi variabel dapat diubah saat run time
Format deklarasi variabel:
<tipe> <nama [, ...]>;
<tipe> <nama = nilai_awal [, ...]>;
Contoh:
int a, b, c, jumlah;
float gaji, bonus;
int jml_mhs = 20;
Pengantar Bahasa C - TIF UB 2010
24
Variables
Pengantar Bahasa C - TIF UB 2010
25
Variables
Deklarasi Variabel:
– Variabel dapat dideklarasikan di setiap awal block statement.
– Block statement disebut juga “compound statement” adalah
statement-statement yang berada diantara { dan }.
– Contoh deklarasi variabel:
int
int
int
x;
y;
z;
atau bisa ditulis :
int x, y, z;
atau bisa juga ditulis :
int x;
int y; int z;
Pengantar Bahasa C - TIF UB 2010
26
Data types
Pada dasarnya tipe data primitif (primitive data types)
pada bahasa pemrograman C berjumlah 5:
Tipe Data Primitif/Bawaan Keyword
1.
2.
3.
4.
5.
Character
Integer
Floating point
Double floating point
Void
1.
2.
3.
4.
5.
char
int
float
double
void
Kemudian tipe primitif ini bertambah dengan adanya 4
modifiers.
Pengantar Bahasa C - TIF UB 2010
27
Data types
Empat modifiers:
signed
unsigned
long
short
Tipe data dalam bahasa C merupakan kombinasi antara
tipe data primitif yang dasar dengan modifier di atas.
Contoh : signed char, unsigned int, long int, dll.
Pengantar Bahasa C - TIF UB 2010
28
Data types
Contoh tipe data dan rentang nilai pada Turbo C dan Borland C++
untuk tipe data 16-bit
Tipe Data
Penulisan
Memori
Rentang Nilai
character
unsigned char
char
1 Byte
1 Byte
0 s/d 255
-128 s/d 127
integer
unsigned int
int
short int
unsigned long
long
2 Byte
2 Byte
1 Byte
4 Byte
4 Byte
0 s/d 65535
-32768 s/d 32767
-128 s/d 127
0 s/d 4294967295
-2147483648 s/d 2147483647
float
float
double
long double
4 Byte
8 Byte
16 Byte
3.4E-38 s/d 3.4E+38
1.7E-308 s/d 1.7E+308
3.4E-4932 s/d 1.1E+4932
Pengantar Bahasa C - TIF UB 2010
29
Data types
Default-nya signed (bilangan bertanda), sehingga penulisan
int sama artinya dgn signed int
Contoh :
int x; sama artinya dgn signed int x;
short int x; sama artinya dgn signed short int x;
Rentang Nilai (range) dari tipe data dalam bahasa C
tergantung dari compiler dan sistem operasi.
Contoh :
Tipe integer pada Turbo C 2.0 (DOS), rentang nilainya 2 byte
(-32768 s/d 32767)
Tipe integer pada Dev-C (Windows), rentang nilainya 4 byte
(-2147483648 s/d 2147483647)
Borland C++ 5.02 menyediakan tipe integer untuk 2 byte dan 4 byte
Pengantar Bahasa C - TIF UB 2010
30
Data types
Mengapa tipe char rentang nilainya dari -128 s/d 127 ?
1 Byte = 8-bit
00000000 s/d 01111111 (msb = 0 untuk bil positif)
msb = most significant bit; bit yg paling kiri
10000000 s/d 11111111 (msb = 1 untuk bil negatif)
-128
-128
32
64
Jika dijumlahkan
hasilnya = -128
8 4 2 1
16
JikaPengantar
dijumlahkan
Bahasa C - TIF UB 2010
hasilnya = -1
31
Data types
Rentang nilai tipe data
signed char
Pengantar Bahasa C - TIF UB 2010
32
Data types
Rentang nilai tipe data
unsigned char
Pengantar Bahasa C - TIF UB 2010
33
Data types
Contoh
char c = 127;
int i = 127;
c = c + 1;
i = i + 1;
Berapa nilai c dan i ?
Pengantar Bahasa C - TIF UB 2010
34
Data types
Contoh
char c = 127;
int i = 127;
c = c + 1;
i = i + 1;
Berapa nilai c dan i ?
Jawaban :
c bernilai -128 bukan 128
dan i bernilai 128
Pengantar Bahasa C - TIF UB 2010
35
Data types
Keyword void disamping digunakan dalam
fungsi yang tidak mengembalikan nilai, juga
digunakan sebagai tipe data.
Tipe data void : adalah tipe data yang bisa
diubah menjadi tipe apa saja (akan dibahas
lebih lanjut pada saat membahas pointer)
Pengantar Bahasa C - TIF UB 2010
36
Constants
Konstanta adalah nilai yang tidak berubah selama
proses dalam program
Konstanta bisa berupa konstanta literal atau berupa
konstanta simbolik
Konstanta literal adalah nilai yang ditulis pada kode
program. Contoh:
panjang = 5; // 5 adalah konstanta literal
printf(“x = %c”, ‘A’); // ‘A’ adalah konstanta literal
Pengantar Bahasa C - TIF UB 2010
37
Constants
Konstanta simbolik dibuat untuk memberi nama pada
suatu nilai literal.
Konstanta simbolik bisa dibuat dengan 2 cara:
– Dengan preprocessor directive #define. Contoh:
#define UKURAN 25
– Dengan kata kunci const. Contoh:
const int X = 50;
Pengantar Bahasa C - TIF UB 2010
38
Symbolic constants
#define Pi 3.14
int main(){
Pi=3.1475;//Error
return 0;
}
int main(){
const float Pi=3.14;
Pi=3.1475; //Error
return 0;
}
#define Pi 3.14
int main(){
float PHI=3.14;
PHI = 3.1475; //OK
Pi=3.1475;
//Error
return 0;
}
39
Literal constants
Jenis-jenis konstanta literal:
Integer constants
-5
Floating-point constants
3.14
Character constants
'C' '1' '$‘
Escape sequence
\n \t \''
String constants
‘‘Universitas Brawijaya‘‘
40
sizeof
sizeof adalah sebuah operator untuk mengetahui
jumlah memori (byte) yang diperlukan oleh suatu
tipe data pada bahasa C
Sintaknya : sizeof(expression)
Contoh :
sizeof(int)// bernilai 4 pada Dev-C++ (Windows)
sizeof(int)// bernilai 2 pada Turbo C versi 2.0 (DOS)
41
Cast
Cast adalah proses untuk mengkonversi tipe data
pada bahasa C
Sintaksis: (type)
Contoh :
int x;
float fx = 3.134;
x = (int)fx;
Cast
42
Suffix
Untuk konstanta literal bilangan floating point,
bahasa C menyediakan suffix (akhiran) berikut:
– F atau f untuk tipe data float
– L atau l untuk tipe data long double
Tipe default (jika tanpa suffix ) untuk konstanta
literal bilangan floating point adalah double.
Contoh:
– 3.14 => (double)
– 3.14f => (float)
– 3.14L => (long double)
43
Suffix
Untuk konstanta literal bilangan integer, bahasa C
menyediakan suffix (akhiran) berikut:
– U atau u untuk tipe unsigned integer
– L atau l untuk tipe long integer
– UL atau ul atau LU atau lu untuk tipe bilangan unsigned
long integer
Tipe default (jika tanpa suffix) untuk konstanta
literal bilangan integer adalah integer.
Contoh:
– 174
=> (integer)
– 174u => (unsigned integer)
– 174L => (long integer)
– 174ul => (unsigned long integer)
44
Suffix
Beberapa compiler (mis. pada Visual C++) akan
memberikan peringatan terhadap operasi “lintas tipe
data” seperti berikut:
float x;
x = 3.14;
warning : truncation from 'const double' to 'float’
Cara menghindari peringatan:
float x;
x = (float)3.14;//menggunakan cast atau
x = 3.14f;
//menggunakan suffix
45
Suffix
#include <stdio.h>
#include <conio.h>
int main()
{
char ch;
printf("Size of floating point constants:\n");
printf(" – with suffix f = %d\n",sizeof(3.14f));
printf(" - without suffix = %d\n",sizeof(3.14));
printf(" - with suffix L = %d\n",sizeof(3.14L));
}
ch=getch();
return 0;
Output :
Size of floating point constants :
- with suffix f = 4
- without suffix = 8
- with suffix L = 12
46
Comments
Menggunakan pasangan /* dan */ atau //
Digunakan agar program lebih mudah dibaca dan
dimengerti
Diabaikan oleh compiler
Untuk komentar 1 (satu) baris cukup menggunakan tanda
// diawal baris
Contoh comments dalam program C sederhana:
/*---------------------------------Program Pertama
----------------------------------*/
//Program mencetak tulisan Helloworld
#include <stdio.h>
void main()
{
printf(“Hello
World \n”);
Pengantar Bahasa C - TIF UB 2010
}
47
Pre-processor directives
Contoh:
void main()
{
printf(”Hello World”);
}
#include <stdio.h>
void main()
{
printf(”Hello World”);
}
Pengantar Bahasa C - TIF UB 2010
Jika di kompilasi
dengan Dev-C++
program ini akan error,
dgn Error Message:
‘printf’ undeclared.
#include adalah sebuah
directive/arahan untuk
memberitahu compiler
bahwa function prototype
untuk fungsi printf ada
pada header file stdio.h
48
Preprocessor directives
#include <stdio.h>
– File stdio.h akan dicari mulai dari directory tempat header file
tersebut di-install. Jika tidak ditemukan, file ini dicari di current /
working directory.
– Contoh, pada Turbo C 2.0, stdio.h diinstalasikan pada directory … \
INCLUDE sedangkan pada Dev-C++ di directory ...\Dev-Cpp\include
49
Preprocessor directives
#include ”stdio.h”
– File stdio.h akan dicari mulai dari current / working directory, dan jika
tidak ditemukan akan dicari di directory tempat header file tersebut
disimpan pada saat compiler-nya diinstalasi.
Directive #include umumnya ditulis di awal program
50
Latihan
1. Apakah yang dimaksud dengan library dalam bahasa
pemrograman C?
2. Apakah yang dimaksud dengan identifier pada bahasa
pemrograman C?
3. Berapakah data terbesar yang bisa ditampung oleh variabel x
yang bertipe integer dengan ukuran 20-bit ?
4. Sebutkan tipe data (boleh lebih dari satu) yang tepat untuk
mengolah data umur!
5. Sebutkan tipe data yang tepat untuk menampung data nim
mahasiswa!
6. Sebutkan tipe data yang tepat untuk menampung data saldo
rekening!
51
Latihan
7. Kapan sebaiknya menggunakan directive:
• #include <header.h> atau
• #include ”header.h”
8. Jika tipe integer hanya berukuran 3 bytes, berapakah rentang
nilainya (range) ?
9. Jika tipe unsigned integer hanya berukuran 3 bytes, berapakah
rentang nilainya (range) ?
10.Apakah perbedaan variabel dengan konstanta ?
11.x adalah sebuah variabel bertipe integer dan berukuran 2
bytes. Jika x=32767, berapakah nilai x yang ditambah dengan
1?
52
Latihan
12. Diketahui bilangan biner 10-bit: 1010110011
a) Jika bilangan biner tersebut adalah signed, berapa nilai
desimalnya?
b) Jika bilangan biner tersebut adalah unsigned, berapa nilai
desimalnya?
13. Jelaskan arti sistem bilangan berikut
• Desimal
• Biner
• Oktal
• Heksadesimal
14.Jelaskan cara mengkonversi sistem bilangan desimal ke biner,
oktal dan heksadesimal, dan sebaliknya.
53
Latihan
15. #define PHI 3.142857
Apa keuntungan kita menggunakan konstanta PHI
seperti di atas? Mengapa tidak langsung saja
menggunakan angka 3.142857?
54