fungsi dan limit fungsi struktur (1)

I. Tujuan
Setelah Menyelesaikan praktek ini mahasiswa dapat

:

1. Menjelaskan tentang langkah-langkah pembuatan fungsi.
2. Menjelaskan tentang bentuk umum dan khusus tentang fungsi tersebut.
3. Membuat algoritma dari struktur fungsi yang melibatkan permasalahan-permasalahan
yang ada.
II. Alat dan Bahan


PC minimal P-233 MMX



Disket DOS/Start Up Win98 , Program Bahasa Pascal, Disket Data dan Word
Processing.

III. Dasar Teori
Fungsi (function) adalah modul program yang memberikan/mengembalikan (return)

sebuah nilai dan tipe data tertentu (tipe dasar atau tipe bentukan). Definisi fungsi
dalam program bersesuaian dengan definisi fungsi di dalam matematika. Ada beberapa
hal yang harus diketahui untuk pembuatan fungsi, antara lain :
1. Definisi Fungsi
2. Pemanggilan Fungsi

1. Definisi Fungsi
Struktur fungsi pada prinsipnya sama dengan struktur algoritma, dimana ada bagian
JUDUL (header) yang terdiri atas nama fungsi dan komentar yang menjelaskan
spesifikasi fungsi tersebut, bagian DEKLARASI dan BADAN Fungsi.
Notasi Algoritma pendefinisian struktur fungsi
Function NamaFungsi (input daftar_parameter_formal)  tipe hasil
{spesifikasi fungsiberisi penjelasan tentang yang dilakukan fungsi ini }
DEKLARASI
{semua nama yang dipakai dalam fungsi dan hanya berlaku lokal di dalam fungsi}
DESKRIPSI
{badan fungsi,berisi kumpulan instruksi atau aksi yang dilakukan oleh suatu fungsi}

Page 1


Return hasil {pengembalian nilai yang dihasilkan fungsi}

2

Contoh fungsi untuk menghasilkan nilai f(x)=2x + 5x – 8; xR
Function F (input x : real )

real

