Dasar Pemrograman Komputer

54
Dasar Pemrograman Komputer Pengantar Bahasa C Sutrisno Ismiarta Aknuranda Issa Arwani Adharul Muttaqin Teknik Informatika - UB

description

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 - PowerPoint PPT Presentation

Transcript of Dasar Pemrograman Komputer

Page 1: Dasar Pemrograman Komputer

Dasar Pemrograman Komputer

Pengantar Bahasa C

SutrisnoIsmiarta Aknuranda

Issa ArwaniAdharul Muttaqin

Teknik Informatika - UB

Page 2: Dasar Pemrograman Komputer

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

Page 3: Dasar Pemrograman Komputer

Bahasa Mesin

Jauh dari bahasa manusia Contoh:

+1300042774+1400593419+1200274027Menambahkan gaji lembur ke gaji pokok dan

menyimpan hasilnya ke gaji kotor

Pengantar Bahasa C - TIF UB 2010 3

Page 4: Dasar Pemrograman Komputer

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

Page 5: Dasar Pemrograman Komputer

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

Page 6: Dasar Pemrograman Komputer

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 tinggiPengantar Bahasa C - TIF UB 2010 6

Page 7: Dasar Pemrograman Komputer

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

Page 8: Dasar Pemrograman Komputer

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)

8

Sejarah C

Pengantar Bahasa C - TIF UB 2010

Page 9: Dasar Pemrograman Komputer

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)

9

Mengapa C?

Pengantar Bahasa C - TIF UB 2010

Page 10: Dasar Pemrograman Komputer

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/ansic-

library.html http://en.wikibooks.org/wiki/C_Programming/

Standard_libraries

10

Pustaka Standar C(C Standard Library)

Pengantar Bahasa C - TIF UB 2010

Page 11: Dasar Pemrograman Komputer

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

11

Struktur program

Pengantar Bahasa C - TIF UB 2010

Page 12: Dasar Pemrograman Komputer

12

Struktur program

Pengantar Bahasa C - TIF UB 2010

Page 13: Dasar Pemrograman Komputer

Struktur program

Contoh “Salam Super”

Pengantar Bahasa C - TIF UB 2010 13

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

//Program mencetak tulisan Salam Super

#include <stdio.h>int main() { printf(“Salam Super!\n”); return 0;}

Page 14: Dasar Pemrograman Komputer

Format penulisan fungsi main

14

main(){ statements;

}

main(){ statements; return (0);}

1.

2.

3.

4.

Struktur program

void main(){ statements;

}

int main(){ statements; return (0);}

Pengantar Bahasa C - TIF UB 2010

Page 15: Dasar Pemrograman Komputer

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

Struktur program

Page 16: Dasar Pemrograman Komputer

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

Page 17: Dasar Pemrograman Komputer

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

Page 18: Dasar Pemrograman Komputer

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

18

Characters

Pengantar Bahasa C - TIF UB 2010

Page 19: Dasar Pemrograman Komputer

19Pengantar Bahasa C - TIF UB 2010

Page 20: Dasar Pemrograman Komputer

Extended ASCII Codes

Pengantar Bahasa C - TIF UB 2010 20

Page 21: Dasar Pemrograman Komputer

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

21

Identifiers

Pengantar Bahasa C - TIF UB 2010

Page 22: Dasar Pemrograman Komputer

Keywords adalah kata-kata yang mempunyai arti khusus pada bahasa pemrograman komputer dan tidak dibolehkan dipakai untuk identifier lain.

Contoh:Keywords

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

22

Keywords

Pengantar Bahasa C - TIF UB 2010

Page 23: Dasar Pemrograman Komputer

Beberapa compiler akan memberikan warna yang berbeda untuk keyword, seperti pada Dev-C atau Visual C++, dibawah ini.

23

Pada Dev-C keyword dicetak BOLD

Pada Visual C++ keyword dicetak dengan warna biru

Keywords

Pengantar Bahasa C - TIF UB 2010

Page 24: Dasar Pemrograman Komputer

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;

24

Variables

Pengantar Bahasa C - TIF UB 2010

Page 25: Dasar Pemrograman Komputer

25

Variables

Pengantar Bahasa C - TIF UB 2010

Page 26: Dasar Pemrograman Komputer

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:

26

Variables

Pengantar Bahasa C - TIF UB 2010

int x;int y;int z;

atau bisa ditulis :int x, y, z;

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

Page 27: Dasar Pemrograman Komputer

Pada dasarnya tipe data primitif (primitive data types) pada bahasa pemrograman C berjumlah 5:

27

Tipe Data Primitif/Bawaan Keyword

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

1. char2. int3. float4. double5. void

