Dasar Pemrograman Komputer
Embed Size (px)
description
Transcript of Dasar Pemrograman Komputer

Dasar Pemrograman Komputer
Pengantar Bahasa C
SutrisnoIsmiarta Aknuranda
Issa ArwaniAdharul 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+1200274027Menambahkan 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 tinggiPengantar 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

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

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

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

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

12
Struktur program
Pengantar Bahasa C - TIF UB 2010

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

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

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

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

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

19Pengantar Bahasa C - TIF UB 2010

Extended ASCII Codes
Pengantar Bahasa C - TIF UB 2010 20

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

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

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

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

25
Variables
Pengantar Bahasa C - TIF UB 2010

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;

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

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

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

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

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

32
Rentang nilai tipe data signed char
Data types
Pengantar Bahasa C - TIF UB 2010

33
Rentang nilai tipe data unsigned char
Data types
Pengantar Bahasa C - TIF UB 2010

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

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

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

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

#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

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

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

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

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 ataux = 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;}
46
Size of floating point constants : - with suffix f = 4 - without suffix = 8 - with suffix L = 12
Output :
Suffix

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

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

#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
Preprocessor directives

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

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

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

54
15. #define PHI 3.142857
Apa keuntungan kita menggunakan konstanta PHI seperti di atas? Mengapa tidak langsung saja menggunakan angka 3.142857?
Latihan