Laboratorium Pemrograman C
I Wayan Sudiarta, Ph.D
10 Februari 2012
ii
Daftar Isi
1 Lab 0: Cara Menggunakan Cygwin dan Compile Code C++
dengan g++ 1
1.1 Cygwin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Lab 1: Pengenalan Bahasa C 3
2.1 Penulisan Kode C . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Modikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Lab 2: Pengenalan Variabel dan Operasi Matematis . . . . . . 5
2.3.1 Deklarasi Variabel . . . . . . . . . . . . . . . . . . . . 5
2.3.2 Kesalahan Penulisan Variabel . . . . . . . . . . . . . . 5
2.3.3 Tipe Data Variabel . . . . . . . . . . . . . . . . . . . . 6
2.3.4 Scanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Lab 3: Pengenalan dene dan math.h 9
3.1 Dene dan const . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 math.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 Latihan-latihan . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 Lab 4: Pengenalan for, while dan do while 11
4.1 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 do-while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 Lab 5: Pengenalan if, else dan switch 15
5.1 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.2 if else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.3 if else berantai . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.4 ()?:: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.5 switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
iv Daftar Isi
6 Lab 6: Pengenalan Fungsi dan Array 19
6.1 Fungsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2 Pengenalan Array . . . . . . . . . . . . . . . . . . . . . . . . . 20
7 Lab 7: Pengenalan Pointer 21
7.1 Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.2 Pengenalan Operasi Pada Pointer . . . . . . . . . . . . . . . . 22
7.3 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
8 Lab 1: Pengenalan Bahasa C++ 25
8.1 Penulisan Kode C++ . . . . . . . . . . . . . . . . . . . . . . . 25
8.2 Modikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
9 Lab 2: Pengenalan Variabel dan Operasi Matematis 27
9.1 Deklarasi Variabel . . . . . . . . . . . . . . . . . . . . . . . . 27
9.2 Kesalahan Penulisan Variabel . . . . . . . . . . . . . . . . . . 28
9.3 Tipe Data Variable . . . . . . . . . . . . . . . . . . . . . . . . 28
10 Lab 3: Pengenalan Dene dan cmath 29
10.1 Dene dan const . . . . . . . . . . . . . . . . . . . . . . . . . 29
10.2 cmath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
10.3 Latihan-latihan . . . . . . . . . . . . . . . . . . . . . . . . . . 30
11 Lab 4: Pengenalan Fungsi dan Array 31
11.1 Fungsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
11.2 Pengenalan Array . . . . . . . . . . . . . . . . . . . . . . . . . 32
12 Lab 5: Pengenalan Pointer 33
12.1 Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
12.2 Pengenalan Operasi Pada Pointer . . . . . . . . . . . . . . . . 34
12.3 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
13 Lab 6: Pengenalan Character dan String 37
13.1 Character . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
13.2 String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
13.3 getline() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
14 Lab 7: Pengenalan Object Oriented Programming (OOP)
dengan Class 41
14.1 Struct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
14.2 Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
14.3 Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Daftar Isi v
15 Lab 8: Menggunakan Make 47
16 Lab 9: Pengenalan Library GSL 53
16.1 Contoh GSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
17 Lab 10: Pengenalan Memori 55
17.1 New atau New [] . . . . . . . . . . . . . . . . . . . . . . . . . 55
vi Daftar Isi
Bab 1
Lab 0: Cara Menggunakan
Cygwin dan Compile Code
C++ dengan g++
1.1 Cygwin
Setelah cygwin diinstall, sekarang kita bisa menjalankan cygwin terminal/shell.
Shell ini sama fungsinya dengan shell yang ada di Unix atau Linux. Cygwin
shell bisa di jalankan dengan mengklik shortcut yang ada di start menu atau
di Desktop, seperti pada gambar berikut ini.
Setelah itu akan ditampilkan Cygwin shell seperti contoh di bawah ini.
Shell ini hampir sama dengan shell yang ada di linux. Hampir semua perintah-
perintah yang ada di linux bisa dilakukan di cygwin. Jadi kita bisa belajar
perintah-perintah yang ada di Linux dengan menggunakan Cygwin. Seperti
contoh perintah-perintah yang ada di dalam gambar di bawah ini.
Dengan cygwin shell ini, kita tidak bisa menjalankan program-program
yang memerlukan X-Windows. Untuk mendapatkan shell dan fasilitas X-
Windows, kita bisa menjalan kan X-Windows dengan mengetik startxwin.sh
di cygwin shell, seperti pada gambar dibawah ini. Kemudian muncul shell
dan X-Windows telah dijalankan.
Setelah itu kita bisa menjalankan program-program yang memerlukan X-
Windows. Contohnya sebuah editor yang bagus bernama nedit. Kita bisa
jalankan nedit dengan ketik nedit di shell seperti gambar diatas. Kemudian
muncul program nedit. Kita bisa membuat program C++ dengan menggu-
nakan nedit.
Setelah source code C++ (sebagai contoh disini hello.cpp) diketik dengan
menggunakan nedit atau texmaker atau wordpad atau notepad, kita bisa
2 Lab 0: Cara Menggunakan Cygwin dan Compile Code C++ dengan g++
kompile dengan g++ di cygwin shell seperti pada gambar. Tentunya kita
harus ke direktori dimana source code itu berada.
Keterangan untuk gambar diatas: 1. Kita kompile source code C++ dari
program hello (hello.cpp) dengan menggunakan g++ dan outputnya (ini
dilakukan dengan -o) adalah hello.exe. 2. Kemudian hello.exe dijalankan.
Hasil program hello.exe adalah Hello World!. 3. Kita bisa mengarahkan out-
put dari hello.exe ke sebuah le bernama results.txt dengan menggunakan >.
4. Kita bisa membaca isi dari le results.txt dengan menggunakan perintah
cat.
Bab 2
Lab 1: Pengenalan Bahasa C
Pada Lab 1 ini kita akan mempelajari tentang bahasa C yang sederhana
terutama tentang bagaimana mengkompilasi dan menjalankan program yang
kita buat. Untuk lebih mengerti proses yang akan dilakukan dalam bahasa
C, mari kita lakukan hal-hal dibawah ini.
2.1 Penulisan Kode C
Dengan menggunakan notepad atau notepad++ atau nedit ketik beber-
apa baris kode c berikut ini.
1
2 / t u l i s komentar tentang kode anda d i s i n i /
3
4 #i ncl ude <s t di o . h>
5
6 i nt main ( )
7 {
8 pr i nt f ( Hel l o C++ \n ) ;
9 pr i nt f ( Saya bi s a membuat program dengan C ) ;
10
11 r et ur n 0 ;
12 }
Setelah selesai mengetik kode di atas, kemudian simpan kode tersebut ke
le dengan nama dan ekstensi .c. Sebagai contoh kita beri nama helo.c.
Kemudian jalankan program cygwin dan ketik cd nama/folder/lokasi/file/cpp
untuk pindah ke folder tempat le yang telah kita telah buat berada.
Kemudian kita kompilasi kode tersebut dengan salah satu perintah berikut
ini:
4 Lab 1: Pengenalan Bahasa C
$ gcc namafile.c
$ gcc namafile.c -o namafile.exe
Ingat tanda $ tidak diketik melainkan hanya menunjukkan baris perintah
yang ada pada cygwin atau command prompt.
2.2 Modikasi
Langkah selanjutnya adalah mengubah program sederhana di atas, dengan
menambahkan beberapa baris perintah. Cobalah tambahkan baris ini satu
per satu dan lihat apa yang dihasilkan dilayar setelah program kompilasi dan
dieksekusi.
printf(" ini tab a\t b \t c");
printf(" ini baris baru a\n b \n c \n");
printf(" ini garis miring \\ \" ");
Cobalah modikasi apa saja yang anda ingin tampilkan pada layar.
Lab 2: Pengenalan Variabel dan Operasi Matematis 5
2.3 Lab 2: Pengenalan Variabel dan Operasi
Matematis
2.3.1 Deklarasi Variabel
Dengan menggunakan notepad atau notepad++ atau nedit ketik beber-
apa baris kode c++ berikut ini.
1
2 / t u l i s komentar tentang kode anda d i s i n i /
3
4 #i ncl ude <s t di o . h>
5
6 i nt main ( )
7 {
8 i nt a , b = 3 , c = 2 ;
9
10 pr i nt f ( n i l a i a = %d \n , a ) ;
11 pr i nt f ( n i l a i b = %d \n , b) ;
12 pr i nt f ( n i l a i c = %d \n , c ) ;
13
14 a = b + c ;
15
16 pr i nt f ( n i l a i a = %d \n , a ) ;
17
18 r et ur n 0 ;
19 }
Berapakah nilai a, b dan c?
2.3.2 Kesalahan Penulisan Variabel
Tambahkan kode berikut ini pada kode di atas dan catat apa kesalahan yang
muncul pada waktu kita kompilasi kode.
1
2 i nt 2 apel ;
3 l ong banyak ! ;
4 doubl e des i mal ;
5 doubl e de s i mal ;
6 doubl e DESI mal ;
6 Lab 1: Pengenalan Bahasa C
2.3.3 Tipe Data Variabel
Dengan menggunakan notepad atau notepad++ atau nedit ketik beber-
apa baris kode c++ berikut ini.
1
2 / t u l i s komentar tentang kode anda d i s i n i /
3
4 #i ncl ude <s t di o . h>
5
6 i nt main ( )
7 {
8 i nt a = 2 , b = 3 , c , d ;
9 f l o a t p = 2 , q = 3 , r ;
10
11 c = a/b ;
12 r = p/q ;
13 a = i + j ;
14 b = i %4;
15
16 pr i nt f ( Bar i s 1 : n i l a i c = %d \n , c ) ;
17 pr i nt f ( Bar i s 2 : n i l a i r = %d \n , r ) ;
18 pr i nt f ( Bar i s 3 : n i l a i r = %f \n , r ) ;
19 pr i nt f ( Bar i s 4 : n i l a i b = %d , b) ;
20
21 r et ur n 0 ;
22 }
Berapakah nilai c (Baris 1) dan r (Baris 2 dan 3)? Apa yang ditampilkan
pada layar ketika kita kompilasi? dan ketika program dieksekusi? Mengapa
nilai c tidak sama dengan r? Mengapa keluaran Baris 2 tidak sama dengan
Baris 3?
2.3.4 Scanf
Dengan menggunakan notepad atau notepad++ atau nedit ketik beber-
apa baris kode c++ berikut ini dan perhatikan baris scanf.
1
2 / t u l i s komentar tentang kode anda d i s i n i /
3
4 #i ncl ude <s t di o . h>
5
6 i nt main ( )
7 {
8 f l o a t x , y ;
9
Lab 2: Pengenalan Variabel dan Operasi Matematis 7
10 pr i nt f ( Masukkan n i l a i x : \ n ) ;
11 s c anf ( %f ,&x) ;
12
13 pr i nt f ( Ni l a i yang Anda masukkan adal ah %f \n , x) ;
14
15 pr i nt f ( Masukkan dua n i l a i x dan y : \ n ) ;
16 s c anf ( %f %f ,&x , &y) ;
17
18 pr i nt f ( Ni l a i yang Anda masukkan adal ah %f dan %f \n , x , y) ;
19 pr i nt f ( Per kal i an antara x dan y menghasi l kan %f \n , xy) ;
20
21 r et ur n 0 ;
22 }
Perhatikan baris yang mengadung fungsi scanf. Mengapa kita menggu-
nakan simbol &? Apa yang terjadi jika tanda format %f diganti dengan %d
pada fungsi scanf? Mengapa hasil yang dilihat pada layar berbeda dengan
apa yang dimasukkan?
8 Lab 1: Pengenalan Bahasa C
Bab 3
Lab 3: Pengenalan dene dan
math.h
3.1 Dene dan const
Dengan menggunakan notepad atau notepad++ atau nedit ketik beber-
apa baris kode c++ berikut ini.
1
2 / t u l i s komentar tentang kode anda d i s i n i /
3
4 #i ncl ude <s t di o . h>
5
6 #de f i ne pi 1 3. 14159
7
8 i nt main ( )
9 {
10 cons t f l o a t pi 2 = 3. 14159;
11
12 pr i nt f ( n i l a i pi 1 = %f \n , pi 1 ) ;
13 pr i nt f ( n i l a i pi 2 = %f \n , pi 2 ) ;
14
15 r et ur n 0 ;
16 }
Apa perbedaan pi1 dan pi2?
10 Lab 3: Pengenalan dene dan math.h
3.2 math.h
Dengan menggunakan notepad atau notepad++ atau nedit ketik beber-
apa baris kode c++ berikut ini.
1
2 / t u l i s komentar tentang kode anda d i s i n i /
3
4 #i ncl ude <s t di o . h>
5 #i ncl ude <math . h>
6
7 #de f i ne pi 3. 14159
8
9 us i ng namespace s t d ;
10
11 i nt main ( )
12 {
13 f l o a t sudut = 38; // dalam de r a j a t
14
15 pr i nt f ( s i n(%f ) = %f \n , s i n ( pi sudut /180. 0) ) ;
16 pr i nt f ( cos(%f ) = %f \n , cos ( pi sudut /180. 0) ) ;
17
18 r et ur n 0 ;
19 }
Berapa nilai sin(38) dan cos(38)?
Tambahkan fungsi-fungsi matematis lainnya.
3.3 Latihan-latihan
1. Buatlah program untuk mengkonversi sebuah nilai temperature dalam
derajat Celcius (TC) ke derajat Fahrenheit (TF ). Gunakan rumus
T
F
=
9
5
T
C
+ 32 (3.1)
. Disini input program adalah TC dan output program adalah TF .
2. Buatlah program yang diberikan input tiga bilangan (x, y dan z) dan
hitung nilai rata-rata bilangan-bilangan ini dengan dua rumus: s =
(x + y + z) = 3 dan p =
3