Anda di halaman 1dari 50

Pemrograman Dasar [COM60014]

2020

1
Pada akhir pertemuan, diharapkan mahasiswa
mampu :
 Menjelaskan elemen dan struktur dasar bahasa
pemrograman C

2
Pengantar Bahasa C
 Sejarah Bahasa C
 Struktur Program dan Komentar
 Karakter, Identifier, Keyword

 Tipe Data, Konstanta, Variabel

3
 Dirancang oleh Denis M. Ritchie 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.
 Versi C yang lebih baru Ansi C 1989, iso C 99.

4
 Flexibility : mendekati low level language
namun mudah dimengerti.
 Portability : dipakai mulai dari komputer
mikro sampai superkomputer
 Bahasa yang banyak digunakan dalam ilmu
komputer untuk membuat O/S dan program
aplikasi, dll.
 Didukung oleh banyak pustaka (libraries)

5
PUSAT PENGOLAH DATA
Data yang diolah (PROCESSOR) Data hasil pengolahan
(berbasis angka dgn
(Masukan/Input) operasi Aritmetika (Keluaran/Output)
dan/atau Logika)

Penyimpanan nilai Data

6
 Bahasa C adalah salah satu bahasa pemrograman yang
terstruktur
 Bahasa C terdiri dari sekumpulan sejumlah fungsi
 Tidak ada perbedaan antara prosedur dengan fungsi
 Setiap program C mempunyai satu fungsi dengan nama
“main” (program utama).
 Program akan dieksekusi dimulai dari statement
pertama pada fungsi “main” tsb.
 Huruf besar dengan huruf kecil diartikan berbeda
(case-sensitive).
 Setiap statement diakhiri dengan semi-colon (titik
koma (;)).

7
 Format penulisan fungsi main
main() main()
1. { {
statements; 3. statements;
return (0);
} }

void main() int main()


{ {
statements; statements;
2. 4. return (0);
} }

8
 Sering dijumpai beberapa format penulisan fungsi main
seperti contoh di atas, tetapi tidak semua compiler
mengenalnya.
 Penulisan fungsi main yang standard seperti no. 3 atau 4 di
atas.
 return (0), menyatakan program exit secara normal.
 Fungsi main dan juga fungsi yg lainnya jika tidak diberikan
tipe maka defaultnya integer (int). Pada contoh diatas No. 3
dan 4 artinya sama.
 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

9
 Contoh:

int main() Jika di kompilasi dengan


{ Dev-C++ program ini akan
error, dgn Error Message:
printf(”Selamat datang di FT-UB\n”);
‘printf’ undeclared.
return (0);
}

#include <stdio.h> #include adalah sebuah


int main() directive/arahan untuk
{ memberitahu compiler bahwa
printf(”Selamat datang di FT-UB\n”); function prototype untuk
return (0); fungsi printf ada pada header
} file stdio.h

10
 Penulisan return 0; sama artinya dengan return (0);
 #include <stdio.h>
• File stdio.h akan dicari mulai dari directory tempat header file
tersebut di-install. Jika tdk ada akan dilanjutkan mencarinya ke
current / working directory.
• Contoh pd Turbo C 2.0, header file di install pada directory … \
INCLUDE sedangkan pada Dev-C++ tdp di directory ...\Dev-
Cpp\include

11
 #include ”stdio.h”
• File stdio.h akan dicari mulai dari current / working directory,
dan jika tdk ada akan dilanjutkan mencarinya ke directory
tempat header file tersebut disimpan pada saat menginstall
compiler-nya.
 Directive #include umumnya ditulis di awal program
 Style penulisan (tergantung kesenangan programmer):

#include <stdio.h> #include <stdio.h>


int main() Sama int main() {
{ printf(“Selamat datang\n”); printf(“Selamat datang\n”);
return (0); return (0);
} }

12
 Menggunakan pasangan /* dan */
 Digunakan agar program lebih mudah dibaca dan
dimengerti
 Diabaikan oleh compiler
 Untuk komentar 1 (satu) baris cukup menggunakan
tanda // diawal baris
 Contoh program C sederhana:
/*----------------------------------
Program Pertama
----------------------------------*/
#include<stdio.h>
void main() {
printf(“Helloworld \n”); return (0);
} //Program mencetak tulisan Helloworld
13
 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

14
15
 \a bell, alert, system beep
 \b back space
 \t horizontal tab
 \n new line, line eed
 \v vertical tab
 \r carriage return
 \’ single quote
 \” double quote
 \\ backslash
 \xdd notasi hexadecimal
 \ddd notasi octal

16
 Nama berbagai elemen program seperti nama variabel,
fungsi, konstanta, keyword 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

17
 Keywords adalah kata-kata/identifier yang mempunyai
arti khusus pada bahasa pemrograman komputer dan tidak
dibolehkan dipakai untuk identifier lain.
 Contoh Keyword Bahasa Pemrograman C
Ke yw o rd s
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

18
19
 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

20
 Terdapat
4 macam nilai data dalam
bahasa pemrograman:
1. Numerik
 Integer (bilangan bulat/bilangan tanpa titik
desimal)
 Desimal (contoh: 157)
 Oktal (contoh: 0157)
 Heksadesimal (contoh: 0x67b)
 Floating point (bilangan riil/pecahan)
 Bertitik desimal (157. ; 1.57)
 Eksponensial/scientific (2e3 = 2.x10^3)

21
2. Karakter (Character)
 Dalam bahasa pemrograman C menggunakan
karakter ASCII (American Standart Code for
Information Interchange)
3. String (Teks)
 Lebih dari satu karakter, dalam bahasa
pemrograman C merupakan array dari karakter.
4. Boolean
 Mempunyai nilai true dan false, dalam bahasa
pemrograman C, nilai true diwakili oleh #0 (bukan
nol) sedangkan false diwakili oleh 0 (nol)

22
 Variabel : Identifier yang memiliki alamat memori
tertentu (di RAM) untuk menyimpan nilai data.
 Setiap variabel memiliki nama/identifier, alamat (L-
Value), tipe, size(rentang nilai) dan data (R-Value).
 Nilai data atau isi variabel dapat diubah-ubah pada
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;
23
24
 Deklarasi Variabel:
• Variabel dpt dideklarasikan di setiap awal blok statement.
• Blok statement disebut juga “compound statement” adalah
statement-statement yang berada diantara { dan }.
• Contoh deklarasi variabel:

int x;
int y;
int z;
atau bisa ditulis :
int x, y, z;
atau bisa juga ditulis :
int x; int y; int z;

25
 Terdapat 2 tipe data, yaitu: tipe data primitif dan tipe
data buatan.
 Pada dasarnya tipe data primitif pada bahasa
pemrograman C ada 5, dan ditambah 4 tipe Modifier
yaitu:
Tipe Data Primitif/Bawaan Keyword
1. Character 1. char
2. Integer 2. int
3. Floating point 3. float
4. Double floating point 4. double
5. Void 5. void

26
 Empat tipe Modifier adalah sbb :
• signed
• unsigned
• long
• short
 Tipe
data dalam bahasa C merupakan
kombinasi antara Basic Data Types dengan
Modifier.
 Contoh : signed char, unsigned int, long int,
dll.

27
CONTOH : TIPE DATA DAN RENTANG NILAI PADA TURBO C 2.0 (DOS)

Tipe Data Penulisan Memori Rentang Nilai

character unsigned char 1 Byte 0 s/d 255


char 1 Byte -128 s/d 127
integer unsigned int 2 Byte 0 s/d 65535
int 2 Byte -32768 s/d 32767
short int 1 Byte -128 s/d 127
unsigned long 4 Byte 0 s/d 4294967295
long 4 Byte -2147483648 s/d 2147483647

float float 4 Byte 3.4E-38 s/d 3.4E+38


double 8 Byte 1.7E-308 s/d 1.7E+308
long double 16 Byte 3.4E-4932 s/d 1.1E+4932

28
 Defaultnya 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 pada 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)

29
 Mengapa tipe char rentang nilainya dari -128 s/d 127 ?
 1 Byte = 8-bit
