Download - Materi ap#2

Transcript
Page 1: Materi ap#2
Page 2: Materi ap#2

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)

2

Page 3: Materi ap#2

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)

3

Page 4: Materi ap#2

Proses penerjemahan bahasa C

Editor

Preprocessor

Compiler

Linker

Loader

DISK

.c

.h

.obj

.out(UNIX)

.exe(MS)

CPUPrimary Memory

Page 5: Materi ap#2

4

Page 6: Materi ap#2

Struktur program• Bahasa C adalah salah satu bahasa pemrograman yang

terstruktur

• Bahasa C juga bersifat prosedural, terdiri dari fungsi- fungsi

• 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 (case- sensitive)

• Setiap pernyataan (statement) sederhana diakhiri dengan titik koma (semi-colon (;))

5

Page 7: Materi ap#2

Struktur program

Page 8: Materi ap#2

6

Page 9: Materi ap#2

Struktur program

• Contoh “Salam Super”/*----------------------------------

Program Pertama----------------------------------*/

//Program mencetak tulisan Salam Super

#include <stdio.h>int main(){

printf(“Salam Super!\n”);return 0;

}

Page 10: Materi ap#2

7

Page 11: Materi ap#2

Struktur program• Format penulisan fungsi main

main()1. {

statements;

}

main()3. {

statements;return (0);

}

2. void main(){

statements;

}

4. int main(){

statements;return (0);

}8

Page 12: Materi ap#2

Pre-processor directives• Contoh:

void main(){

printf(”Hello World”);

Jika di kompilasi dengan Dev-C++ program ini akan error, dgn Error Message:‘printf’ undeclared.

}

#include <stdio.h>void main(){

printf(”Hello World”);

#include adalah sebuahdirective/arahan untuk memberitahu compiler bahwa function prototype untuk fungsi printf adapada header file stdio.h}

Page 13: Materi ap#2

9

Page 14: Materi ap#2

Pre-processor directivesContoh file judul : #include <stdio.h>

File judul yang berisi fungsi pustaka untuk operasi input dan output standar

#include <math.h>

File judul yang berisi fungsi pustaka untuk operasi matematika

#include <conio.h>

File judul ini digunakan untuk membersihkan layar

10

Page 15: Materi ap#2

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);

11

Page 16: Materi ap#2

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)

12

Page 17: Materi ap#2

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)

13

Page 18: Materi ap#2

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 forInformation Interchange

14

Page 19: Materi ap#2

Extended ASCII Codes

15

Page 20: Materi ap#2

1

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

• T i d ak b o leh menggunakan keyword (misal for, while, dll.)

• Contoh identifier : name, x1, _total, cubic

• Contoh identifier yang salah: 1kali, int

Page 21: Materi ap#2

2

Keywords• Keywords adalah kata-kata yang mempunyai arti khusus

pada bahasa pemrograman komputer dan tidak dibolehkan dipakai untuk identifier lain.

• Contoh:Ke y w o rd s

au to do ubl e i nt str uc t

br eak el se l ong swi tc h

ca se en um r egi st er

typ ed ef

ch ar ex ter n r etu rn uni on

co nst fl oat s hor t uns ig ned

co nti nu e

fo r s ign ed voi d

de fau lt go to s ize of vol at ile

do if s tat ic whi le

Page 22: Materi ap#2

3

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-Ckeyword dicetakBOLD

Page 23: Materi ap#2

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;

Syarat penulisan variabel :

1. Panjangnya sampai 32 karakter

2. Karakter pertama harus huruf atau karakter garis bawah ( _ )

3. Tidak boleh ada spasi

4. Huruf besar dan huruf kecil dianggap berbeda

Page 24: Materi ap#2

Variables

20

Page 25: Materi ap#2

1

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 x; int y; int z;

atau bisa ditulis :int x, y, z;

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

Page 26: Materi ap#2

2

Data types• Pada dasarnya tipe data primitif (primitive data types)

pada bahasa pemrograman C berjumlah 5:

Tipe Data Primitif/Bawaan Keyword

1. Character2. Integer3. Floating point4. Double floating point5. Void

1. char2. int3. float4. double5. void

Kemudian tipe primitif ini bertambah dengan adanya 4 modifiers.

Page 27: Materi ap#2

3

Data typesTipe Data

intPenentu Format

%dunsigned int

long int%u%ld

floatdouble

%f%lf

charchar[n] (string)

%c%s

Kemudian tipe primitif ini bertambah dengan adanya 4 modifiers.

Page 28: Materi ap#2

1

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.

Page 29: Materi ap#2

2

Data typesContoh 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 Byte1 Byte

0 s/d 255-128 s/d 127

integer unsigned int intshort int unsigned long long

2 Byte2 Byte1 Byte4 Byte4 Byte

0 s/d 65535-32768 s/d 32767-128 s/d 1270 s/d 4294967295-2147483648 s/d 2147483647

float float doublelong double

4 Byte8 Byte16 Byte

3.4E-38 s/d 3.4E+381.7E-308 s/d 1.7E+3083.4E-4932 s/d 1.1E+4932

Page 30: Materi ap#2

26

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 Ctergantung 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

Page 31: Materi ap#2

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

27

Page 32: Materi ap#2

Constants

• Konstanta simbolik dibuat untuk memberinama 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;

28

Page 33: Materi ap#2

Symbolic constants#define Pi 3.14 int main(){

Pi=3.1475;//Errorreturn 0;

int main(){const float Pi=3.14; Pi=3.1475; //Errorreturn 0;

}}

#define Pi 3.14 int main(){

float PHI=3.14;PHI = 3.1475; //OK Pi=3.1475; //Error return 0;

} 29

Page 34: Materi ap#2

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”);}

30

Page 35: Materi ap#2

Escape SequencesKonstanta karakter escape banyak digunakan di statemen untuk menampilkan hasil.

Karakter Escape Arti\a bunyi bel\b mundur satu spasi\f ganti halaman\n ganti baris baru\r ke kolom pertama, baris yang sama\t tabulasi horisontal\v tabulasi vertikal\0 nilai kosong\' karakter petik tunggal\" karakter petik ganda\\ garis miring terbalik (backslash)

Page 36: Materi ap#2

Escape Sequences

Kode Format untuk fungsi prinf()

Kode Format Kegunaan%c Menampilkan sebuah karakter%s Menampilkan nilai string%d Menampilkan nilai desimal integer%i Menampilkan nilai desimal integer%f Menampikan nilai pecahan

Page 37: Materi ap#2
Page 38: Materi ap#2

• Penambahan dua buah bilanganData 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*/printf ( “ Bilangan X = %d”,x); /* menampilkan bil X dilayar */

printf ( “ Bilangan Y =,%d”,y);printf ( “ Jumlah X dan Y =%d”,z);return 0; /*Statement 4*/

} /*Program utama selesai*/

Page 39: Materi ap#2

Buatlah Program bahasa C untuk menghitungluas segitiga dimana ( alas = 50 dan tinggi =25 ) disertai Menghitung rata-rata ( a= 25 , b=75 dan c = 30 )Tiga buah bilangan disertai flowchart danpseudocodenya !


Top Related