Data types

Kemudian tipe primitif ini bertambah dengan adanya 4 modifiers.

Pengantar Bahasa C - TIF UB 2010

Page 28: Dasar Pemrograman Komputer

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.

28

Data types

Pengantar Bahasa C - TIF UB 2010

Page 29: Dasar Pemrograman Komputer

29

Data types

Tipe Data Penulisan Memori Rentang Nilai

character unsigned charchar

1 Byte1 Byte

0 s/d 255-128 s/d 127

integer unsigned int intshort intunsigned longlong

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

Contoh tipe data dan rentang nilai pada Turbo C dan Borland C++ untuk tipe data 16-bit

Pengantar Bahasa C - TIF UB 2010

Page 30: Dasar Pemrograman Komputer

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

30

Data types

Pengantar Bahasa C - TIF UB 2010

Page 31: Dasar Pemrograman Komputer

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)

10000000 s/d 11111111 (msb = 1 untuk bil negatif)

31

msb = most significant bit; bit yg paling kiri

-128 -128

64

32

16

8 4 2 1

Jika dijumlahkan hasilnya = -128

Pengantar Bahasa C - TIF UB 2010Jika dijumlahkan hasilnya = -1

Page 32: Dasar Pemrograman Komputer

32

Rentang nilai tipe data signed char

Data types

Pengantar Bahasa C - TIF UB 2010

Page 33: Dasar Pemrograman Komputer

33

Rentang nilai tipe data unsigned char

Data types

Pengantar Bahasa C - TIF UB 2010

Page 34: Dasar Pemrograman Komputer

Contohchar c = 127;int i = 127; c = c + 1;i = i + 1;

Berapa nilai c dan i ?

34

Data types

Pengantar Bahasa C - TIF UB 2010

Page 35: Dasar Pemrograman Komputer

Contohchar c = 127;int i = 127; c = c + 1;i = i + 1;

Berapa nilai c dan i ?Jawaban : c bernilai -128 bukan 128dan i bernilai 128

35

Data types

Pengantar Bahasa C - TIF UB 2010

Page 36: Dasar Pemrograman Komputer

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)

36

Data types

Pengantar Bahasa C - TIF UB 2010

Page 37: Dasar Pemrograman Komputer

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

Page 38: Dasar Pemrograman Komputer

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

Page 39: Dasar Pemrograman Komputer

#define Pi 3.14int main(){ Pi=3.1475;//Error return 0;}

39

int main(){ const float Pi=3.14;

Pi=3.1475; //Error return 0;}

#define Pi 3.14int main(){ float PHI=3.14; PHI = 3.1475; //OK Pi=3.1475; //Error return 0;}

Symbolic constants

Page 40: Dasar Pemrograman Komputer

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

Literal constants

Page 41: Dasar Pemrograman Komputer

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

sizeof

Page 42: Dasar Pemrograman Komputer

Cast adalah proses untuk mengkonversi tipe data pada bahasa C

Sintaksis: (type) Contoh :

int x;

float fx = 3.134;

x = (int)fx;

42

Cast

Cast

Page 43: Dasar Pemrograman Komputer

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

Page 44: Dasar Pemrograman Komputer

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

Page 45: Dasar Pemrograman Komputer

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 ataux = 3.14f; //menggunakan suffix

45

Suffix

Page 46: Dasar Pemrograman Komputer

#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;}

46

Size of floating point constants : - with suffix f = 4 - without suffix = 8 - with suffix L = 12

Output :

Suffix

Page 47: Dasar Pemrograman Komputer

47

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:

Comments

Pengantar Bahasa C - TIF UB 2010

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

//Program mencetak tulisan Helloworld

#include <stdio.h>void main() { printf(“Hello World \n”); }

Page 48: Dasar Pemrograman Komputer

Contoh:

48

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 sebuah directive/arahan untuk memberitahu compiler bahwa function prototype untuk fungsi printf ada pada header file stdio.h

Pre-processor directives

Pengantar Bahasa C - TIF UB 2010

Page 49: Dasar Pemrograman Komputer

#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

Page 50: Dasar Pemrograman Komputer

#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

Preprocessor directives

Page 51: Dasar Pemrograman Komputer

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

Page 52: Dasar Pemrograman Komputer

52

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?

Latihan

Page 53: Dasar Pemrograman Komputer

53

12. Diketahui bilangan biner 10-bit: 1010110011a) 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.

Latihan

Page 54: Dasar Pemrograman Komputer

54

15. #define PHI 3.142857

Apa keuntungan kita menggunakan konstanta PHI seperti di atas? Mengapa tidak langsung saja menggunakan angka 3.142857?

Latihan