00000000 s/d 01111111 (MSB=>0 = Bil Positip)
MSB = Bit yg paling kiri

10000000 s/d 11111111 (MSB=>1 = Bil Negatip)

-128 -128 32 8 4 2 1

64 16

Jika dijumlahkan Jika dijumlahkan


hasilnya = -128 hasilnya = -1
30
Rentang Nilai Tipe
data signed char

31
Rentang Nilai Tipe
data unsigned char

32
 Contoh
char ch=127;
ch=ch+1;
Berapa nilai ch ?
Jawaban : -128 bukan 128

 Contoh
int ch=127;
ch=ch+1;
Berapa nilai ch ?
Jawaban : 128

33
 Merupakan aturan menuliskan nilai data pada
kode program.
• Bilangan integer/bulat
 Desimal, contoh: 957, 759l atau 759L (tipe long int), 659u
(unsigned int), 795ul (unsigned long int)
 Oktal, contoh: 0236, 0274u (unsigned), 0765ul (unsigned
long)
 Hexadesimal, contoh: 0x67ab, 0X78BC, 0xfffu (unsigned),
0xabfl (long int)
• Floating point (Riil), contoh: 3.157, 25e-5, 5E2f (tipe float),
5.98L (tipe double)
• Boolean, contoh: true, false, 1, 0
• Karakter, contoh: ‘a’, ‘8’ (diapit oleh petik tunggal)
• String, contoh: “C++”, “Pemrograman Dasar” (diapit oleh
petik ganda)

34
 Keyword void disamping digunakan dalam
fungsi untuk tidak mengembalikan nilai, juga
digunakan sebagai tipe data.

 Tipedata void : adalah tipe data yang bisa


dirubah menjadi tipe apa saja (akan dibahas
lebih lanjut pada saat membahas pointer)

35
 Cast : untuk mengkonversi tipe data pada
bahasa C
 Sintak : (type)
 Contoh :
int x;
float f = 3.134;
x = (int) f;

Cast

36
 Symbolic Constant adalah Identifier yang hanya
memiliki nilai (R-Value), dan nilai-nya tidak bisa
dirubah-rubah pada saat run time.
 Symbolic Constant tidak memiliki alamat (L-Value)
 Pada bahasa C deklarasi symbolic constant tidak
membutuhkan alokasi memori
 Untuk mendeklarasikan symbolic constant pada
bahasa C bisa dilakukan dengan pre-processor
directive #define atau dengan keyword const.
 Contoh:
const float Pi=3.14;
#define Pi 3.14
37
#define Pi 3.14 int main()
int main() { const float Pi=3.14;
{ Pi=3.1475; //Error Pi=3.1475; //Error
return 0; return 0;
} }

#define Pi 3.14
int main()
{ float PHI=3.14;
PHI = 3.1475; //OK (variable)
Pi=3.1475; //Error
return 0;
}
38
Konstanta / symbolic constant tidak memiliki alamat (hanya nilai)
dan nilainya tdk bisa dirubah saat run time.

Jenis-jenis Nilai konstanta:


 Integer constant  -5
 Floating-point constant  3.14
 Character constant  'C' '1' '$'
 Escape sequence  \n \t \''
 String constant  '‘TIF FT-UB''
Symbolic constant  #define PHI 3.14
 const float PHI=3.14;
 'H' adalah sebuah nilai character constant
 ''H'' adalah sebuah nilai string constant
 1 adalah sebuah nilai integer constant
 '1' adalah sebuah nilai character constant
 const float Pi= 3.1415926; Pi adalah sebuah symbolic constant
39
 Penambahan dua buah bilangan
Data telah berada di memori (variabel), hasil penjumlahan
disimpan di memori (variabel).

/* Program Tambah */ /*komentar */


int x,y,z; /*Deklarasi Variabel global*/
int main()
{ /*Program utama mulai*/
x = 20; /*Statement 1*/
y = 30; /*Statement 2*/
z = x + y; /*Statement 3*/
return 0; /*Statmenet 4*/
} /*Program utama selesai*/

