Anda di halaman 1dari 45

i

MODUL PRAKTIKUM DASAR – DASAR PEMROGRAMAN


Tim Penyusun : Arsya Rifqi

Modul ini dicetak untuk panduan praktikum.


Dicetak Oktober, 2020 oleh Laboratorium Teknik Informatika FT UMJ

Laboratorium Teknik Informatika


Program Studi Teknik Informatika, Fakultas Teknik, Universitas Muhammadiyah Jakarta
Jalan Cempaka Putih Tengah 27, Jakarta 10510
Telepon: (021)70329963
Website: http://if.umj.ac.id/laboratorium/
Email: lab.informatika@ftumj.ac.id

ii
LEMBAR PENGESAHAN
MODUL PRAKTIKUM DASAR – DASAR PEMROGRAMAN

Telah disetujui dan disahkan sebagai


Modul kuliah praktikum Dasar – Dasar Pemrograman

Disahkan di : Jakarta
Pada Tanggal : Oktober 2020

Menyetujui,
Kepala Laboratorium Program Studi Teknik Informatika
Fakultas Teknik Universitas Muhammadiyah Jakarta

Sitti Nurbaya Ambo, MMSI


NIDN: 0307067901

Mengesahkan,
Ketua Program Studi Teknik Informatika
Fakultas Teknik Universitas Muhammadiyah Jakarta

Popy Meilina, M.Kom


NIDN: 0305057901

iii
KATA PENGANTAR
Assalamua’alaikum wr. wb.
Bismillahirrohmanirrohiim

Dengan segala doa dan harapan, modul praktikum Dasar – Dasar Pemrograman ini
diharapkan dapat menjadi panduan yang baik dan jelas bagi siapapun yang membacanya.
Modul ini akan digunakan dalam proses belajar praktikum Dasar – Dasar Pemrograman.

Tahun ini, Laboratorium Teknik Informatika FT-UMJ bekerja sama dengan dosen pengampu
mata kuliah Dasar – Dasar Pemrograman berusaha untuk menyelaraskan pelaksanaan
praktikum dengan pelaksanaan kuliah di kelas. Dengan usaha tersebut kami berharap
penyerapan materi Dasar – Dasar Pemrograman oleh para mahasiswa dapat lebih efektif,
sehingga pada akhir semester hasil evaluasi belajar mahasiswa dapat lebih meningkat
dibandingkan dengan tahun-tahun yang lalu.

Sebagai penutup, saya ucapkan banyak-banyak terima kasih kepada semua pihak yang telah
membantu terselesaikannya modul ini, dosen-dosen pengampu mata kuliah Dasar – Dasar
Pemrograman, serta tim penyusun modul Laboratorium Teknik Informatika FT-UMJ atas
seluruh dedikasi yang diberikan kepada Lab tercinta.

Terima kasih sebelumnya kami sampaikan kepada para pembaca modul ini, semoga ilmu
yang telah dipelajari dapat bermanfaat dan semakin berkembang di tangan anda semua.

Wassalamu’alaikum wr. wb.


Jakarta, Oktober 2020
Laboratorium Teknik Informatika FT-UMJ,

Tim Penyusun

iv
DAFTAR ISI

MODUL 1 PENGENALAN BAHASA C DAN FUNGSI-FUNGSI PUSTAKA..................... 1

1.1 Pengenalan Bahasa C ................................................................................................... 1

1.2 Identifier (Pengenal) .................................................................................................... 1

1.2.1 Variabel........................................................................................................................ 1

1.2.2 Sensitivitas Huruf (Case Sensitivity) ........................................................................... 2

1.2.3 Komentar (White Spase) .............................................................................................. 2

1.2.4 Struktur Bahasa Pemrograman C................................................................................. 2

1.2.5 Tipe data ...................................................................................................................... 3

1.2.6 Konstanta ..................................................................................................................... 4

1.2.7 Operator ....................................................................................................................... 5

a. Operator Aritmatika ..................................................................................................... 5

b. Operator Unary ............................................................................................................ 6

c. Operator Koma ............................................................................................................ 7

d. Operator Pengerjaan .................................................................................................... 7

e. Operator Hubungan ..................................................................................................... 7

f. Operator Bitwise .......................................................................................................... 7

1.2.8 Perintah Keluaran ........................................................................................................ 8

1.2.9 Perintah Masukkan ...................................................................................................... 9

a. Terformat ..................................................................................................................... 9

b. Tidak Terformat ........................................................................................................... 9

MODUL 2 STATEMENT KONDISI ...................................................................................... 10

2.1 Statement ................................................................................................................... 10

v
2.2 Operasi ....................................................................................................................... 10

2.2.1 Pernyataan if .............................................................................................................. 10

2.2.2 Pernyataan if – else .................................................................................................... 11

2.2.3 Pernyataan Nested if .................................................................................................. 11

2.2.4 Pernyataan switch – case ........................................................................................... 12

2.2.5 Conditional Expresion ( Operator ? ) ........................................................................ 14

MODUL 3 STATEMENT PERULANGAN ........................................................................... 15

3.1 Perulangan Berhingga (Counter Controller Repetition)............................................ 15

3.2 Perulangan Tak Berhingga (Sentinel Controller repetition) ..................................... 16

3.2.1 Pernyataan while ........................................................................................................ 16

3.2.2 Pernyataan do-while................................................................................................... 16

3.2.3 Pernyataan goto ......................................................................................................... 17

3.2.4 Pernyataan break........................................................................................................ 18

3.2.5 Pernyataan continue ................................................................................................... 18

Tugas Akhir Modul 3 ........................................................................................................... 22

MODUL 4 REKURSIF.......................................................................................................... 230

Tugas Akhir Modul 4 ......................................................................................................... 223

MODUL 5 ARRAY ................................................................................................................. 23

5.1 Pengertian Array ........................................................................................................ 23

5.2 Array 1 Dimensi ........................................................................................................ 23

5.3 Array Berdimensi Dua ............................................................................................... 24

Tugas Akhir Modul 5 ........................................................................................................... 33

MODUL 6 BUBBLE SORT DAN INSERTION SORT ......................................................... 26

6.1 Pengertian .................................................................................................................. 26

6.2 Beberapa Macam Teknik Pengurutan ........................................................................ 26

vi
6.3 Bubble Sort ................................................................................................................ 26

Contoh program 2-1 : ........................................................................................................... 28

6.4 Insertion Sort ............................................................................................................. 29

Contoh program 2-2 : ........................................................................................................... 29

Tugas Akhir Modul 6 ........................................................................................................... 30

MODUL 7 PENCARIAN ........................................................................................................ 31

7.1 Pencarian Berurutan................................................................................................... 31

7.2 Pencarian Biner .......................................................................................................... 31

Tugas Akhir Modul 7 ........................................................................................................... 33

MODUL 8 FUNGSI ................................................................................................................ 34

8.1 Pengertian Fungsi ...................................................................................................... 34

