Indikator Pencapaian Kompetensi
IPK Pengetahuan
- Menjelaskan konsep fungsi dalam bahasa pemrograman
- Menerapkan fungsi-fungsi buatan sendiri
- Menerapkan fungsi-fungsi bawaan dari bahasa pemrograman
IPK Keterampilan
- Membuat aplikasi dengan fungsi buatan sendiri
- Membuat aplikasi dengan fungsi bawaan bahasa pemrograman
Tujuan Pembelajaran
- Siswa dapat menerapkan fungsi dan prosedur buatan sendiri maupun bawaan dalam suatu aplikasi
- Siswa dapat mengetahui salah satu teknik pemrograman terstruktur yaitu pada pembuatan Sub Program atau penerapan konsep program modular.
Materi Kegiatan Pembelajaran
PROCEDURE DAN FUNCTION
Prosedur maupun fungsi adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). Prosedur diawali dengan kata cadangan “Procedure” sedangkan fungsi diawali dengan kata cadangan “Fungction” pada bagian deklarasinya.
Statement;
. . .
Statement;
End;
Atau :
Procedure Nama_Prosedur(Daftar Parameter); Begin
Statement;
. .
Statement;
End;
Bentuk Umum Pendeklarasian Fungsi :
Function Nama_Fungsi : Type_Data;
Begin
Statement;
. . .
Statement;
End;
Function Nama_Fungsi(Daftar Parameter): Type_Data; Begin
Statement;
. . .
Statement;
End;
Contoh Program :
{ Contoh Pemakaian Procedure dan Fungsi }
Uses CRT;
Var
op1,op2 : integer;
Hasil : integer;
{ Prosedur cetak hasil }
Procedure Cetak_hasil(hasil :integer);
Begin
Write(' Hasil Penjumlahan = ',hasil);
End;
Tambah := a + b;
End;
{ Program Utama } Begin
Clrscr;
Write(' Masukkan Operand 1 = '); Readln(op1);
Write(' Masukkan Operand 2 = '); Readln(op2);
hasil := Tambah(op1,op2); Cetak_Hasil(hasil); Readln;
End.
Parameter Formal adalah variabel yang ada pada daftar
parameter dalam definisi fungsi atau prosedur.
Parameter Aktual adalah variabel (parameter) yang dipakai
dalam pemanggilan fungsi atau prosedur
Dalam contoh program pertambahan di atas parameter formal terdapat pada pendefinisisan fungsi dan Procedure.
Procedure Cetak_hasil(hasil :integer);
Function Tambah(a: integer; b:integer):integer;
Sedangkan parameter aktual terdapat pada pemanggilan fungsi
atau procedure hasil :=
Tambah(op1,op2);
Cetak_Hasil(hasil);
CARA MELEWATKAN PARAMETER
(Call by Reference).
Fungsi dan prosedur yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi atau prosedur.
Perubahan nilai di fungsi atau prosedur (parameter formal) tidak akan merubah nilai asli di bagian program yang memanggilnya.
Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian program yang memanggil fungsi atau prosedur ke fungsi atau prosedur yang dipanggil.
Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk sebuah variabel, elemen array atau konstanta saja.
Contoh Program :
{ Program pemanggilan prosedur atau fungsi secara pengiriman nilai (call by value) }
Uses CRT;
Var
a,b : integer;
{ Deklarasi Procedure Tukar } Procedure tukar(x:integer;y:integer); Var
z : integer; { variabel sementara } Begin
{ tukar nilai x dan y }
z := x;
x := y;
y := z;
Writeln(' Nilai di akhir fungsi tukar() '); Writeln(' x = ',x,', y = ', y);
End;
Clrscr;
{ inisialisasi nilai a dan b } a := 15;
b := 10;
Writeln('<< Nilai sebelum pemanggilan fungsi >>'); Writeln(' a = ',a,' b = ',b);
tukar(a,b); { pemanggilan prosedur tukar()} Writeln('<< Nilai setelah pemanggilan fungsi >>'); Writeln(' a = ',a,' b = ',b);
Readln;
End.
Pemanggilan Secara Referensi (Call by Reference)
Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat dari suatu variabel ke dalam fungsi atau prosedur.
Yang dikirimkan ke fungsi atau prosedur adalah alamat letak dari nilai datanya, bukan nilai datanya.
Fungsi atau prosedur yang menerima kiriman alamat ini akan menggunakan alamat yang sama untuk mendapatkan nilai datanya.
Perubahan nilai di fungsi atau prosedur akan merubah nilai asli di bagian program yang memanggil fungsi atau prosedur.
Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu dari fungsi atau prosedur pemanggil ke fungsi atau prosedur yang dipanggil dan juga sebaliknya.
Pengiriman secara acuan tidak dapat dilakukan untuk suatu ungkapan.
Contoh Program :
{ Program pemanggilan prosedur atau fungsi secara pengiriman referensi (call by reference) }
Uses CRT;
Var
a,b : integer;
End;
Clrscr;
Writeln('<< Nilai sebelum pemanggilan fungsi >>'); Writeln(' a = ',a,' b = ',b);
tukar(a,b); { pemanggilan prosedur tukar()} Writeln('<< Nilai setelah pemanggilan fungsi >>');
Writeln(' a = ',a,' b = ',b);
Readln;
End.
PENGGOLONGAN VARIABEL
Variabel lokal
Variabel global (eksternal)
Variabel global (eksternal) adalah variabel yang dideklarasikan di luar fungsi.
Sifat-sifat variabel global :
Dikenal (dapat diakses) oleh semua fungsi.
Jika tidak diberi nilai awal secara otomatis berisi nilai nol.

Penilaian / TUGAS :
Buatlah fungsi untuk menentukan apakah suatu bilangan adalah bilangan ganjil atau bilangan genap.
Buatlah prosedur yang akan meng-input 10 data numerik lalu akan melakukan pensortiran secara Ascending (dari terkecil ke terbesar).
Buatlah suatu fungsi yang akan memulangkan nilai faktorial dari suatu bilangan.