40
 Program menghitung luas lingkaran
Data jejari dibaca dari keyboard, kemudian hasil perhitungan
ditayangkan di layar monitor.
/*----------------------------------
Program Luas_Lingkaran
----------------------------------*/
#include <stdio.h>
const float Pi = 3.14; /*Deklarasi Konstanta*/
int main() /*Program utama mulai*/
{ float jejari; /*Deklarasi local Variabel*/
float luas;
scanf(“%f”,&jejari); /*Masukkan dari keyboard*/
luas = Pi * jejari * jejari;
printf(“Luas = %5.2f”, luas); /*Mencetak ke layar*/
return (0);
} /*Program utama selesai*/
41
 sizeof
adalah sebuah operator untuk
mengetahui jumlah memori (byte) yang
diperlukan oleh suatu tipe data pada bahasa C
 Sintaknya : sizeof expression
 Contoh :
sizeof(int) = 4 => pada Dev-C (Windows)
sizeof(int) = 2 => pada Turbo C versi 2.0 (DOS)

42
 BahasaC menyediakan Suffix (akhiran) untuk
bilangan floating point konstan sbb:
• F atau f untuk tipe float
• L atau l untuk tipe long double
• Default tipenya double

 Contoh:
• 3.14 => (double)
• 3.14f => (float)
• 3.14L => (long double)

43
 Bahasa C menyediakan Suffix (akhiran) untuk
bilangan integer konstan sbb:
• 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
• Default tipenya integer

 Contoh:
• 174 => (integer)
• 174u => (unsigned integer)
• 174L => (long integer)
• 174ul => (unsigned long integer)
44
 Beberapa compiler akan memberikan warning
karena perbedaan tipe data seperti compiler
pada Visual C++ sbb:
 Contoh:
float x;
x = 3.14;
warning : truncation from 'const double' to 'float’

 Cara mengatasi sbb:


float x;
x = (float)3.14; //menggunakan cast atau
x = 3.14f; //menggunakan suffix

45
#include <stdio.h>
#include <conio.h>
int main()
{ char ch;
printf("Sizeof Floating Point Constan :\n");
printf(" - dgn suffix f = %d\n",sizeof(3.14f));
printf(" - tanpa suffix = %d\n",sizeof(3.14));
printf(" - dgn suffix L = %d\n",sizeof(3.14L));
ch=getch();
return 0;
}

Output : Sizeof Floating Point Constan :


- dgn suffix f = 4
- tanpa suffix = 8
- dgn suffix L = 12

46
1. Apakah yang dimaksud dengan fungsi library dalam
bahasa pemrograman C ?
2. Jelaskan apa 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 !

47
7. Kapan sebaiknya menggunakan directive:
1. #include <header.h> atau
2. #include ”header.h”
8. #include ”header.h”
9. Jika tipe integer ukurannya hanya 3 byte, berapakah
rentang nilainya (range) ?
10.Jika tipe unsigned integer ukurannya hanya 3 byte,
berapakah rentang nilainya (range) ?
11.Apakah beda Variabel dengan Konstanta ?
12.Jika x variabel bertipe integer dan ukurannya 2 byte,
jika x=32767 maka berapakah nilai x jika nilai x
ditambah 1 ?
48
13. Diketahui bilangan biner 10-bit sbb:
1010110011
a) Jika bilangan biner tersebut adalah bilangan signed
berapa nilai desimalnya ?
b) Jika bilangan biner tersebut adalah bilangan
unsigned berapa nilai desimalnya
14. Jelaskan tentang sistem bilangan
• Desimal
• Biner
• Oktal
• Heksadesimal
15.Jelaskan bagaimana cara mengkonversi sistem bilangan
desimal ke biner, oktal dan Heksadesimal, dan
sebaliknya
49
16. Jelaskan tentang sistem bilangan two’s complement,
one’s complement.

17. #define PHI 3.142857


Apa keuntungan kita menggunakan konstanta PHI spt
diatas? Mengapa tdk langsung saja menggunakan
angka 3.142857

50

Anda mungkin juga menyukai