Supardi, M.Si
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
PRAKTIKUM 1
2
STRUKTUR PROGRAM C
Setiap program C terdiri atas satu atau beberapa modul yang disebut function. Salah satu fungsi yang harus dipanggil adalah main. Setiap program C akan selalu diawali dengan mengeksekusi function main() tersebut. Functionyang lain harus didefinisikan secara terpisah, bisa diatas atau sesudah main() ( hal ini akan dibahas pada praktikum berikutnya). Setiap fungsi harus terditi atas: 1. Function heading, yang terdiri atas function name diikuti list argumen yang bersifat opsional di dalam kurung. 2. List argumen yang dideklarasikan 3. Compound statement. Setiap compound statement dibatasi oleh tanda kurun { }. Sedangkan komentar dapat muncul di mana saja yang bisa dibatas dengan tanda /* .....*/. Komentar juga bisa diberi tanda double slash (//) jika komentar hanya satu baris saja. Contoh Program dibawah ini akan menghitung luasn dari sebuah lingkaran. /* Program menghitung luas lingkaran*/
//Judul program
#include <stdio.h>
//mengakses pustaka file
#include
main()
//heading fungsi
{ float radius,pi,luas;
// deklarasi variabel
1
Supardi, M.Si
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
pi=3.14; printf("Masukkan radius lingkaran :");
// pernyataan output
scanf("%f",&radius);
// pernyataan input
luas=pi*radius*radius;
//pernyataan penugasan
printf("Area lingkaran adalah :%f",luas);
//pernyataan output
} Bagian komentar adalah bagian yang diabaikan sat program dicompile. Jadi contoh program 1.1 di atas dapat dihilangkan bagian komentarnya.
#include <stdio.h> #include main() { float radius,pi,luas; pi=3.14; printf("Masukkan radius lingkaran :"); scanf("%f",&radius); luas=pi*radius*radius; printf("Area lingkaran adalah :%f",luas); } Latihan. 1.1 Buatlah program untuk memperoleh luas dan keliling dari sebuah persegi panjang. Langkah-langkahnya antara lain: 1. Includekan pustaka file yang akan digunakan
2
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
Supardi, M.Si
2. Sertakan fungsi heading 3. Deklarasikan variabel yang digunakan 4. Berikan masukkan variabel pi, panjang dan lebar. 5. Tentukan luas dan keliling persegi panjang. 6. Tampilkan hasilnya. Latihan 1.2 Buatlah program komputer untuk menghitung luas permukan dan volume dari sebuah bola, jika diketahui luas dan volume bola adalah 4 3 A=4 r 2 dan V = r 3 Latihan 1.3 Kita juga dapat menyatakan contoh 1.2 dengan program seperti di bawah ini /* Program menghitung luas lingkaran*/ //Judul program #include <stdio.h> #include float proses (float r); main() { float radius,luas; printf("Masukkan radius lingkaran :"); scanf("%f",&radius); luas=proses(radius); printf("Area lingkaran adalah :%f",luas); } float proses (float r) { float pi,A; pi=3.14; A=pi*r*r; return A; } 3
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
Supardi, M.Si
Latihan 1.4 Buatlah program untuk menghitung luas dan keliling persegi panjang dengan menggunakan fungsi terpisah seperti pada contoh program 1.3.
4
Supardi, M.Si
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
PRAKTIKUM 2 DASAR-DASAR C Praktikum dasar-dasar C ini akan membahas tentang elemen-elemen dasar yang menyusun program C, meliputi sekelompok karakter, identifier dan keyword, tipe data, konstanta, variabel dan larik, deklarasi, ekspresi dan pernyataan.
2.1 Karakter Khusus C C menggunakan huruf kapital (A-Z), hurufkecil (a-z), angka (0-9) dan beberapa karakter khusus dalam pembuatan elemen-elemen dasar program seperti variabel, konstanta, operator, ekspresi dan lainnya. Di bawah adalah karakter khusus yang dimaksudkan +
-
*
/
-
%
&
#
!
?
^
“
'
~
\
|
<
>
(
)
{
}
[
]
:
;
.
,
_
(blank space)
Gambar 2.1 Karakter khusus C
2.2 Identifier dan Keyword Identifier adalah nama-nama yang diberikan pada elemen program C, misalnya konstanta, variabel, fungsi dan larik. Ada beberapa ketentuan untuk membuat identifier antara lain: 1. Identifier tidak boleh diawali dengan angka, misalnya 2abc, 45y, 3ok43 5
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
Supardi, M.Si
2. Identifier dapat merupakan kombinasi antara huruf dan angka, misalnya ok45, ok45ok, abc432 dsb 3. Identifier tidak boleh menggunakan karakter khusus C, misalnya %, #, - , +, = , dsb. Misalnya %ok, net-cost, %x, ”sign” dsb. 4. Disarankan pembuatan identifier tidak melebihi 8 karakter. Hal ini untuk mengantisipasi jika kompiler hanya mengenali 8 karakter pertama identifier. Ada beberapa kata cadangan (reserved word) yang disebut pula keyword yang dimiliki oleh C yang tidak dapat digunakan untuk memberikan nama identifier. Beberapa kata cadangan tersebut antara lain: auto
extern
sizeof
break
float
static
case
for
struct
char
goto
switch
const
if
typedef
continue
int
union
default
long
unsigned
do
register
void
double
return
volatile
else
short
while
enum
signed
2.3 Tipe Data Bahasa C mensupport beberapa tipe data yang masing-masing didefinisikan berbeda di dalam komputer. Memori yang diperlukan untuk menyimpan tiap tipe
6
Supardi, M.Si
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
data juga tidak sama. Di bawah ini diberikan beberapa tipe data tersebut TABEL 2.1 Tabel tipe data standar dalam C No
Tipe data
Deskripsi
Memori yang dibutuhkan
1
int
Bilangan integer
2 byte
2
char
Karakter tunggal
1 byte
3
float
Floating-point number (bilangan yang mengandung desimal dan/atau eksponen
4 byte
4
double
Double precission floating point number (bilangan floating point dengan presisi ganda)
8 byte
2.4 Konstanta Ada empat jenis konstanta dasar dalam C, yaitu konstanta integer, floatingpoint, karakter dan string. Konstanta integer dan floating-point menyatakan bilangan. Keduanya sering disebut sebagai konstanta berjenis bilanga. Berikut ini adalah aturan yang berlaku untuk konstanta berjenis bilangan: 1. koma dan blank space (spasi kosong) tidak termasuk dalam konstanta berjenis ini. 2. Konstanta dapat diberikan tanda minus (-) di depannya jika diperlukan. Tanda minus adalah operator yang mengubah tanda konstanta positif.
2.4.1 Konstanta Integer Konstanta integer adalah bilangan berjenis bilangan bulat. Jadi konstanta ini
7
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
Supardi, M.Si
tersusun dari deretan angka. Konstanta integer dapat ditulis dalam tiga cara, yaitu desimal (basis 10), oktal (basis 8) dan heksadisimal (basis 16). Konstanta integer desimal tersusun atas angka dari 0 hingga 9. Jika sebuah bilangan terdiri dua digit atau lebih, maka digit pertama tidak boleh sama dengan 0. Contoh. 2.1 Beberapa bilangan konstanta integer di bawah ini adalah benar 0
3
23
1045
304567
Berikut ini penulissan bilangan konstanta integer yang salah 3,456
menggunakan karakter koma (,)
334.0
menggunakan karakter titik (.)
10 34 33
menggunakan blank space
123-45-673
menggunakan karakter dash (-)
08232
digir pertama nol.
Bilangan konstanta integer oktal tersusun atas bilangan dari 0 hingga 7. Digit pertama bilangan oktal harus diawali 0. Contoh 2.2 Beberapa bilangan konstanta integer oktal di bawah ini adalah benar 0
0123
045
077777
Berikut ini penulissan bilangan konstanta integer oktal yang salah 523
digit pertama bukan nol
01293
ada bilangan 9
0777.777
menggunakan karakter titik (.)
8
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
Supardi, M.Si
Bilangan konstanta integer heksadesimal harus dimulai dengan 0x atau 0X. Setelah bilangannya merupakan kombinasi antara angka dari 0 hingga 9 dan huruf a (A) hingga f (atau F). Huruf A (atau a) hingga F(atau a) mewakili angka 10 hingga 15. Contoh 2.2 Beberapa bilangan konstanta integer heksadesimal di bawah ini adalah benar 0x
0x1
0X7FFF
0xabcd
Berikut ini penulissan bilangan konstanta integer oktal yang salah 0X523.32
menggunakan karakter titik (.)
0234F
tidak diwali dengan 0X atau 0x
0X777G
menggunakan huruf G
2.4.2 Kontanta Floating-point Konstanta floating point adalah bilangan berbasis 10 yang mengandung angka desimal atau eksponen atau keduanya. Contoh 2.4 Beberapa bilangan konstanta integer oktal di bawah ini adalah benar 0.
1.
0.2
827.602
50000.
0.000743
12.3
31 5.0066
2 E-8
0.006e-3
1.6667E+8
.12121212e12
Berikut ini penulissan bilangan konstanta integer oktal yang salah 12
angka desimal atau eksponen harus ada
12,33.0
menggunakan karakter ilegal koma (,)
5e12.9
menggunakan karakter ilegal titik pada bag eksponen(.) 9
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
3E 14
Supardi, M.Si
mengganakan blank space
2.4.3 Konstanta karakter Konstanta karakter karakter tunggal yang diapit oleh tanda petik tunggal ('). Contoh 2.5 Beberapa bilangan konstanta karakter di bawah ini adalah benar 'q'
'3'
'?'
' '
2.5 Escape Squences Karakter nonprinting backslash (\) atau tanda petik (') dapat dinyatakan dengan escape sequences. Escape squences selalu diawali dengan backslash (\) diikuti dengan karakter khusus tertentu. Sebagai contoh untuk berganti baris dinyatakan dengan escape squences \n. Dibawah ini diberikan beberapa escape squences yang pada C, antara lain karakter bell (alert) backspace horizontal tab vertical tab newline (line feed) form feed carriage return quotation mark (") apostrophe (') question mark (?) backslash (\) null
escape squences \a \b \t \v \n \f \r \” \' \? \\ \0
10
Supardi, M.Si
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
2.6 Konstanta String Konstanta string tersusun oleh rangkaian karakter dan diapit oleh tanda petik ganda (“). Sebagai contoh, "green"
"Washington, D.C. 20005H "
"$19.95"
"THE CORRECT ANSWER IS:” “'2* ( I+3)/J "
“
"Line l\nLine 2\nLine 3”
“
“270-32-3456"
““
2.7 Variabel dan Array Variabel adalah identifier yang digunakan untuk menyatakan tipe tertentu informasi yang digunakan dalam program. Dalam C, variabel harus dideklarasikan sebelum digunakan. Jika tidak, maka tentu akan tampil pesan kesalahan. Contoh potongan program C dengan deklarasi variabel adalah i n t a, b, c; char d; ... a = 3; b = 5; c=a+b; d =' a' ; a = 4; b = 2; c=a-b; d='W';
2.8 Ekspresi Ekspresi menyatakan single data item, seperti bilangan atau karakter. Ekspresi dapat tersusun atas entitas tunggal seperti sebuah konstanta, variabel, satu elemen 11
Supardi, M.Si
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
larik atau reference ke fungsi. Dapat juga merupakan kombinasi dari entitas yang dihubungkan dengan operator. a+b x=y c=a+b x <= y x == Y ++i
TUGAS 1. Determine which of the following are valid identifiers. If invalid, explain why. (a) record1
(d) $tax
(g) name-and-address
(b) l r e c o r d
e) name
(h) name-and-address
(c) f i l e - 3
(f) name and address
(i) 123-45 -6789
(j) return 2. Assume that your version of C can recognize only the first 8 characters of an identifier name, though identifier names may be arbitrarily long. Which of the following pairs of identifier names are considered to be identical and which are distinct? (a) name, names
(d) l i s t l , l i s t 2
(b) address, Address
(e) answer, ANSWER
(c) i d e n t i f ier-1 , i d e n t i f ier-2
f) charl, char_1
3. Determine which of the following numerical values are valid constants. If a constant is valid, specify whether it is integer or real. Also, specify the base for each valid integer constant. 12
Supardi, M.Si
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
a) 0.5
e) 0515
i) 9.3e-12
b) 12345678
f) 018CDF
j) 0.8E 8
c) 27,822
g) 9.3e12
k) 0XBCFDAL
d) 12345678L
h) 0.8E+0.8
l) 0x87e3ha
4. Determine which of the following are valid character constants. (a) ' a '
(f) ' / n '
(b) " \ \ "
(g) ' \ n '
(c) ' $ '
(h) ' T '
(d) ' \ a '
(i) ' \052"
(e) ' xyz ' 5. Determine which of the following are valid string constants. (a) '8:15 P.M.' (b) "1.3e-12" (c) "Red, White and Blue" (d) "NEW YORK, NY 10020" (e) "Name: (f) "The professor said, "Please don't sleep i n class" (g) "Chap. 3 ( C o n t \ ' d ) "
6. Write appropriate declarations for each group of variables and arrays. (a) Integer variables: p, q Floating-point variables: x , y , z Character variables: a, by c (b) Floating-point variables: root 1 , root2
13
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
Supardi, M.Si
Long integer variable: counter Short integer variable: f l a g (c) Integer variable: index Double-precision variables: gross, tax, net Character variables: current, l a s t Floating-point variable: error Character variables: f i r s t , l a s t 7. Write appropriate declarations and assign the given initial values for each group of variables and arrays. (a) Floating-point variables: a =-8.2, b = 0.005 (b) Integer variables: x = 129, y = 87, z=-22 (c) Character variables: c l = ' w' , c2 = '?' (d) Double-precision variables: dl = 2.88 x 10-8, d2 =-8.4 x 105 (e) Integer variables: U =7 11(octal), v = f f f f (hexadecimal) (f) Long integer variable: big = 123456789 (g) Double-precision variable: c = 0.3333333333 (h) Character variable: eol =newline character
8. Identify whether each of the following statements is an expression statement, a compound statement or a control statement. (a) a * (b + c); (b) while (a < 100) { d = a * (b + c ) ;
14
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
Supardi, M.Si
++a; }
15
Supardi, M.Si
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
PRAKTIKUM 3 OPERATOR DAN EKSPRESI Pada praktikum yang ketiga ini, kita masih membahas mengenai dasar-dasar C terutama untuk bagian operator dan ekspresi. Berikut ini adalah tugas praktikum yang harus Saudara kerjakan dan dilaporkan pada minggu depan 1. Suppose a, b and c are integer variables that have been assigned the values a = 8, b = 3 and c =-5. Determine the value of each of the following arithmetic expressions. (a) a + b + c
(f) a * (b / c)
(b) a % c
(g) a % b
(c) 2 * b + 3 * ( a - c )
(h) (a * c) % b
(d) a * b / c
(i) a / c
(e) a / b
(j) a * (c % b)
2. Suppose x, y and z are floating-point variables that have been assigned the values x = 8.8, y = 3.5 and z = -5.2. Determine the value of each of the following arithmetic expressions. (a) x + y + z
(e) x/(y+z)
(b) 2 * y + 3 * ( x - z )
(f) (x/y)+z
(c) x/y
(g) 2*x/3*y
(d) x % y
(h) 2*x/(3*y)
3. Suppose cl, c2 and c3 are character-type variables that have been assigned the characters E, 5 and ?, respectively. Determine the numerical value of the following expressions, based upon the ASCII character set (see Table 2-1). (a) c l
(b) c l % c3 16
Supardi, M.Si
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
(c) c l - c2 + c3
(g) c2 - ' 2 '
(d) ' 2 ' + ' 2 '
(h) 3 * c2
(e) c2 - 2
(i) '3' * c2
(f) c l / c2) * c3 4. A C program contains the following declarations: int i,j; long ix ; short s; float x; double dx; char c; Determine the data type of each of the following expressions. (a) i+ c
(f) dx + x
(b) s + j
(g) s + c
(c) x + c
(h) ( ( i n t ) dx) + ix
(d) ix + j
(i) ix + c
(e) i + x
5. A C program contains the following declarations and initial assignments: int i= 8, j = 5; float x = 0.005, y = -0.01; char c = ' c ' , d = ' d ' ; Determine the value of each of the following expressions. Use the values initially assigned to the variables for each expression.
17
Supardi, M.Si
Praktikum Pemrograman Komputer Jurusan Pendidikan Fisika
(a) ( 3 * i - 2 * j ) % ( 2 * d - c )
(i) y--
(b) 2 * ( ( i / 5) + (4 * ( j - 3)) % ( i +
(j) i<= j
j – 2)) (c) ( i - 3 * j ) % ( c + 2 * d ) / ( x y)
(k) c > d (l) x >= 0 (m)
x
(d) -(i + j )
(n) j != 6
(e) ++i
(o) c == 99
(f) i++
(p) 5 * (i + j ) > ' c '
(g) --j
(q) ( 2 * x + y) == 0
(h) ++x
18