{mengembalikan nilai f(x)=2x2 + 5x – 8; xR
DEKLARASI
{tidak ada}
DESKRIPSI f2*x*x+
Return f
2. Pemanggilan Fungsi
Fungsi bukanlah program yang berdiri sendiri, jadi tidak dapat dieksekusi secara
langsung.
Intruksi yang ada di dalam fungsi dapat dilaksanakan hanya bila fungsi tersebut
diakses.


Fungsi diakses

dengan

cara

memanggil

namanya

pemanggil{program utama atau modul program lain}
Contoh pemanggilan Fungsi F(x)

Algoritma fungsi_f {contoh pemanggilan fungsi}
{algoritma utama tentang cara memanggil fungsi f(x)}
DEKLARASI
function F(input x:real) real
{ mengembalikan nilai f(x)=2x2 + 5x – 8; xR }
………………………
X:real


DESKRIPSI
{buat header tabel}
Write (‘_ _ _ _ _ _ _ _ _ _’)
Write (‘

x

f(x)

’)

Write (‘_ _ _ _ _ _ _ _ _ _’)
X10.0

Page 2

dari

program


While x 15.0 do
Write (x,’

‘,f(x)

Xx+0.2
Endwhile
Write (‘_ _ _ _ _ _ _ _ _ _’)

Contoh implementasi :

IV. Langkah Kerja
1. Hidupkan komputer anda !
2. Jalankan Microsoft Word, dengan cara menekan tombol StartProgramMS
Office 2000Microsoft Word. Selanjutnya tuliskan algoritma dari permasalahan
berikut ini dan simpan dalam satu nama file : Lat07.doc.
3. Kasus 1 :
Buatlah algoritma dengan model fungsi dan tuliskan langsung dalam satu algoritma
utama untuk mengetahui suatu bilangan bulat yang dimasukkan dari keyboard itu

bilangan ganjil atau genap. Dimana fungsi yang dibangun menghasilkan data hasil
bertipe boolean.
Program ganjil_genap
{program utama menentukan ganjil atau genap dengan memanggil fungsi}

Page 3

DEKLARASI
a:integer
b:boolean
Function ganjilgenap(input x:int) → boolean
{ mengembalikan nilai ganjil genap dengan tipe Boolean }
DEKLARASI
y : boolean
DESKRIPSI
If (x mod 2 = 0) Then
y ← true
End If
Return y
DESKRIPSI

input(a)
If ganjilgenap(a) = true Then
output(‘genap’)
Else
output(‘ganjil’)
End If

4. Kasus 2 :
Buatlah algoritma berupa fungsi dan algoritma utama untuk mencari nilai
maksimum dari tiga nilai yaitu x , y dan z
Algoritma Nilai_Maks
{Mencari nilai maksimum dari tiga nilai menggunakan fungsi}
Deklarasi
x,y,z:integer
Function nilaimaks(input a,b,c:integer) → integer
{fungsi mencari nilai maksimum dari tiga nilai}
Deklarasi
{ tidak ada }
Deskripsi
If a > b && a > c Then

output(a)
Else If b > a && b > c Then
output(b)
Else
output(c)
End If

Page 4

Deskripsi
input(x)
input(y)
input(z)
output(cari_maks(x,y,z))

5. Kasus 3 :
Rubahlah prosedur hitung luas persegi panjang berikut ini menjadi suatu fungsi:
Algoritma L_persegipanjang
{program utama hitung Luas Persegi Panjang}
DEKLARASI

A,B,C : Integer
Procedure HitungLuasPersegipanjang (Input Panjang, Lebar : integer, ouput
luas :integer)
{menghitung luas persegi panjang dengan rumus Luas=panjang x lebar}
{K.Awal

: sembarang}

{K.Akhir

: Luas berisi luas persegi panjang. Nilai Luas dikirim ke titik

pemanggilnya}
DEKLARASI
{tidak ada}
DESKRIPSI
Read (panjang,lebar) {parameter input data} Luas

panjang*lebar


DESKRIPSI { Algoritma utama }
A

10

B

5

Write(‘Menghitung Luas Persegi Panjang’) HitungLuasPersegipanjang(A,B,C)
HitungLuasPersegipanjang(2,15,C) Write(‘Selesai’)
Fungsi :
Algoritma Luas_persegipanjang
{program utama menghitung Luas Persegi Panjang}
Deklarasi
A,B,C : Integer
Function HitungLuasPersegipanjang (Input Panjang, Lebar : integer) → Integer
{hitung luas persegi panjang dengan rumus Luas=panjang x lebar}

Page 5


{K.Awal

: terserah}

{K.Akhir

: menampilkan luas persegi panjang. Nilai Luas dikirim ke titik

pemanggilnya}
Deklarasi
Luas:integer
Deskripsi
Luas ← panjang * lebar
return Luas
Deksripsi
A ← 10
B←5
output(‘Menghitung Luas PersegiPanjang’)
output(HitungLuasPersegipanjang(A,B))
output(HitungLuasPersegipanjang(10,5))
output(‘Selesai’)

6. Kasus 4 :
Buatlah algoritma dengan model fungsi dan tuliskan langsung dalam satu algoritma
utama untuk menentukan nama-nama bulan berdasarkan kode angka bulan dalam
satu tahun. Dimana fungsi yang dibangun menghasilkan data hasil bertipe string.
Algoritma namabulan
{menampilkan nama bulan berdasarkan kode bulan yang diinputkan}
Deklarasi
kode : integer
function namaBulan (input no : integer) → string
{fungsi untuk menampilkan nama bulan dari kode bulan yang di inputkan}
Deklarasi
{ tidak ada}
Deskripsi
Case no of
1: output (‘Nama bulan yang pertama : Januari’)
2: output (‘Nama bulan yang pertama: Februari’)
3: output (‘Nama bulan yang pertama: Maret’)
4: output (‘Nama bulan yang pertama: April’)
5: output (‘Nama bulan yang pertama: Mei’)
6: output (‘Nama bulan yang pertama: Juni’)
7: output (‘Nama bulan yang pertama: Juli’)
8: output (‘Nama bulan yang pertama: Agustus’)

Page 6

9: output (‘Nama bulan yang pertama: September’)
10: output (‘Nama bulan yang pertama: Oktober’)
11: output (‘Nama bulan yang pertama: November’)
12: output (‘Nama bulan yang pertama: Desember’)
otherwise
output (‘hanya terdapat 12 bulan dalam satu tahun’)
endcase
Deskripsi
Output (‘Mengetahui nama bulan secara urut dalam satu tahun’)
output (‘Masukan kode bulan (1..12) : ’)
input(kodeBln)
output(bulan(kodeBln))

7. Cobalah anda implementasikan permasalahan nomor 3, 4, 5, dan 6 ke dalam bentuk
program dengan menggunakan bahasa pemrograman C.
Implementasi kasus 1
Fungsi bilangan genap dan ganjil
#include
#include
boolean jenisbil (int x)
{
boolean y;
if(x%2==0)
{y= true;}
return y;
}
main()
{
int a;
printf("Masukan suatu bilangan : "); scanf("i",&a);
if (jenisbi(a))
{printf("Angka Genap");}
else
{printf("Angka Ganjil");}
}

Implementasi kasus 2
#include
int maks (int a,int b,int c)
{

Page 7

if(a > b && a > c)
{
printf("Nilai Maks dari %i %i %i adalah %i",a,b,c,a);
}
else if(b > a && b > c)
{
printf("Nilai Maks dari %i %i %i adalah %i",a,b,c,b);
}
else
{
printf("Nilai Maks dari %i %i %i adalah %i",a,b,c,c);
}
return 0;
}
main()
{
int x,y,z;
printf("Masukkan bilangan pertama= ");scanf("%i",&x);
printf("Masukkan bilangan kedua = ");scanf("%i",&y);
printf("Masukkan bilangan ketiga = ");scanf("%i",&z);
maks(x,y,z);
}

Implementasi kasus 3
#include
int HitungLuasPersegipanjang(int panjang, int lebar)
{
int Luas;
Luas = panjang * lebar;
return Luas;
}
main()
{
int A,B;
A = 10;
B = 5;
printf("Menghitung Luas Persegi Panjang\n");
printf("Luas = %i\n",HitungLuasPersegipanjang(A,B));
printf("Luas = %i\n",HitungLuasPersegipanjang(2,15));
printf("Selesai");
}

Page 8

Implementasi kasus 4
#include
int namaBln(int no)
{
switch(no)
{
case 1 :
printf("Nama bulan yang pertama : Januari\\n");
break;
case 2 :
printf("Nama bulan yang kedua : Februari\n");
break;
case 3 :
printf("Nama bulan yang ketiga : Maret\n");
break;
case 4 :
printf("Nama bulan yang ke empat : April\n");
break;
case 5 :
printf("Nama bulan yang kelima : Mei\n");
break;
case 6 :
printf("Nama bulan yang ke enam : Juni\n");
break;
case 7 :
printf("Nama bulan yang ke tujuh : Juli\n");
break;
case 8 :
printf("Nama bulan yang ke delapan : Agustus\n");
break;
case 9 :
printf("Nama bulan yang ke sembilan : September\n");
break;
case 10 :
printf("Nama bulan yang ke sepuluh : Oktober\n");
break;
case 11 :
printf("Nama bulan yang ke sebelas : November\n");
break;
case 12 :
printf("Nama bulan yang ke duabelas : Desember");
break;
default :
printf("Hanya terdapat 12 bulan dalam atu tahun");
}
return 0;
}
main()
{
int kodeBln;
printf("Mengetahui nama bulan secara urut dalam satu tahun");
printf("Masukan kode bulan : ");scanf("%i",&kodeBln);
namaBln(kodeBln);
}

Page 9

Page
10

V.

Soal dan Pertanyaan
1.

Menurut anda kapankah suatu modul program itu dideklarasikan sebagai suatu
fungsi ? sertai jawaban anda dengan contoh permasalahan dan penyelesaiannya
dalam program.

2.

Menurut anda kapankah suatu modul program itu dideklarasikan sebagai suatu
prosedur ? sertai jawaban anda dengan contoh permasalahan dan penyelesaiannya
dalam program.

3. Dapatkah suatu prosedur diubah ke dalam bentuk fungsi ? berilah alasannya dan
sertai pula dengan contoh permasalahan.
4. Apa yang anda ketahui tentang rekursi ? Berilah contoh permasalahan dan
penyelesaiannya dalam program.
5. Buatlah kesimpulan dari praktik yang anda lakukan dari jobsheet ke tujuh ini

Page
11

VI. Penutup
Demikian laporan job tujuh ini saya buat. Apabila terdapat kesalahan dalam penulisan
mohon kritik dan sarannya.

Page
12

VII. Daftar Pustaka

Jobsheet Algo 07.pdf
Handoko, S. 2011. BUKU AJAR LOGIKA & ALGORITMA.pdf. Semarang: Politeknik
Negeri Semarang.

Page
13

VIII. Lampiran
Jawaban :
1. Modul di deklarasikan ssebagai fungsi ketika :
program yang dibuat terdapat perhitungan aritmatik, dan perhitungan tersebut
digunakan berulang kali.
Contoh :
Algoritma L_PersegiPanjang
{Menghitung luas persegi panjang menggunakan function}
Kamus
panjang, lebar : integer
function L (input panjang : int, lebar : int) →int
L
panjang *lebar
Algoritma
input(panjang)
input(lebar)
L(panjang , lebar)
Output(L)
2. Suatu modul di deklarasikan sebagai prosedure ketika :
Suatu program yang besar dan rumit, akan dibuat menjadi bagian-bagian program kecil,
sehingga mudah dalam mendeteksi error dan tidak semrawur dalam satu fungsi.
Contoh :
Algoritma Liburan
{Program yang digunakan menampilkan kata selamat sebanyak 20 kali}
DEKLARASI
I = integer
Procedur Liburan
{Prosedur untuk menampilkan kalimat “Selamat libur akhir semester satu!
\m/”}
(K. Awal = sembarang}
{K. Akhir = ucapan tercetak sebanyak 20 kali}
DEKLARASI
{tidak ada}
DEKSRIPSI
Print (“Liburan”)
DESKRIPSI
For I ← 1 to 20 do
Liburan
Endfor

3. Dalam suatu fungsi dapat diubah menjadi prosedur yaitu ketika :
program tersebut terdapat proses perhitungan, tetapi bila tidak terdapat proses
perhitungan (terdapat operasilogika ataupun aritmatika)
Contoh :

Page
14

Dalam bentuk prosedur :
Algoritma L_persegipanjang
{program utama untuk menghitung Luas Persegi Panjang}
DEKLARASI
A,B,C : Integer
Procedure HitungLuasPersegipanjang (Input Panjang, Lebar : integer, ouput
luas :integer)
{menghitung luas persegi panjang dengan rumus Luas=panjang x lebar}
{K.Awal : sembarang}
{K.Akhir : Luas berisi luas persegi panjang. Nilai Luas dikirim ke titik
pemanggilnya}
DEKLARASI
{tidak ada}
DESKRIPSI
Read(panjang,lebar) {parameter input data}
Luas ← panjang*lebar
DESKRIPSI { Algoritma utama }
A←6
B←8
Write (‘Menghitung Luas PersegiPanjang’)
HitungLuasPersegipanjang(A,B,C)
HitungLuasPersegipanjang(2,15,C)
Write(‘Selesai’)
Dalam bentuk fungsi
Algoritma Luas_persegipanjang
{program utama untuk menghitung Luas Persegi Panjang}
DEKLARASI
A,B,C : Integer
Function HitungLuasPersegipanjang (Input Panjang, Lebar : integer, ) → integer
{menghitung luas persegi panjang dengan rumus Luas=panjang x lebar}
{K.Awal : sembarang}
{K.Akhir : menampilkan Luas persegi panjang. Nilai Luas dikirim ke
titik pemanggilnya}
Page
15

DEKLARASI
{tidak ada}
DESKRIPSI
Read(panjang,lebar) {parameter input data}
Luas ← panjang*lebar
Return Luas
DESKRIPSI { Algoritma utama }
A←6
B←8
Write(‘Menghitung Luas PersegiPanjang’)
HitungLuasPersegipanjang(A,B)
HitungLuasPersegipanjang(9,10)
Print (“Luas persegi panjang adalah ”, Luas)
Write(‘Selesai’)
4. Rekursi adalah
Perulangan rekursif merupakan salah satu metode didalam pemrograman yang mana
dalam sebuah fungsi terdapat intruksi yang memanggil fungsi itu sendri, atau lebih
sering disebut memanggil dirinya sendiri.

using System;
namespace Rekursi
{
class Aritmatika
{
public static void Main(string[] args)
{
Console.Clear();
Console.WriteLine("Menghitung faktorial n \n");
Console.Write("n = ");
int n = Int32.Parse(Console.ReadLine());

}

Aritmatika hitung = new Aritmatika();
Console.WriteLine("{0}! = {1} ",n,hitung.faktorial(n));

// fungsi rekursi
long faktorial(int n)
{
try
{
if (n == 0)
return (1);

Page
16

else
return (n * faktorial(n-1));
}

}
}

catch (Exception e)
{
Console.WriteLine(e.ToString());
return 1;
}

}

5. Fungsi (function) adalah modul program yang memberikan/mengembalikan (return)

sebuah nilai dan tipe data tertentu (tipe dasar atau tipe bentukan). Definisi fungsi
dalam program bersesuaian dengan definisi fungsi di dalam matematika.

Page
17