Anda di halaman 1dari 20

MODUL MATA KULIAH

ALGORITMA DAN
STRUKTUR DATA 1
KP002 – 3 SKS

FAKULTAS TEKNOLOGI INFORMASI


UNIVERSITAS BUDI LUHUR

TIM PENYUSUN
JAKARTA Painem, S.Kom, M.Kom
Reva Ragam, S.Kom., M.Kom
SEPTEMBER 2019 Ir. Moch. Sjukani
UNIVERSITAS BUDI LUHUR
FAKULTAS TEKNOLOGI INFORMASI

MODUL PERKULIAHAN #12


FUNCTION /(FUNGSI)
Capaian Pembelajaran : Mahasiswa mampu memahami konsep fungsi
dalam pemrograman C dengan benar dan
mahasiswa mampu membuat fungsi sendiri
dalam aplikasi
Sub Pokok Bahasan : 1.1. Pengertian Fungsi
1.2. Jenis Fungsi
1.3. Pemanggilan Fungsi
1.4. Deklarasi dan Definisi Fungsi
1.5. Parameter Fungsi
1.6. Variabel Lokal dan Global dalam fungsi
1.7. Sebuah fungsi dapat memanggil fungsi
yang lain
Daftar Pustaka : 1. Sjukani M, “Struktur data dengan
C++(Algoritma dan Struktur Data 2
dengan C, C++)”, Mitra Wacana Media,
2007
2. Kristanto Andri, “Algoritma dan
Pemrograman dengan C++”, Graha Ilmu,
2003
3. Darmawan Erico, “Pemrograman Dasar C-
Java-C#”,Informatika,2012
FUNGSI

1.1. PENGERTIAN FUNGSI

Fungsi adalah sejumlah instruksi yang dikelompokkan menjadi satu, berdiri


sendiri, yang berfungsi untuk menyelesaikan suatu pekerjaan tertentu. Bahasa
C adalah suatu bahasa yang struktur penulisannya merupakan kumpulan dari
fungsi-fungsi. Setiap Fungsi mempunyai nama. Bahasa C minimal terdiri dari
satu buah fungsi yang disebut Fungsi main( ). Nama main adalah nama fungsi
yang ditentukan oleh Bahasa C, yang tidak boleh diganti dengan nama lain.
Fungsi-fungsi lain (yang dibuat sendiri bila diperlukan) namanya dapat dikarang
sendiri. Fungsi main( ) sering juga disebut Fungsi Induk atau Fungsi Utama.
Dalam Fungsi main inilah kita menuliskan instruksi-instruksi utama. Bahasa C
juga menyiapkan banyak Fungsi Pustaka (Library Function) yang siap
digunakan seperti fungsi printf() atau scanf().
Fungsi digunakan untuk mempermudah kita dalam membuat sebuah program,
terutama program yang besar dan banyak melakukan beberapa hal yang sama.
Fungsi mempunyai ciri-ciri sebagai berikut :
a. Memiliki nama dari fungsi tersebut
b. Memiliki tugas spesifik tertentu
c. Memiliki sekumpulan statemen/perintah untuk melakukan tugas tersebut
d. Mengembalika sebuah nilai kepada fungsi lain yang
memanggil/memerlukannya (jika perlu)

1.2. JENIS FUNGSI


Ada dua jenis fungsi pada C++, yaitu:
1. Void (fungsi tanpa nilai balik)
Fungsi yang void sering juga prosedur. Disebut void karena fungsi tersebut
tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses funsi
tersebut.
Ciri-ciri dari jenis fungsi void adalah sebagai berikut:
a. Tidak adanya keyword return
b. Tidak adanya tipe data di dalam deklarasi fungsi

2019/2020 1 Algoritma dan Struktur Data 1 (KP002)


c. Menggunakan keywoard void
d. Tidak dapat langsung ditampilkan hasilnya
e. Tidak memiliki nilai kembalian fungsi
f. Keywoard void juga digunakan jika suatu function tidak mengandung suatu
parameter apapun
Contoh program implementasi fungsi dengan void:

Output program implementasi fungsi dengan void :

2. Non-Void (fungsi dengan nilai balikan)


Fungsi non-void disebut juga dengan function. Disebut non-void karena
mengembalikan nilai kembalian yang berasal dari keluaran hasil proses function
tersebut.
Ciri-ciri dari jenis fungsi non-void adalah:
a. Adanya keywoard return
b. Ada tipe data yang mengawali fungsi
c. Tidak adanya keyword void

Analisis dan Desain Algoritma (PG167) 2 2019/2020


d. Memiliki nilai kembalian
e. Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu
f. Sehingga dapat langsung ditampilkan hasilnya
g. Non-void: int jumlah(int a, int b)

Contoh program implementasi fungsi dengan non-void:

Output program implementasi fungsi dengan non-void:

1.3. PEMANGGILAN FUNGSI


Ada dua cara pemanggilan fungsi, yaitu:
1. Call by value
Pemanggilan fungsi dengan melewatkan nilai parameter variabel dalam definisi
fungsi. Fungsi tersebut akan mengolah nilai yang dikirmkan kepadanya. Atau
Calling function dapat mengirimkan ( passing) suatu nilai ke Called function .
Bila nilai yang dikirim adalah nilai atau data yang akan diproses, maka
pengiriman nilai disebut passing by value.
Contoh implementasi passing by value :
2019/2020 3 Algoritma dan Struktur Data 1 (KP002)
Variabel T disebut sebagai Parameter

T disini adalah variabel yang


nilainya dikirim ke fungsi
CETAK(), ( passing value )
dan diterima oleh variabel
T dalam fungsi CETAK()

Variabel T disebut sebagai Argument


Output :

Nama variabel Argument boleh berbeda dengan nama variabel Parameter

Contoh implementasi call by value pada array satu dimensi

Ouput :

Analisis dan Desain Algoritma (PG167) 4 2019/2020


2. Call by reference
Pemanggilan dengan referensi merupakan suatu usaha melewatkan alamat dari
suatu variabel ke dalam fungsi. Dengan pengubahan dilakukan di dalam fungsi
untuk mengubah variabel di luar fungsi. Bila nilai yang dikirim berupa nilai
pointer (bukan data) yang me refer ke suatu data, maka pengiriman tersebut
disebut passing by reference. Metode Call by Refrence menggunakan operator
pointer ‘&’ dan ‘*’ untuk mengirimkan alamat variabel ke suatu fungsi.

Contoh implementasi call by reference

Yang dikirim bukan data


tapi nilai pointer ,
ditulis : P
bukan *P;

Untuk menerima nilai


pointer harus disiapkan
variabel bertipe pointer
juga
Ouput :

Keterangan program call by reference :


P dan Q adalah dua buah variabel pointer yang berbeda, tapi isinya
sama, yaitu sama-sama alamat variabel A

2019/2020 5 Algoritma dan Struktur Data 1 (KP002)


Contoh implementasi call by reference pada array satu dimensi :

Output :

1.4. DEKLARASI DAN DEFINISI FUNGSI


Fungsi dapat dibuat diatas(sebelum) atau dibawah (sesudah) fungsi main atau
fungsi utama
A. Deklarasi Fungsi
Deklarasi fungsi adalah judul fungsi yang sederhana yang diikuti oleh tanda
semicolon( ;). Deklarasi fungsi diletakkan sebelum fungsi utama atau main().
Fungsi perlu dideklarasikan agar compiler dapat memeriksa ketepatan
pemanggilan fungsi yang bersangkutan. Deklarasi fungsi disebut juga sebagai
prototype fungsi. Jika fungsi dibuat sesudah fungsi utama, maka prototipe
fungsi tersebut harus dibuat terlebih dahulu diatas fungi main( fungsi utama).
Analisis dan Desain Algoritma (PG167) 6 2019/2020
Prototipe fungsi adalah header dari fungsi dan diberi tanda titik koma(;)
dibagian belakang.
Berikut ini adalah cara mendeklarasikan sebuah fungsi dalam bahasa C:

Tipe nama fungsi(parameter);

Tipe adalah tipe daya dari nilai yang akan dikermbalikan oleh fungsi. Nama
fungsi adalah nama dari fungsi yang dibuat. Nama ini yang akan digunakan
untuk memanggil fungsi yang telah kita buat. Parameter adalah nama dan
tipe variabel yang akan digunakan untuk menyimpan nilai yang dibutuhkan oleh
fungsi tersebut. Jika dalam sebuah fungsi terdapat lebih dari satu
parameter, maka parameter ditulis dengan dipisahkan dengan koma.
Contoh deklarasi fungsi :

Nama Fungsi Parameter

int Hitung(int A);


Diakhiri
dengan titik
koma(;
Tipe Fungsi Tipe paramater , sama
dengan tipe daru
fungsi

B. Definisi Fungsi
Definisi fungsi adalah fungsi yang lengkap, terdiri dari judul dan isinya. Definisi
fungsi bisa dibuat sebelum fungsi utama atau sesudah fungsi utama.

2019/2020 7 Algoritma dan Struktur Data 1 (KP002)


Tipe namafungsi(parameter)
{
- Perintah yang akan
- dikerjakan ketika
- fungsi dipanggil
}

CONTOH DEFINISI FUNGSI SEBELUM FUNGSI UTAMA :

#include <stdio.h>
}
int luaspersegipanjang(int P, int L)
{
int Luaspp;
Luaspp=P*L;
return Luaspp;

main()
{
int panjang, lebar,luas; Contoh Definisi
fungsi sebelum
printf("Masukkan Panjang="); fungsi utama
scanf("%i",&panjang);
printf("Masukkan Lebar=");
scanf("%i",&lebar);
luas=luaspersegipanjang(panjang,lebar);
printf("Luas Persegi Panjang=%i",luas);
}
Pada contoh diatas jika sebuah fungsi sudah didefinisikan sebelum fungsi
utama maka fungsi tersebut tidak perlu di deklarasikan.

Analisis dan Desain Algoritma (PG167) 8 2019/2020


CONTOH DEFINISI FUNGSI SESUDAH FUNGSI UTAMA :

#include <stdio.h>
int luaspersegipanjang(int P, int L);
main()
{
int panjang, lebar,luas;
printf("Masukkan Panjang=");
scanf("%i",&panjang);
printf("Masukkan Lebar=");
scanf("%i",&lebar);
luas=luaspersegipanjang(panjang,lebar);
printf("Luas Persegi Panjang=%i",luas);
}

luaspersegipanjang(int P, int L)
{ Definisi fungsi
setelah fungsi utama
int Luaspp;
Luaspp=P*L;
return Luaspp;
}

Berdasarkan contoh program diatas jika sebuah fungsi didefinisikan setelah


fungsi utama maka fungsi harus di deklarasikan terlebih dahulu sebelum
fungsi utama
Contoh-1 implementasi deklarasi dan definisi fungsi dalam
bahasa C:

2019/2020 9 Algoritma dan Struktur Data 1 (KP002)


Deklarasi Fungsi
- Diletakkan sebelum fungsi
utama
- Diakhiri dengan titik koma(;)

Definisi Fungsi
- Boleh sebelum fungsi
utama atau setelah fungsi
utama
- Setelah nama fungsi
tidakada titik koma(;)

Output :

Contoh-2 implementasi deklarasi dan definisi fungsi dalam


bahasa C:

#include<stdio.h>
void main()
{
CETAK();
}
void CETAK() Sewaktu compile
terjadi Error
{
Error karena fungsi
printf(“Jakarta”); CETAK
tidak dideklarasi
} sebelumnya

Contoh yang benar :

Analisis dan Desain Algoritma (PG167)


Fungsi CETAK ditulis 10
disini2019/2020
diatas atau sebelum fungsi
main()
#include<stdio.h>
void CETAK()
{
printf(“Jakarta”);
}
void main()
{
CETAK();
}
Output :

Keterangan :
Bila Fungsi CETAK( ) ditulis diatas atau sebelum Fungsi main( ), maka tidak
diperlukan lagi menDEKLARASIKAN Fungsi CETAK.

1.5. PARAMETER FUNGSI


Terdapat dua macam parameter fungsi, yaitu :
a. Parameter Formal : variabel yang ada pada daftar parameter dalam
definisi fungsi
b. Parameter Actual : variabel yang dipakai dalam pemanggilan fungsi
Bentuk penulisan parameter formal dan parameter actual
Contoh paramater Formal :
main()
{
.....
X=Total (A,B) Parameter Formal
......
}

Contoh Parameter Actual :


float Total(float A,Float B)

1
2019/2020 Algoritma dan Struktur Data 1 (KP002)
1
{
return(A+B)
}

1.6. VARIABEL LOKAL DAN GLOBAL DALAM FUNGSI


a. Variabel Lokal :
Variabel lokal adalah variabel yang hanya dikenali oleh sebuah fungsi / prosedur
saja (hanya dikenali pada fungsi / prosedur tempat variabel tersebut
dideklarasikan). Hal tersebut karena proses deklarasi variabel lokal dilakukan di
dalam lingkup fungsi yang dimaksud.Semua variabel yang ada dalam fungsi
utama main(), juga bersifat LOKAL, hanya dikenal dalam fungsi main() saja,
tidak dikenal didalam fungsi lain.
Contoh implementasi variabel lokal dalam bahasa C:

b. Variabel Global :
Apabila di dalam kode program membutuhkan sebuah variabel yang dapat
dikenali oleh semua lingkungan dalam program yang kita buat, maka variabel
tersebut harus dideklarasikan sebagai variabel yang bersifat global.

Analisis dan Desain Algoritma (PG167) 12 2019/2020


Dalam bahasa C++ sendiri kita telah mengetahui bahwa struktur program
dalam bahasa C++ selalu ada fungsi utama dengan nama main() . Apabila kita
mendeklarasikan sebuah variabel diluar fungsi main() / fungsi lain / prosedur
lain, maka dengan sendirinya compiler akan menganggap variabel tersebut
sebagai variabel global.
Jadi Variabel global adalah variabel yang dapat digunakan atau dipanggil atau
dikenali oleh semua fungsi / prosedur / dikenali diseluruh program. Variabel
global ini dapat digunakan pada beberapa fungsi / prosedur, Hal ini betujuan
untuk menghemat penulisan, karena tidak perlu lagi berkali - kali menuliskan
variabel yang sama pada beberapa fungsi / prosedur.
Contoh implementasi variabel global dalam bahasa C :

Variabel T didefinisikan
tersndiri diatas (sebelum)
semua fungsi, sehingga
variabel T berlaku disemua
tempat, baik dalam program
utama (main() ) maupun
dalam sub program atau
fungsi-fungsi yang dibuat .
Variable T disebut bersifat
GLOBAL

Output :

Keterangan program :
Dari contoh program diatas, main program atau main function disebut CALLING
Function, yaitu program yang mengCall, dan Fungsi CETAK disebut CALLED
1
2019/2020 Algoritma dan Struktur Data 1 (KP002)
3
Function karena dia merupakan fungsi yang di Call.

1.7. SEBUAH FUNGSI DAPAT MEMANGGIL FUNGSI YANG LAIN


Sebuah fungsi dapat memanggil fungsi yang lain, maksudnya, dalam sebuah
fungsi, boleh saja ada instruksi yang memanggil fungsi yang lain
Pada contoh program dibawah ini dalam Fungsi HITUNG() ada instruksi yang
memanggil Fungsi TAMBAH().
Contoh implementasi programsebuah fungsi memanggil fungsi yang lain :

Output :

Analisis dan Desain Algoritma (PG167) 14 2019/2020


1.8. FUNGSI REKURSI
Fungsi rekursi adalah suatu fungsi yang memanggil dirinya sendiri, artinya
fungsi tersebut dipanggil didalam tubuh fungsi itu sendiri
Contoh soal -1 :
Susun algoritma untuk menginput sebuah nilai integer (misal masuk ke variabel
N ), kemudian hitung N! ( baca: N faktorial)
Contoh bila N = 5, maka N! = 5 * 4 * 3 * 2 * 1 = 120 (Jadi 5 ! = 120)
Jawab Soal-1 dalam Bahasa C:

Output :

1
2019/2020 Algoritma dan Struktur Data 1 (KP002)
5
SOAL LATIHAN
Soal-1
Apa yang tercetak bila program-program berikut ini dijalankan :
A. B.
#include <stdio.h> #include<stdio.h>
int PROSES(int A);
void CETAK ( int *Q);
main()
{
int I,A;
main()
A=15;
for(I=1; I<=3; I++) {
{
int A[10] = { 12,7,5,15,17,
A = PROSES(A);
printf(“ %i \n”, A); 10,14,25,8,11};
}
int *P;
}
int PROSES(int A) P = A;
{
CETAK(P);
A=A*2;
return(A); }
}

void CETAK (int *Q)


{ int I;
for(I=1; I<=5; I++ )
{ printf("\n%i",*Q);
Q+=2;
}
}

Soal -2 :
Sudah dibuat program induk yaitu fungsi main( ) sebagai berikut :
#include <stdio.h>
void main()
{ int A[100];

Analisis dan Desain Algoritma (PG167) 16 2019/2020


Lanjutkan atau lengkapi program diatas, untuk mengisi array A sampai penuh
dengan nilai-nilai integer (nilai ujian 100 orang mahasiswa) yang diinput dari
luar, dimana proses penginputan dan pengisiannya kedalam array dilakukan
dalam sebuah Fungsi. Nama Fungsi dapat dikarang sendiri. Penempatan
penulisan Fungsi bebas, dapat ditulis diatas atau dibawah Fungsi main.
Kemudian tambahkan sebuah Fungsi lain yang gunanya menghitung nilai rata-
rata isi array tersebut (nilai rata-rata ujian mahasiswa). Dan cetak nilai rata-
rata tersebut, dimana instruksi mencetaknya berada dalam Fungsi main juga.
Soal -3
Susun program untuk menginput sebuah nilai integer lebih besar dari 10, (misal
N) kemudian menghitung dan mencetak total :
1+2+3+4+5+…+…+…+N
dimana instruksi input ditulis dalam program induk (fungsi main), proses
penghitungan total dilakukan didalam sebuah Fungsi yang dibuat sendiri, dan
instruksi mencetak total ditulis dalam program induk (dalam Fungsi main ).
(Buat menggunakan fungsi rekursi

KESIMPULAN
1. Jenis fungsi ada dua :
a. Void (fungsi yang tidak perlu return atau mengembalikan nilai)
b. Non-void (fungsi yang harus ada return atau mengembalikan nilai)
2. Pemanggilan fungsi :
a. Call By value
b. Call by Reference
3. Deklarasi fungsi adalah judul fungsi yang sederhana yang diikuti oleh tanda
semicolon( ;). Deklarasi fungsi diletakkan sebelum fungsi utama atau
main().
4. Definisi fungsi adalah fungsi yang lengkap, terdiri dari judul dan isinya.
5. Variabel lokal adalah variabel yang hanya dikenali oleh sebuah fungsi /
prosedur saja (hanya dikenali pada fungsi / prosedur tempat variabel
tersebut dideklarasikan)
6. Variabel global adalah variabel yang dapat digunakan atau dipanggil atau
dikenali oleh semua fungsi / prosedur / dikenali diseluruh program

1
2019/2020 Algoritma dan Struktur Data 1 (KP002)
7
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS BUDI LUHUR
Jl. Raya Ciledug, Petukangan Utara, Pesanggrahan
Jakarta Selatan, 12260
Telp: 021-5853753 Fax : 021-5853752
http://fti.budiluhur.ac.id

Anda mungkin juga menyukai