PENGENALAN KONSEP
PEMROGRAMAN
Sejarah Bahasa C
Bersumber dari bahasa BCPL (Martin Richards -1967) dan B
(Ken Thompson -1970)
C diciptakan Dennis Ritchie dari Bell Laboratories pada tahun
1972 dan diimplementasikan pada komputer DEC PDP-11
Pada 1978 Dennis Ritchie dan Brian Kernighan kemudian
mempublikasikan buku
The C Programming Language
yang
semakin memperluas pemakaiannya dan dijadikan standar oleh
ANSI (American National Standard Institute)
pada tahun 1989
C kemudian dikembangkan lagi oleh Bjarne Stroustrup menjadi
C++ (1986)
C dan/atau C++ banyak digunakan (sehingga menjadi „standar‟)
Proses penerjemahan bahasa
C
Editor
Preprocessor
Compiler
Linker
Loader
DISK
.c .h .obj .out
(UNIX)
.exe
(MS)
Program sederhana I [1]
Contoh program untuk menampilkan sebaris teks
Selamat menggunakan bahasa C!
pada layar:
1. /* Program pertama dalam bahasa C */ 2. #include <stdio.h>
3. /* fungsi main mulai eksekusi program */ 4. int main( void )
5. {
6. printf( “Selamat menggunakan bahasa C!\n" );
Program sederhana I [2]
Komentar diawali dengan /* dan diakhiri dengan */ (seperti terdapat pada
baris-1,3,7,dan 8), komentar tidak dipedulikan/diproses oleh compiler. Bermanfaat untuk memudahkan pembacaan dan pemahaman sebuah program.
Baris dengan awalan # (seperti pada baris-2) diproses oleh preprocessor C
sebelum program dikompilasi. Baris tersebut menunjukkan bahwa preprocessor
harus mengikutsertakan standard input/output header (stdio.h) pada
program.Header ini mengandung informasi yang digunakan compiler untuk mengkompilasi pemanggilan fungsi standar input/output seperti printf (baris-6).
int main() merupakan fungsi utama program dan selalu merupakan bagian dari
program dalam C, karena berjalannya program/instruksi ditentukan oleh fungsi ini. int berarti fungsi main mengembalikan nilai integer
Tanda kurung kurawal buka { dan tutup } merupakan penanda body dari sebuah
fungsi atau sering disebut juga block fungsi/program.
printf( “Selamat menggunakan bahasa C!\n" ); menghasilkan aksi yaitu
menampilkan teks “Selamat menggunakan bahasa C!”
return 0; selalu diikutsertakan pada akhir fungsi main. Keyword return untuk
1. /* Program pertama dalam bahasa C */ 2. #include <stdio.h>
3. /* fungsi main mulai eksekusi program */ 4. int main( void )
5. {
6. printf( “Selamat menggunakan bahasa C!\n" );
7. return 0; /* indikasi program berakhir dengan sukses */
8. } /* akhir fungsi main */
Program sederhana I [3]
komentar
preprocessor
main function
statement
Program sederhana I [4]
Karakter
escape
Karakter
Deskripsi
\n Pindah kursor ke baris baru
\t Horisontal tab, pindah kursor ke posisi tab berikutnya
\a Membunyikan bel sistem/beep
\\ Mencetak/menampilkan \ (backslash)
Program sederhana I [5]
Modifikasi 1: mencetak 1 baris dengan 2 buah perintah
printf
1 /* Fig. 2.3: fig02_03.c
2 Printing on one line with two printf statements */
3 #include <stdio.h>
4
5 /* function main begins program execution */
6 int main()
7 {
8 printf( "Welcome " );
9 printf( "to C!\n" );
10
11 return 0; /* indicate that program ended successfully */
12
13 } /* end function main */
Welcome to C! Program
Program sederhana I [6]
Modifikasi 2: mencetak banyak baris dengan sebuah perintah
printf
Program sederhana II [1]
Membaca 2 buah bilangan bulat dari
keyboard
dan menampilkan hasil
1 /* Fig. 2.5: fig02_05.c
Program sederhana II [2]
Baris ke-1 hingga ke-7 serupa dengan program I
int integer1, integer2, sum;
Pendefinisian variable-variabel
Variabel: lokasi di memori tempat sebuah nilai disimpan
int berarti variabel dapat menyimpan bilangan bulat (-1, 3, 0, 47)
Nama-nama variabel (identifier)
integer1, integer2, sum
Identifier: mengandung huruf,angka (tidak boleh dimulai dengan
angka) dan underscores( _ )
Case sensitive (huruf besar dan kecil dibedakan)
Deklarasi variabel harus muncul sebelum eksekusi statement yang
menggunakannya
Program sederhana II [3]
scanf( "%d", &integer1 );
Mengambil sebuah nilai dari user
scanf menggunakan standar input (biasanya keyboard)
scanf statement ini memiliki dua buah argumen
%d - menunjukkan data yang diambil adalah bilangan bulat desimal
Tanda & dapat membingungkan di awal – untuk saat ini sertakan
pada nama variabel pada statement scanf
Ketika program dieksekusi user merespon statement scanf dengan
mengetik sebuah bilangan kemudian menekan tombol enter (return)
= (assignment operator)
Assigns (memberi) sebuah nilai kepada sebuah variabel
Merupakan sebuah operator biner (memiliki dua buah operand) sum = variable1 + variable2;
Program sederhana II [4]
printf( "Sum is %d\n", sum );
Serupa dengan pada scanf
%d berarti bilangan bulat desimal akan ditampilkan/dicetak Nilai variabel sum menentukan bilangan bulat yang akan
ditampilkan/dicetak
Perhitungan dapat langsung dilakukan dalam statement printf
Konsep Memori [1]
Variabel
Nama-nama variabel berkaitan dengan lokasi-lokasi di memori
komputer
Setiap variabel memiliki sebuah nama, sebuah tipe, sebuah
ukuran dan sebuah nilai
Ketika sebuah nilai baru diberikan pada sebuah variabel
(misalnya melalui
scanf
) maka nilai yang lama akan diganti (dan
hilang)
Membaca variabel dari memori tidak akan mengubah nilainya
Representasi visual:
Konsep Memori [2]
integer1
45
integer2
72
integer1
45
integer2
72
Aritmatika [1]
Perhitungan Aritmatika
Gunakan * untuk perkalian dan / untuk pembagian Pembagian bilangan bulat membuang sisa pembagian
7 / 5 dievaluasi menjadi 1
Operator Modulus (%) menghasilkan sisa pembagian
7 % 5 dievaluasi menjadi 2
Operator precedence
Beberapa operator aritmatika lebih diprioritaskan (dihitung lebih dahulu)
dibandingkan operator lainnya (misalkan perkalian dan pembagian didahulukan dibandingkan penjumlahan dan pengurangan)
Gunakan tanda kurung jika diperlukan
Contoh: Hitung nilai rata-rata dari variabel-variabel a, b and c
C operation Arithmetic operator Algebraic expression C expression
Addition + f + 7 f + 7
Subtraction - p – c p - c
Multiplication * bm b * m
Division / x / y x / y
Modulus % r mod s r % s
Aritmatika [2]
Operator-operator aritmatika:
Aturan
precedence
operator:
Operator(s) Operation(s) Order of evaluation (precedence)
() Parentheses Evaluated first. If the parentheses are nested, the expression in the innermost pair is
evaluated first. If there are several pairs of parentheses “on the same level” (i.e., not
Aritmatika [3]
St ep 1. y = 2 * 5 * 5 + 3 * 5 + 7;
St ep 2. y = 10 * 5 + 3 * 5 + 7;
St ep 3. y = 50 + 3 * 5 + 7;
St ep 4. y = 50 + 15 + 7;
St ep 5. y = 65 + 7;
2 * 5 is 10
10 * 5 is 50
3 * 5 is 15
50 + 15 is 65
65 + 7 is 72
(Left m ost mult ip lic at ion)
(Left m ost mult ip lic at ion)
(Mult ip lic at ion bef ore ad dition)
(Left m ost ad dit ion)
Pengambilan Keputusan: Persamaan
dan Operator Relasional [1]
Eksekusi statement
Menghasilkan aksi-aksi (penghitungan, input/output data) Menghasilkan keputusan
Ingin menampilkan “lulus" or “gagal" berdasarkan suatu syarat
nilai tertentu
if control statement
Versi sederhana dahulu, lebih detail kemudian
Jika suatu kondisi true, maka body statement if dieksekusi
0 adalah false, non-zero adalah true
Pengambilan Keputusan: Persamaan
dan Operator Relasional [2]
Standard algebraic equality
operator or relational operator
C equality or relational operator
Example of C condition
Meaning of C condition
Equality Operators
= == x == y x is equal to y
!= x != y x is not equal to y
Relational Operators
> > x > y x is greater than y
< < x < y x is less than y
>= >= x >= y x is greater than or equal to y
25 if ( num1 < num2 ) {
Enter two integers, and I will tell you the relationships they satisfy: 3 7
3 is not equal to 7 3 is less than 7
3 is less than or equal to 7
Enter two integers, and I will tell you the relationships they satisfy: 22 12 22 is not equal to 12
22 is greater than 12
22 is greater than or equal to 12
Enter two integers, and I will tell you the relationships they satisfy: 7 7
7 is equal to 7
7 is less than or equal to 7 7 is greater than or equal to 7
Pengambilan Keputusan: Persamaan
dan Operator Relasional [3]
Operators Associativity
* / % left to right
+ - left to right
< <= > >= left to right
== != left to right
= right to left
Pengambilan Keputusan: Persamaan
dan Operator Relasional [4]
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
Algoritma dan
Pseudocode
Algoritma: urutan langkah-langkah yang dapat
digunakan untuk memecahkan suatu masalah
Pseudocode
:
Bahasa buatan yang bersifat informal yang dapat
membantu untuk mengembangkan algoritma
Serupa dengan bahasa sehari-hari