8.2 Deklarasi Fungsi ........................................................................................................ 35

8.3 Parameter Fungsi ....................................................................................................... 35

8.4 Mengembalikan Nilai return ...................................................................................... 35

8.5 Jenis Variabel pada Fungsi ........................................................................................ 36

8.5.1 Variabel Lokal ........................................................................................................... 36

8.5.2 Variabel Global .......................................................................................................... 36

Tugas Akhir Modul 8 ......................................................................................................... 337

DAFTAR PUSTAKA .............................................................................................................. 38

vii
MODUL 1 PENGENALAN BAHASA C DAN
FUNGSI-FUNGSI PUSTAKA

1.1 Pengenalan Bahasa C

Bahasa C merupakan hasil pengembangan dari bahasa B yang ditulis oleh Ken
Thompson pada tahun1970 yang akarnya yaitu dari bahasa BCPL yang dikembangkan oleh
Martin Richard pada tahun 1967. sedangkan bahasa C sendiri di tulis oleh Brian W.
Kernighan dan Denies M. Ritchie pada tahun 1972. Bahasa C pada awalnya dioperasikan
pada sistem operasi UNIX.
Bahasa C merupakan bahasa pemrograman tingkat menengah yang berada diantara
bahasa tingkat rendah dan bahsa tingkat tinggi yang biasa disebut dengan bahasa Assambly.
Bahasa C mempunyai banyak kemampuan, diantaranya membuat perangkat lunak seperti
dBASE, Word Star, dan lain-lain. Pada tahun 1980, seorang ahli Bjarne Stroustrup
mengembangkan beberapa hal dari bahasa C yang kemudian dinamakan C with Classes
karena disini lebih berbasis objek. Dan kemudian pada tahun 1983 berganti nama menjadi
++.

1.2 Identifier (Pengenal)


Identifier adalah sebuah nama atau pengenal untuk menamai variabel pada program.
Hal-hal yang harus diperhatikan dalam penulisan identifier adalah :
 mengandung karakter Alpha Numerik (Huruf dan Digit) dan garis bawah
 awali dengan huruf atau garis bawah
 identifier dapat dibuat sepanjang mungkin tetapi hanya 32 karakter pertama yang
tampak
 identifier tertentu dianggap sebagai kata kunci, beberapa diantaranya dengan garis
bawah. Untuk itu sebaiknya hindari memulai identifier dengan garis bawah karena
identifier tidak boleh sama dengan kata kunci (keyword) pada bahasa pemrograman.

1.2.1 Variabel

Penulisan variabel ini diperlukan untuk mengalokasikan sejumlah tempat di memory.


Dalam mendeklarasikan sebuah variabel haruslah disesuaikan dengan tipe datanya. Penulisan
variabel pC yaitu dimulai dengan tipe_data lalu diikuti dengan nama_variabel dan di akhiri
dengan tanda semicolon(;) .

1
Contoh :
int a;
Dari contoh di atas dapat diketahui sebuah variabel "a" dengan tipe data integer(int)
dimana tipe data akan dibahas pada bagian berikutnya.

1.2.2 Sensitivitas Huruf (Case Sensitivity)

Bahasa C sangat membedakan antara huruf kecil dan huruf besar misalnya variabel
HASILtidak sama dengan variabel Hasilatau denganvariabel hasil. Ketiganya merupakan
variabel yang berbeda.

1.2.3 Komentar (White Spase)

Komentar atau White Space adalah bagian yang tidak akan dibaca atau dieksekusi
pada saat kompilasi. Pendeklarasian komentar pada C dapat ditulis seperti berikut ini :
Contoh :
/*kalimat ini tidak akan di eksekusi sampai di temukan tanda berikut */
// hanya baris ini saja yang tidak akan dieksekusi

1.2.4 Struktur Bahasa Pemrograman C

Bahasa C merupakan kumpulan dari fungsi-fungsi dan terstruktur. Fungsi utama atau
badan dari bahasa C adalah main() kemudian diawali dengan kurawal "{" dan diakhiri dengan
kurawal tutup "}". Diantara kurung kurawal tersebut dapat dituliskan statement-statement
program C.
Syntax :
1. #include <header-include-nya>
2. tipe_fungsi main() {
3. statement_1;
4. statement_2;
5. ..
6. ..
7. statement_n;
8.
9. return 0; //nilai kembali. digunakan jika tipe_fungsi_main tidak void
10. }

2
Program-program bagian atau selain fungsi utama dapat dituliskan sesudah fungsi utama
atau diletakkan di file pustaka(library) dengan menggunakan file judul (header file) dengan
menggunakan preprocessor directive #include.
Contoh program 1-1:
1. #include <stdio.h> //stdio.h adalah nama header yang kita gunakan dalam program
ini
2. main() {
3. printf("Hello World\n"); /* printf adalah sintaks cetak Hello World */
4. printf("Ini adalah program pertama kita dengan bahasa C");
5. }

1.2.5 Tipe data


Tipe data beserta penentu formatnya dalam C dapat diklasifikasikan sebagai berikut :

Penentu
Tipe Data Keterangan Ukuran Jangkauan Nilai
Format*

Bilangan Bulat
signed : -32768 s.d. 32767
Short int (short) Short integer 2 bytes
unsigned : 0 s.d. 65535
signed : -2147483648 s.d. 2147483647
Int Integer 4 bytes %d, %i, %u
unsigned : 0 s.d. 4294967295
Long int (long signed : -2147483648 s.d. 2147483647
long integer 4 bytes %ld
integer) unsigned : 0 s.d. 4294967295
Bilangan Pecahan
+/- 3.4E +/-3.8 (5-7 digit) %f, %e(pangkat)
Float floating point 4 bytes %g(desimal &
pangkat)
+/- 1.7E +/- 308 (15-16 digit)
Double kecepatan ganda 8 bytes
+/- 3.4E +/- 4932 (19 digit)
floating point
Long double 10 bytes
kecepatan panjang

Karakter
signed : -128 s.d. 127
Char Karakter 1 byte %c
unsigned : 0 s.d. 255
Boolean
Bool true / false
Penentu Format yang lain

3
Penentu
Tipe Data Keterangan Ukuran Jangkauan Nilai
Format*

String %s
hexadecimal
%x
integer
octal integer %o

Pointer %p
*)Penentu format akan di bahas pada modul berikutnya.

Contoh program 1-2:


1. #include <stdio.h>
2. main() {
3. int a,b,c;
4. printf("a =");
5. scanf(%i",&a); //input nilai a
6. printf("b =");
7. scanf(%i",&b); //input nilai b
8.
9. a+=1; //artinya a=a+1;
10. c=a+b;
11. printf("nilai a setelah ditambah 1 = %i",a);
12. printf("%i + %i = %i",a,b,c); // tampilkan hasil

13. }

%i mengacu pada tipe data variabel a yang bertipe integer. Penentu format ini (pada
contoh %i) disesuaikan dengan tipe data variabelnya, misal %d dan %i untuk tipe data
integer, %f untuk floating point, %c untuk karakter, dan lain sebagainya.

1.2.6 Konstanta
Konstanta adalah suatu nilai yang sifatnya tetap.
Contoh program 1-3:
1. #include <stdio.h>
2. #define a 9
3. const float t=5.5;

4
4. main() {
5. float luasSegitiga;
6. luasSegitiga = a*t/2; //proses rumus Luas Segitiga
7. printf("Alas = %i",a);
8. printf("Tinggi = %f",t);
9.
10. printf("Luas Segitiga = %f", luasSegitiga);

11. }

Konstanta karakter escape merupakan konstanta yang banyak digunakan dalam


menampilkan hasil. Berikut tabel konstanta karakter escape beserta artinya :

Karakter Arti
\a Bunyi bel (speaker komputer)
\b Mundur satu spasi (backspace)
\f Ganti halaman (form feed)
\n Ganti baris baru (new line)
\r Ke kolom pertama baris yang sama (carriage return)
\t Tab horizontal
\v Tab vertical
\0 Nilai kosong (NULL)
\’ Karakter petik tunggal
\” Karakter petik ganda
\\ Garis miring terbalik (backslash)

1.2.7 Operator
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam program untuk
melakukan suatu operasi atau manipulasi, seperti penjumlahan, pengurangan, dan lain-lain.

a. Operator Aritmatika
Operator Arah Proses Jenjang Fungsi
* kiri – kanan 3 Perkalian
/ kiri – kanan 3 Pembagian
% kiri – kanan sisa pembagian (modulus)
+ kiri – kanan Penjumlahan
- kiri – kanan Pengurangan

5
Contoh program 1-4:
1. #include <stdio.h>
2. main() {
3. int a,b,c=0,d=0;
4. printf("Masukkan nilai a= "); scanf("%d",&a);
5. printf("Masukkan nilai b= "); scanf("%d",&b);
6.
7. c=a+b*3;
8. d=(a+b)*3;
9.
10. printf("a + b * 3 = %d\n",c);
11. printf("(a + b) * 3 = %d\n",b);
12. }

b. Operator Unary
Operator Arti
- unary minus
-- penurunan dengan pengurangan nilai 1
+ unary plus
++ peningkatan dengan penaikan nilai 1
(tipe) castukuran operand dalam byte
Sizeof unary NOT
! operator unary complement satu (bitwise NOT)
~ menghasilkan alamat memory operand (operator pointer)
& menghasilkan nilai pengenal di alamatnya (operator pointer)
* unary minus

Contoh Program 1-5:


1. #include <stdio.h>
2. main() {
3. int x,a,b;
4. printf("Nilai awal x = "); scanf("%d",&x);
5. printf("Nilai awal b = "); scanf("%d",&b);
6. printf("Proses : a = x++ = b-- + 5 \n");
7.
8. a=x++ - b-- +5;

6
9. printf("Nilai a setelah proses = %i\n",a);
10. printf("Nilai x setelah proses = %i\n",x);
11. printf("Nilai b setelah proses = %i\n",b);
12. }

c. Operator Koma

Operator ini digunakan untuk menggabungkan beberapa ungkapan dengan proses


yang berurutan dari ungkapan sebelah kiri ke koma ke ungkapan sebelah kanan koma.

d. Operator Pengerjaan
Operator Contoh Ekuivalen dengan
= A=B+C masukkan nilai B+C ke dalam A
+= A+=1 A=A+1
-= A-=B A=A-B
*= A*=B A=A*B
/= A/=B A=A/B
%= A%=B A=A%B

e. Operator Hubungan
Operator Jenjang Arti
< 6 lebih kecil dari
<= 6 lebih kecil dari atau sama dengan
> 6 lebih besar dari
>= 6 lebih besar dari atau sama dengan
== 7 sama dengan
!= 7 tidak sama dengan

f. Operator Bitwise
Operator Jenjang Arti
<< 5 pergeseran bit ke kiri
>> 5 pergeseran bit ke kanan
& 8 bitwise AND
^ 9 bitwise XOR (Exclusive OR)
| 10 Bitwise OR

Contoh Program 1-6:


1. #include <stdio.h>

7
2. int main() {
3. int a=10, b=80, c=1, temp;
4. printf("a=%d, b=%d \n",a,b);
5. temp=a;
6. a=b+20;
7. b=temp;
8. printf("a=%d, b=%d \n",a,b);
9. c-=b;
10. printf("c=%d",c);
11. return 0;
12. }

1.2.8 Perintah Keluaran

Adapun perintah yang disediakan dalam standar input output header(stdio.h) dalam
menampilkan hasil secara terformat adalah printf()printf() perintah yang paling umum
digunakan dalam menampilkan hasil ke layar.
Syntax :
printf("string-kontrol", argumen1, argumen2, .., argumenN);
String-kontrol berupa keterangan yang akan ditampilkan beserta penentu formatnya
(ada pada modul sebelumnya). Sedangkan Argumen dapat berupa variabel, konstanta,
ungkapan.
Contoh Program 1-7:
1. #include <stdio.h>
2. main() {
3. float a=3.8, b=12.45678;
4. int c=6, d=256;
5. char e='a', f='b';
6.
7. printf("Menampilkan keluaran :\n\n");
8. printf("%2.2f \t %.3f",a,b);
9. printf("\n%d \t %i \n",c,d);
10. printf("%c \t %c \n",e,f);
11. }

8
1.2.9 Perintah Masukkan
C juga menyediakan 2 bentuk inputan data yang disediakan dalam header stdio.h dan
conio.h

a. Terformat
Perintah yang digunakan untuk memasukkan data terformat adalah scanf();
Syntax :
scanf("format data", &namaVariabel);

b. Tidak Terformat
Adapun fungsi-fungsi yang dimiliki oleh C untuk memasukkan data secara tidak
terformat adalah :
getchar() = tanpa argumen, langsung memberikan hasil, dan harus menekan tombol enter.
Contoh Program 1-9:
1. #include<stdio.h>
2. int main(){
3.
4. int a;
5. printf("masukkan angka yang anda suka: "); scanf("%d", &a);
6. printf("\n\nAnda menyukai angka %d",a);
7. return 0;
8. }

Tugas Akhir Modul 1


1. Merangkum modul 1& 2 dengan tulis tangan !
2. Buatlah program untuk menghitung Luas dan Keliling Lingkaran.
3. Buatlah program menghitung d = ++a * b + - -c dan e = d - - / a*b - -

9
MODUL 2 STATEMENT KONDISI

2.1 Statement
Statement adalah suatu bentuk instruksi atau perintah pada program komputer. C
membedakan statement dalam beberapa jenis, yaitu :
a. Statement kosong adalah statement yang hanya terdiri dari pengakhir titik koma saja
dan tidak ada pernyataan apapun.
b. Statement ungkapan adalah statement yang dibentuk dari suatu ungkapan yang
diakhiri dengan titik koma.
Statement kendali adalah statement yang berfungsi untuk mengendalikan proses dari
program.

2.2 Operasi
Operasi ini digunakan untuk memecahkan persoalan untuk mengambil suatu
keputusan diantara sekian pernyataan yang ada.

2.2.1 Pernyataan if
Syntax:
if (kondisi)
statement;
Atau
if (kondisi) {
statement_1;
statement_2;
..
Statement_N;
}

Contoh program 2-1:


1. #include<stdio.h>
2. int main() {
3.
4. int dd,mm,yy,tahun_ini,usia;
5. printf("tanggal lahir [dd - mm - yy] = ");
6. scanf("%d :%d :%d",&dd,&mm,&yy);
7. printf("tahun sekarang [yyyy] = "); scanf("%d",&tahun_ini);
8.
9. tahun_ini = tahun_ini % 100;
10. usia = tahun_ini - yy;
11. if (usia < 0) {
12. usia = usia + 100;
13. }
14. printf("Usia = %d\n",usia);
15.

10
16. return 0;
17.
18. }

2.2.2 Pernyataan if – else


Syntax:
1. if (kondisi) {
2. statement_1;
3. statement_2;
4. ..
5. statement_N;
6. }
7. else {
8. statement_1;
9. statement_2;
10. ..
11. statement_N;
12. }

Contoh program 2-2:


1. #include <stdio.h>
2. int main()
3. {
4. int bil;
5. printf("masukan bilangan= ");
6. scanf("%d",&bil);
7. if (bil > 0)
8. {
9. printf("bilangan positif\n");
10. }
11. else {
12. printf("bilangan negatif\n");
13. }
14. return 0;
15. }

2.2.3 Pernyataan Nested if


Adalah pernyataan if yang berada dalam pernyataan if yang lain.

Syntax :
if (kondisi1) {
statement1; }
else if (kondisi2) {
statement2; }
else {

11
statement3; }

Contoh program 2-4:


1. #include<stdio.h>
2. int main() {
3.
4. int nil;
5. char grade;
6.
7. printf("masukkan nilai= "); scanf("%d",&nil);
8.
9. if (nil<45) {
10. grade='E';
11. }
12. else if (nil<56) {
13. grade='D';
14. }
15. else if (nil<68) {
16. grade='C';
17. }
18. else if (nil<80) {
19. grade='B';
20. }
21. else grade='A';
22.
23. printf("Nilai grade anda = %c",grade);
24.
25. return 0;
26. }

2.2.4 Pernyataan switch – case


Dirancang khusus untuk menangani pengambilan keputusan yang melibatkan
sejumlah atau banyak alternatif.
Syntax :
1. switch (ekspresi){
2. case konstanta1;
3. statement_1;
4. ..
5. statement_N;
6. break;
7.
8. case konstanta2;
9. statement_1;
10. ..
11. statement_N;
12. break;
13.
14. . . .
15. default :

12
16. statement_1;
17. ...
18. statement_N;
19. break;
20. }

Contoh program 2-5:


1. #include <stdio.h>
2. int main()
3. {
4. int angka;
5. printf("masukan angka 1-5: "); scanf("%d",&angka);
6. switch(angka)
7. {
8. case 1: printf("%i dibaca satu\n",angka);
9. break;
10.
11. case 2: printf("%i dibaca dua\n",angka);
12. break;
13.
14. case 3: printf("%i dibaca tiga\n",angka);
15. break;
16.
17. case 4: printf("%i dibaca empat\n",angka);
18. break;
19.
20. case 5: printf("%i dibaca lima\n",angka);
21. break;
22.
23. default: printf("Maaf pilihan anda salah\n");
24. break;
25.
26.
27. }
28. return 0;
29. }

Contoh program 2-6:


1. #include <stdio.h>
2. int main(){
3. int nilai;
4. char grade;
5. scanf("%d",&nilai);
6. switch(nilai) {
7. case 0 ... 44: grade = 'E'; break;
8. case 45 ... 55: grade = 'D'; break;
9. case 56 ... 67: grade = 'C'; break;
10. case 68 ... 79: grade = 'B'; break;
11. case 80 ... 100: grade = 'A'; break;
12. }

13
13. printf("grade = %c\n",grade);
14. return 0;
15. }
16. }

2.2.5 Conditional Expresion ( Operator ? )


Digunakan sebagai pengganti bentuk statement if - else;
Syntax :
(ekspresiLogika) ?
ekspresi1;
ekspresi2;

Contoh program 2-7:


1. #include <stdio.h>
2. int main()
3. {
4. int a;
5. printf("masukan nilai= "); scanf("%d",&a);
6. (a % 2 == 0) ?
7. printf("%d adalah bilangan genap\n",a):
8. printf("%d adalah bilangan ganjil\n",a);
9. return 0;
10. }

Tugas Akhir Modul 2


a. Merangkum modul 3 dengan tulis tangan di buku laporan !
b. Buatlah program menentukan bilangan absolute dari bilangan yang d input !
c. Buatlah program menentukan bilangan terbesar dan terkecil dari 3 biangan yang di
input !
d. Buatlah program menentukan kode pos di kelurahan tanah abang dengan ketentuan :

Kode Pos Kelurahan

10210 Bendungan Hilir


10220 Karet Tengsin
10230 Kebon Melati
10240 Kebon Kacang
10250 Kampung Bali
10260 Petamburan
10270 Gelora

14
MODUL 3 STATEMENT PERULANGAN

Perulangan disebut juga Looping Repetition, sekumpulan instruksi yang dieksekusi


secara berulang-ulang hingga kondisi pemberhentian dipenuhi. Perulangan sendiri pada C
dibagi menjadi :

3.1 Perulangan Berhingga (Counter Controller Repetition)


Perulangan berhingga (counter controller repetition) yaitu suatu perulangan dimana
nilai awal dan akhirnya ditentukan oleh programmer. Perulangan ini menggunakan kata kunci
for.
Syntax :
for (inisialisasi; syarat_perulangan; peningkatan/penurunan) {
statement_1;
statement_2;
statement_N;
}

 inisialisasi digunakan untuk memberikan nilai awal perulangan.


 syarat perulangan memegang kontrol perulangan atau sebagai batas perulangan yang akan
menentukan perulangan akan diteruskan atau dihentikan.
 peningkatan/penurunan : mengatur kenaikan atau penurunan perulangan

Contoh program 3-1:
1. #include <stdio.h>
2. main(){
3. int i;
4. for(i=0; i<10; i++) {
5. printf("%d. sedang belajar C\n",i);
6. }
7. }

Contoh program 3-2:


1. #include <stdio.h>
2. int main() {
3. int i,batas;
4. printf("table perkalian Lima \n");
5. printf("input batas perkalian = ");
6. scanf("%d",&batas);
7. for(i=1; i<=batas; i++) {
8. printf("5 * %d = %d\n",i ,5*i);
9. }

15
10. }

3.2 Perulangan Tak Berhingga (Sentinel Controller repetition)

Perulangan tak berhingga (sentinel controller repetition) merupakan perulangan


dimana jumlah pengulangannnya tidak dapat ditentukan sehingga pengulangan akan terus
dilakukan selama kondisi bernilai benar atau salah.

3.2.1 Pernyataan while


Kata kunci ini bermakna selama kondisi bernilai benar maka perulangan akan terus
dilakukan jika salah maka perulangan akan dihentikan.
Syntax :
While (kondisi) {
Statement_1;
Statement_2;
..
Statement_N;
}

Contoh program 3-3 :


1. #include <stdio.h>
2. int main(){
3. int bil, jumlah, n;
4. float rerata;
5. jumlah=0;
6. n=0;
7. printf("masukkan bilangan = ");
8. scanf("%d",&bil);
9. while(bil != 0){
10. jumlah+=bil;
11. n++;
12. scanf("%d",&bil);
13. }
14. printf("\n");
15. rerata=jumlah/n;
16.
17. printf("rerata = %.1f\n", rerata);
18. return 0;
19. }

3.2.2 Pernyataan do-while


Pernyataan do – while ini merupakan bentuk perulangan yang melakukan perulangan
terlebih dahulu dan pengecekan dilakukan diakhir pernyataan dan perulangan akan terus
dilakukan selama kondisi salah.
16
Syntax :
do {
Statement_1;
Statement_2;
..
Statement_N;
} while(kondisi);

Contoh program 3-4:


1. #include <stdio.h>
2. main(){
3. int bil=2;
4. do{
5. printf("%d\t",bil);
6. bil+=2;
7. } while (bil <= 9);
8. printf("\n");
9. }

3.2.3 Pernyataan goto


Merupakan instruksi untuk mengarahkan eksekusi program ke pernyataan yang
diawali dengan suatu label yang menjadi tanda pengenal dan diikuti oleh tanda titik dua (:).
Syntax :
Nama_label :
Statement_1;
Statement_2;
..
Statement_N;
Goto Nama_label;

Contoh program 3-5:


1. #include <stdio.h>
2. main(){
3. int a,b,c;
4. kembali:
5. printf("\n Masukkan angka : ");
6. scanf("%d",&a);
7. b=a%2;
8. printf("%d mod 2 = %d\n",a,b);
9. printf("hitung kembali ? [1/0] : ");
10. scanf("%d",&c);
11. if(c==1)
12. goto kembali;
13. }

17
3.2.4 Pernyataan break
Pernyataan break berfungsi untuk keluar dari suatu struktur switch atau keluar dari
perulangan (for, while, do - while)
Contoh program 3-6:
1. #include <stdio.h>
2. main() {
3. int bil=1;
4. do {
5. if(bil >= 6)
6. break;
7. printf("%i",bil);
8. } while(bil++);
9. printf("\n");
10. }

3.2.5 Pernyataan continue


Pernyataan ini digunakan untuk mengarahkan eksekusi ke iterasi (proses) berikutnya
pada loop yang sama tanpa menjalankan sisa perintah yang ada di dalam loop.
Contoh program 3-7 :
1. #include <stdio.h>
2. main() {
3. int bil;
4. for(bil=0; bil<10; bil++){
5. if(bil==6)
6. continue;
7. printf("%i",bil);
8. }
9. printf("\n")
10. }

18
Tugas Akhir Modul 3
a. Merangkum modul 4 dengan tulis tangan di buku laporan
b. Buatlah program dengan output sebagai berikut :
*
**
***
****
*****
c. Buatlah program untuk menentukan jumlah IPS (indeks predikat sementara) tertinggi
dari 10 mahasiswa

19
MODUL 4 Rekursif

Rekursif berarti suatu proses yang memanggil dirinya sendiri. Dalam rekursif
sebenarnya terkandung pengertian prosedur atau fungsi. Perbedaannya adalah bahwa rekursif
bisa memanggil ke dirinya sendiri, tetapi prosedur atau fungsi harus dipanggil lewat
pemanggil prosedur atau fungsi. Rekursif merupakan teknik pemrograman yang penting, dan
beberapa bahasa pemrograman modern mendukung keberadaan proses rekursif ini.

Pemanggilan prosedur atau fungsi ke dirinya sendiri bisa berarti proses yang berulang yang
tidak bisa diketahui kapan akan berakhir. Dalam pemakaian sehari-hari, rekursi merupakan
teknik pemrograman yang berdaya guna untuk digunakan pada pekerjaan pemrograman
dengan mengeksperisikannya ke dalam suku-suku dari program lain dengan menambahkan
langkahlangkah sejenis. Contoh paling sederhana dari proses rekursi adalah menghitung nilai
faktorial dari bilangan bulat.

Syntax :
Void nama_fungsi()
{
nama_fungsi();
}

Contoh Program 4-1 :

#include<stdio.h>
#include<conio.h>
float fak(float n)
{
if (n<2)
{
return 1;
}
else
return n*fak(n - 1);
}
int main()
{
float n;
printf("Masukkan n = "); scanf("%f", &n);
printf("\n\n");
printf(" Faktorial = %0.f ", fak(n));
getch();
return 0;
}

20
Contoh program 4-2 :

#include<stdio.h>
#include<conio.h>

int fib(int n)
{
if (n<2)
{
return 1;
}
else
return fib(n - 1) + fib(n - 2);
}
int main()
{
int n;
printf("Masukkan n = "); scanf("%d", &n);
printf("\n\n");
printf(" Fibbonaci = %d ", fib(n));
getch();
return 0;
}

Contoh program 4 - 3 :

#include <stdio.h>
int pangkat(int x, int y)
{
if (y == 0)
{
return 1;
}
else
{
return x * pangkat(x, y - 1);
}
}
int main()
{
printf(" Menghitung 3 pangkat 2 : %d ", pangkat(3, 2));
}

21
Tugas Akhir Modul 4

a. Buatlah program untuk menampilkan semua permutasi dari N karakter ( A … Z ) di


mana 2 ≤ N ≤ 10. Sebagai contoh N = 2, output program :
AB
BA
Contoh lain, N = 3, program menampilkan :
ABC
ACB
BAC
BCA
CAB
CBA

22
MODUL 5 ARRAY

5.1 Pengertian Array


Array adalah kumpulan dari bilangan atau data yang bertipe sama dan terstruktur
dalam urutan tertentu menggunakan sebuah nama yang dimulai dari 0. Array sendiri dapat
digolongkan menjadi tiga bagian dalam penggunaannya dalam bahasa C yaitu array
berdimensi satu, array berdimensi dua, array berdimensi tiga. Namun pada modul ini hanya
akan dibahas sampai array berdimensi dua saja.

5.2 Array 1 Dimensi


Sebelum digunakan, variabel array perlu dideklarasikan terlebih dahulu. Cara
pendeklarasiannya sama dengan mendeklarasikan variable yang lain hanya saja diikuti
dengan indeks yang menunjukkan jumlah maksimum data yang disediakan.
Syntax :
tipeData namaVariable[ukuran];

tipeData : menyatakan tipe data yang akan digunakan


namaVariabel : menyatakan jumlah maksimum elemen array

Array dapat digambarkan sebagai kotak-kotak kecil yang didalam setiap kotak
tersebut berisi elemen-elemen atau nilai-nilai array dengan index atau nomor kotak dimulai
dari nol.

Pendeklarasian array(larik) dapat dilakukan dengan menyebutkan jumlah elemennya


dalam tanda "[ ]". Misalnya : int X[5]; Pendeklarasian juga dapat dilakukan dengan langsung
memberi nilai atau isi dalam array tersebut. Misal : int X[5]={1, 2, 3, 4};. Contoh lainnya
seperti int x[0]=1, x[1]=2, x[2]=3, x[3]=4;

Suatu array juga dapat dideklarasikan tanpa indeks yang menyatakan ukurannya.
Contoh membuat larik atau array yang tidak berukuran yaitu int x[ ]={9, 8, 7};Untuk
melakukan pengaksesan terhadap suatu array, ini dapat dilakukan dengan menggunakan
indeksnya yang dimulai dari nol(0).
Contoh program 5-1:

1. #include<stdio.h>
2. main(){
3. float x[ ]={9, 8, 7}, jum=0;
4. int i;
5. for(i=0; i<5; i++)
6. jum+=x[i];
7. printf("Jumlah = %.1f\n", jum);
8.program
Contoh } 5-2:

23
1. #include<stdio.h>
2. int main(){
3. int asli[100], balik[100], jml_data, i;
4. printf(“masukan jumlah data = “);
5. scanf(“%d”, &jml_data);
6. printf(“bilangan = “);
7. for(i=0; i<jml_data; i++)
8. scanf(“%d”,&asli[i]);
9. for(i=0; i<jml_data; i++)
10. balik[i]=asli[jml_data-i-1];
11. for(i=0; i<jml_data; i++)
12. printf(“%d”,balik[i]);
13. return 0;
14. }

5.3 Array Berdimensi Dua


Array berdimensi dua lebih mewakili kepada bentuk tabel atau matrik dimana indeks
pertama sebagai baris dan indeks ke dua sebagai kolom.
Syntax :
tipeData namaVariabel[indeks1] [indeks2]

tipeData : menunjukkan tipe data array yang digunakan


indeks1 : menyatakan jumlah baris
indeks2 : menyatakan jumlah kolom

Contoh program 6-1:


1. #include<stdio.h>
2. main() {
3. int i, j;
4. float x[3][4] = {1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3};
5. for (i=0; i<3; i++) {
6. for (j=0; j<4; j++) {
7. printf(“%f\t”, x[i][j]);
8. }
9. printf(“\n”);
10. }
11.
Contoh }
program 6-2;

24
Contoh program 6-2;
1. #include<stdio.h>
2. main() {
3. int A[3][4], B[3][4], C[3][4],i ,j;
4. puts(“Inputs matrik A dan B”);
5. for(i=0; i<=2; i++){
6. for(j=0; j<4; j++){
7. printf(“A[%d][%d]= “, i, j); scanf(“%d”, &A[i][j]);
8. printf(“B[%d][%d]= “, i, j); scanf(“%d”, &B[i][j]);
9. }
10. }
11. puts(“Jumlahkan Matrik A dan B\n”);
12. for(i=0; i<3; i++){
13. printf(“| “);
14. for(j=0; j<=3; j++){
15. C[i][j]=A[i][j]+B[i][j];
16. printf(“%d “, C[i][j]);
17. }
18. printf(“|\n”);
19. }
20. }

Contoh program 6-3:

1. #include<stdio.h>
2. main(){
3. int A[3][4], jml=0, i, j;
4. puts(“Input matrik A dan B”);
5. for(i=0; i<=2; i++){
6. for(j=0; j<4; j++){
7. printf(“A[%d][%d]= “,i ,j); scanf(“%d”, &A[i][j]);
8. }
9. }
10. for(i=0; i<3; i++){
11. for(j=0; j<=3; j++){
12. if (i==1)
13. jml+=A[i][j];
14. }
15. }
16. printf(“hasil penjumlahan baris pertama = %d”, jml);
17. }
18.

Tugas Akhir Modul 5


a. Buatlah program menentukan bilangan ganjil dan genap pada 1 matrik yang di
input.

b. Buatlah program perkalian 2 matrik

25
MODUL 6 BUBBLE SORT DAN INSERTION SORT

6.1 Pengertian
Pengurutan (Sort) dalam pemrograman digunakan untuk mengurutkan (baik secara
ascending atau descending) beberapa bilangan/karakter yang sama tipenya. Sort
dipergunakan agar user/pengguna atau programer dapat mengetahui nilai yang terkecil
sampai dengan nilai yang terbesar atau sebaliknya. Sort biasanya digunakan di dalam aplikasi
aplikasi yang berhubungan dengan banyak data.

6.2 Beberapa Macam Teknik Pengurutan


a. Bubble Sort
b. Insertion Sort
c. Quick Sort
d. Selection Sort
e. Shell Sort
f. Dan lain-lain
Teknik – teknik tersebut mempunyai tujuan yang sama yaitu mengurutkan data.Teknik yang
satu dengan yang lainnya mempunyai kelemahan dan kelebihan masing-masing.

6.3 Bubble Sort


Metode ‘Bubble Sort’ merupakan metode pertama yang paling banyak dipelajari oleh
programmer. Karena lebih sederhana. Akan tetapi ‘Bubble Sort’ sendiri memiliki
kelemahan/kekurangan. Seperti :

a. ‘Bubble Sort’ tidak efisien dan menyita lebih banyak waktu prosessor dibandingkan
dengan metode Sorting yang lain.
b. Penggunaan ‘Bubble Sort’ masih dapat terlihat baik jika jumlah data/elemen yang di
inputkan tidak lebih dari 30 atau kurang dari 30 elemen.

Metode gelembung / penukaran adalah metode yang mendasarkan penukaran 2 buah


elemen untuk mencapai keadaan urut yang diinginkan.Disebut sebagai bubble atau
gelembung karena algoritma ini memang mirip tingkah gelembung udara dalam air.
Gelembung naik perlahan-lahan ke permukaan air.
Algoritma ini merupakan algoritma paling dasar dan paling lambat karena tekniknya adalah

26
dengan membandingkan satu angka dengan angka-angka yang lain dalam deret, dan jika
angka yang dibandingkan lebih besar daripada angka pembanding, maka nilainya
dipertukarkan (swap).

Cara kerja Bubble Sort

Mari kita coba mengurutkan deret array "5 1 4 2 8", dari angka terendah ke angka
terbesar menggunakan Bubble Sort. Dalam setiap langkah, unsur-unsur yang ditulis dalam
huruf tebal sedang dibandingkan.

Di sini, Algoritma membandingkan dua elemen pertama, dan mereka swap.

(5 1 4 2 8) --->(1 5 4 2 8) 5 > 1 maka posisi di tukar

(1 5 4 2 8) --->(1 4 5 2 8) 5> 4 maka posisi di tukar

(1 4 5 2 8) --->(1 4 2 5 8) 5>2 maka posisi di tukar

(1 4 2 5 8) --->(1 4 2 5 8) 8>5 maka algoritma tidak menukar posisi

fase ke 2

(1 4 2 5 8)-->(1 4 2 5 8)

(1 4 2 5 8)-->(1 2 4 5 8) 4>2 maka posisi di tukar

(1 2 4 5 8)-->(1 2 4 5 8)

(1 2 4 5 8)-->(1 2 4 5 8)

fase ke 3

Kini deret sudah terSortir, namun algoritma yang berjalan belum selesai, algoritma
msih mengecek deret hingga benar benar deret tidak ada lagi yang di swap/ di tukar.

(1 2 4 5 8) -->(1 2 4 5 8)

(1 2 4 5 8) -->(1 2 4 5 8)

(1 2 4 5 8) -->(1 2 4 5 8)

(1 2 4 5 8) -->(1 2 4 5 8)

27
Contoh program 2-1 :

#include<stdio.h>
#include<conio.h>

int i, j, data, k, bantu, A[10], h[100];


typedef struct datab
{
int A[];
int hope[100];
};

main()

{
datab baru;
int *tunjuk;
printf(" Masukkan jumlah data = "); scanf("%d", &data);
printf("\n\n");
for (i = 1; i <= data; i++)
{
printf(" A[%d] = ", i); scanf("%d", &baru.A);
tunjuk = baru.A;
h[i] = *tunjuk;
}
printf("\n\n");
printf("--------------Data tak terurut-----------------");
printf("\n\n");
printf(" A = { ");
for (i = 1; i <= data; i++)
{
printf("%d,", h[i]);
}
printf(" } ");
for (i = 1; i <= (data - 1); i++)
{
for (j = data; j >= (i + 1); j--)
{
if (h[j]<h [j - 1])
{
bantu = h[j - 1];
h[j - 1] = h[j];
h[j] = bantu;
printf("\n\n");
printf(" A = { ");
for (k = 1; k <= data; k++)
{
printf("%d,", h[k]);
}
printf(" }\a ");
}

}
printf("\n\n");

28
printf("--------------Data terurut---------------------");
printf("\n\n");
printf(" A = { ");
for (i = 1; i <= data; i++)
{
printf("%d,", h[i]);
}
printf(" } ");
getch();
return 0;
}

6.4 Insertion Sort


Insertion Sort merupakan sebuah algoritma pengurutan yang membandingkan dua
elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu
persatu dan membandingkannya dengan elemen data yang telah diurutkan.

Insertion Sort bekerja seperti banyak orang yang sedang mengurutkan kartu di tangan.
Dimulai dengan tangan kiri yang kosong dan kartunya tertumpuk di meja. Selanjutnya kita
ambil satu persatu kartu di meja dan diletakkan di tangan kiri dengan posisi yang benar
(terurut). Untuk menemukan posisi yang benar, maka kita harus membandingkan satu persatu
kartu yang ada( di tangan kiri) secara berurutan.

Proses

a. Proses dilakukan sebanyak N-1 tahapan (dalam Sorting disebut sebagai “pass”).
b. Indeks dimulai dari 0
c. Proses Sorting dengan cara membandingkan data ke-I (dimana i dimulai dari data ke-2
sampai dengan data terakhir) dengan data berikutnya.
d. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai
dengan posisi yang seharusnya.

Contoh program 2-2 :

#include<stdio.h>
#include<conio.h>
main()
{
int i, j, data, k, x, bantu, A[100];
printf(" Masukkan jumlah data = "); scanf("%d", &data);
printf("\n\n");
for (i = 1; i <= data; i++)

29
{
printf(" A[%d] = ", i); scanf("%d", &A[i]);
}
printf("\n\n");
printf("--------------Data tak terurut-----------------");
printf("\n\n");
printf(" A = { ");
for (i = 1; i <= data; i++)
{
printf("%d,", A[i]);
}
printf(" } ");
for (i = 2; i <= data; i++)
{
x = A[i];
A[0] = x;
j = i - 1;
while (x<A[j])
{
A[j + 1] = A[j];
j = j - 1;
}
A[j + 1] = x;
}
printf("\n\n");
printf("--------------Data terurut---------------------");
printf("\n\n");
printf(" A = { ");
for (i = 1; i <= data; i++)
{
printf("%d,", A[i]);
}
printf(" } ");
getch();
return 0;
}

Tugas Akhir Modul 6


e. Buatlah program sederhana untuk mengurutkan data nilai 10 matkul dengan bubble sort
secara ascending serta insertion sort secara descending !

30
MODUL 7 PENCARIAN

7.1 Pencarian Berurutan


Pencarian berurutan adalah metode pencarian sebuah data dari suatu kumpulan data
dimana data dicari dari depan ke belakang atau dari awal ke akhir tanpa harus data tersebut
terurut. Proses pertama data melakukan perbandingan satu-persatu swecara beruntun dalam
kumpulan data dengan data yang dicari sampai data tersebut ditemukan atau tidak ditemukan.

Contoh program 4 – 1 :

#include<stdio.h>

int main()
{
int i, b, data[50], h[50], cari;
printf(" Banyak Data = "); scanf("%d", &b);
printf("\n");
for (i = 1; i <= b; i++)
{
printf("\n");
printf(" Data [%d] = ", i); scanf("%d", &data[i]);

}
printf("\n\n");
printf(" Data yang di cari = "); scanf("%d", &cari);
i = 1;
while ((data[i] != cari) && (i <= b))
{
i++;
}
if (i <= b)
{
printf("\n Data ditemukan dalam index ..");
}
else
{
printf("\n");
printf(" \a\aData yang anda cari tidak ditemukan pada index ");
}
return 0;
}

7.2 Pencarian Biner


Dalam algoritma ini kita menggunakan array diurutkan sehingga dapat mengurangi
kompleksitas waktu untuk O ( log n ) . Dalam hal ini , ukuran elemen mengurangi setengah
setelah setiap iterasi dan ini dicapai dengan membandingkan elemen tengah dengan kunci dan
jika mereka tidak sama maka kita memilih yang pertama atau babak kedua , mana

31
diperkirakan akan memegang kunci ( jika tersedia ) berdasarkan perbandingan yaitu jika
array diurutkan secara meningkat dan kuncinya adalah lebih kecil dari elemen tengah, itu
akan berada di index pertama , pilih kunci dan ulangi operasi yang sama lagi dan lagi sampai
kunci ditemukan atau tidak lebih dari elemen yang tersisa dalam array .

Contoh program 4-2:

#include<stdio.h>
#include<conio.h>
int i,L, b, H, m, j, u, T, data, data_baru, ketemu, A[100];
main()
{
printf(" Masukkan jumlah bilangan = "); scanf("%d", &b);
printf("\n");
for (i = 1; i <= b; i++)
{
printf(" A[%d] = ", i); scanf("%d", &A[i]);
}
printf("\n");
for (u = 2; u <= b; u++)
{
data_baru = A[u];
A[0] = data_baru;
j = u - 1;
while ((data_baru<A[j]) && (j >= 1))
{
A[j + 1] = A[j];
j = j - 1;
}
m = j + 1;
A[m] = data_baru;
}
printf("\n");
printf("\n\n");
printf(" Masukkan data yang ingin dicari = "); scanf("%d", &data);
L = 1;
H = b;
ketemu = 0;
while ((ketemu == 0) && (L <= H))
{
T = (L + H) / 2;

if (A[T] == data)
{

ketemu = 1;

}
else
{
if (A[T]>data)
{

32
H = T - 1;
}

else
{
L = T + 1;
}
}
}
if (ketemu == 1)
{
printf("\n");
printf(" Data yang anda cari ditemukan pada index ");
}
else
{
printf("\n");
printf(" \a\aData yang anda cari tidak ditemukan pada index ");
}
return 0;

Tugas Akhir Modul 7

a. Buatlah program sederhana pencarian data pelanggan dengan dua keyword umur serta
id_pelanggan menggunakan pencarian biner !
b. Carilah contoh program pencarian selain yang diatas !

33
MODUL 8 FUNGSI

8.1 Pengertian Fungsi


Fungsi (function) merupakan blok dari kode program yang dirancang untuk
melaksanakan tugas khusus dan letaknya dipisahkan dari program yang menggunakannya.
Kegunaan dari fungsi adalah :
 mengurangi pengulangan penulisan program yang sama
 agar program menjadi lebih terstruktur sehingga mudah dipahami dan mudah
digunakan
Fungsi sendiri terdiri dari dua buah komponen utama, yaitu :
 definisi fungsi yang berisi tipe fungsi, nama fungsi, argumen-argumen
 tubuh fungsi yang berisi statement-statement
Dan bahasa C sendiri disusun oleh f ungsi-fungsi. Fungsi-fungsi yang sering
digunakan seperti main() merupakan fungsi utama dari program, printf(), scanf() lain
sebagainya.
Syntax :
tipeFungsi namaFungsi (argumen1, argumen2, argumen3, ..) {
Statement_1;
Statement_2;

Statement_N;
}

Untuk pemanggilan suatu fungsi dapat dilakukan dengan menuliskan nama fungsi
tersebut.

Contoh program 7-1

1. #include<stdio.h>
2. void garis(){
3. printf(“---------------------“);
4. }
5. main(){
6. garis(); //memanggil fungsi
7. printf(“Teknik Informatika FT-UMJ\n”);
8. garis(); //memanggil fungsi
9. getchar();
10. }
11.

34
8.2 Deklarasi Fungsi
Suatu fungsi yang memberikan hasil balik selain tipe int perlu dideklarasikan terlebih
dahulu sebelum digunakan. Deklarasi fungsi ditulis sebelum fungsi tersebut digunakan. Ini
digunakan jika definisi fungsi ditulis terpisah dengan badan fungsi.
Contoh program 7-2:
1. #include<stdio.h>
2. double absolut(double x); // pendeklarasian fungsi. Titik koma harus ditulis
3. int main(){
4. float nilai, hasil;
5. nilai=-12.5;
6. hasil=absolut(nilai); //pemanggilan fungsi
7. printf(“%.2f nilai mutlak = %.2f\n”, nilai, hasil);
8. return 0;
9. }
10. double absolut(double x){
11. if(x<0) x=-x;
12. return (x);
13. }

8.3 Parameter Fungsi


Terdapat dua parameter fungsi, yaitu :
a. Parameter formal, yaitu parameter yang terdapat pada daftar parameter yang berada di
dalam definisi fungsi
b. Parameter aktual, yaitu variabel yang digunakan saat pemanggilan fungsi

8.4 Mengembalikan Nilai return


Pernyataan ini digunakan untuk mengirimkan nilai dari suatu fungsi kepada fungsi
yang lain yang memanggilnya. Nilai tersebut harus ditentukan sebagai ekspresi dalam
statement return.
Contoh program 7-3:

1. #include<stdio.h>
2. #include<math.h>
3. float f(int x);
4. int main(){
5. printf(“harga fungsi = %f”, f(5));
6. return 0;
7. }
8. float f(int x);
9. return –x*x;
10. }

35
8.5 Jenis Variabel pada Fungsi

8.5.1 Variabel Lokal


Adalah variabel yang dideklarasikan di dalam suatu fungsi dan hanya dikenal dalam
blok fungsi tersebut saja.
Contoh program 7-4:
1. #include<stdio.h>
2. int persegi(int sisi){
3. int luas;
4. luas=sisi*sisi;
5. return luas;
6. }
7. int main(){
8. int a;
9. printf(“Panjang sisi persegi = “);
10. scanf(“%d”, &a);
11. printf(“Luas persegi dengan sisi %d adalah %d\n”, a, persegi(a));
12. }
13.

8.5.2 Variabel Global


Adalah variabel yang dideklarasikan di luar fungsi dan dapat digunakan secara
bersama-sama tanpa harus dideklarasikan berulang-ulang.
Contoh program 7-5:
1. #include<stdio.h>
2. float tambah(float a, float b);
3. float c;
4. int main() {
5. printf(“Penggunaan Variable Global dalam C\n”);
6. tambah(5, 11);
7. printf(“%.3f\n”, c);
8. return 0;
9. }
10. float tambah(float a, float b){
11. c=a+b;
12. return (c);
13. }

36
Tugas Akhir Modul 8
a. Buatlah rangkuman modul 8 dengan tulis tangan di buku laporan
b. Buatlah program menggunakan function dengan output sebagai berikut :
Pilihan :
1. Luas dan keliling lingkaran
2. Luas dan keliling trapezium
3. Luas dan keliling jajar genjang
4. Exit

37
Daftar Pustaka
(2016, September 8). Retrieved from tutorialpoints.com:
http://www.tutorialspoint.com/cprogramming
Binary Search Algorithm- Fundamentals, Implementation and Analysis. (2015, Mei 15).
Retrieved September 9, 2016, from http://www.codingeek.com/algorithms/binary-
search-algorithm-fundamentals-implementation-and-analysis/
C - Array of pointers. (2015, November 2). Retrieved September 9, 2016, from
http://www.tutorialspoint.com/cprogramming/c_pointers.htm
PRANATA, A. (2005). ALGORITMA DAN PEMROGRAMAN. Yogyakarta: Graha Ilmu.
Quick Sort Program in C. (2015, Oktober 8). Retrieved September 9, 2016, from
http://www.tutorialspoint.com/data_structures_algorithms/quick_sort_program_in_c.h
tm

38

Anda mungkin juga menyukai