Fungsi dan Prosedur dalam Bahasa Pascal

Apa itu fungsi dan prosedur, apa saja perbedaan diantara keduanya, dan juga masing-masing contohnya

  • #programming
  • #pascal
  • #indonesian
  • Posted on 5 January 2023
  • 0.0 min read

Table of Contents

  1. Fungsi
    1. Dalam Matematika
    2. Sintaksis Fungsi
    3. Contoh Fungsi
      1. f(x) = x + 1
      2. Angka ganjil
      3. Kalkulator
      4. Fungsi rekursif
  2. Prosedur
    1. Sintaksis Prosedur
    2. Contoh Prosedur
      1. Menukar dua variabel
      2. Menampilkan array integer
  3. Perbedaan Fungsi dan Prosedur

Fungsi

Fungsi atau function, layaknya sebuah fungsi dalam matematika, digunakan untuk menjalankan kode dan juga mengembalikan nilai. Nilai ini dapat berupa dalam tipe data apapun (integer, string, boolean, dll).

Dalam Matematika

Perhatikan contoh sebuah fungsi matematika berikut:

f(x)=x+1f(x) = x + 1

Dalam fungsi tersebut, xx dapat diisi dengan angka berapapun, dan hasil dari perhitungan tersebut akan dikembalikan oleh f.f. Misalkan jika x=1x = 1 maka dapat diketahui bahwa f(1)=1+1=2.f(1) = 1 + 1 = 2.

Sintaksis Fungsi

function NAME(PARAMETER): TYPE;
{ definisi variabel lokal }
begin
  STATEMENT; { opsional }
  NAME := VALUE;
end;

Fungsi dalam bahasa Pascal memiliki bentuk seperti diatas, dimana:

  • NAME adalah nama dari fungsi tersebut,
  • PARAMETER adalah kumpulan variabel yang bisa dimasukkan, parameter dalam fungsi harus berurutan,
  • TYPE adalah tipe data dari nilai yang dikembalikan,
  • Deklarasi variabel lokal jika diperlukan,
  • STATEMENT adalah kode yang akan dieksekusi, dan
  • VALUE adalah nilai yang dikembalikan oleh fungsi.

Seluruh fungsi dalam kode Pascal harus didefinisikan sebelum kode utama dan jika fungsi digunakan dalam fungsi lain, maka fungsi harus sesuai dengan urutan penggunaannya.

Contoh Fungsi

f(x) = x + 1

f(x)=x+1f(x) = x + 1 jika diimplementasikan ke dalam bahasa Pascal.

program f;
var i : integer;

function f(x: integer): integer;
begin
  f := x + 1;
end;

begin
  write('x = '); readln(i);
  writeln('f(', i,') =', ' ', i, ' + 1 = ', f(i));
end.

Angka ganjil

Fungsi adalahGanjil akan mengembalikan true jika angka yang dimasukkan adalah ganjil, dan false jika genap. Pada contoh ini fungsi mengembalikan tipe data boolean sehingga dapat digunakan dalam percabangan.

program ganjil;
var i : integer;

function adalahGanjil(x: integer): boolean;
begin
  adalahGanjil := (x mod 2 = 1);
end;

begin
  write('masukkan angka '); readln(i);
  if adalahGanjil(i) then
    writeln('angka ', i, ' adalah ganjil')
  else
    writeln('angka ', i, ' adalah genap');
end.

Kalkulator

Fungsi kalkulator mengambil 2 buah parameter integer x & y, dan 1 parameter string operasi, parameter operasi ini menentukan operasi yang dilakukan pada x & y yang telah dimasukkan ke dalam fungsi.

program kalkulator;
var
  a, b : real;
  c : string;

function kalkulator(x, y: real; operasi: string): real;
begin
  case operasi of
    'tambah': kalkulator := x + y;
    'kurang': kalkulator := x - y;
    'kali': kalkulator := x * y;
    'bagi': kalkulator := x / y;
  end;
end;

begin
  write('a = '); readln(a);
  write('b = '); readln(b);
  write('operasi? (tambah/kurang/kali/bagi) '); readln(c);
  writeln('hasilnya ', kalkulator(a, b, c):1:3);
end.

Fungsi rekursif

Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Contoh ini mempunyai fungsi fibonacci untuk menghasilkan barisan angka fibonacci.

program fibonacci;
var n, i: integer;

function fibonacci(n: integer): integer;
begin
  if n = 0 then
    fibonacci := 0
  else if n = 1 then
    fibonacci := 1
  else
    fibonacci := fibonacci(n-2) + fibonacci(n-1)
end;

begin
  readln(n);
  write(fibonacci(0));
  for i := 1 to n do write(', ', fibonacci(i));
end.

Prosedur

Prosedur atau procedure sangatlah serupa dengan fungsi, tapi bedanya suatu prosedur tidak dapat mengembalikan nilai. Oleh karena itu, prosedur lebih sering digunakan untuk menjalankan kode yang dijalankan sendiri.

Sintaksis Prosedur

procedure NAME(PARAMETER);
{ definisi variabel lokal }
begin
  STATEMENT;
end;

Prosedur mempunyai sintaksis yang serupa pula dengan sintaksis fungsi.

  • NAME adalah nama dari fungsi tersebut,
  • PARAMETER adalah kumpulan variabel yang bisa dimasukkan, parameter dalam fungsi harus berurutan,
  • STATEMENT adalah kode yang akan dieksekusi, dan

Contoh Prosedur

program tukar;
var a, b: integer;

procedure tukar(var x, y: integer);
var z: integer;
begin
  z := x;
  x := y;
  y := z;
end;

begin
  write('a = '); readln(a);
  write('b = '); readln(b);
  tukar(a, b);
  writeln('setelah ditukar:');
  writeln('a = ', a, ', b = ', b);
end.

Menampilkan array integer

procedure tampil(data: array of integer);
var i: integer;
begin
  for i := 1 to n do write(data[i]:3);
end;

Perbedaan Fungsi dan Prosedur

Satu-satunya perbedaan fungsi dan prosedur ialah pengembalian nilai. Jika fungsi dikembalikan nilainya, jika prosedur tidak.


Loading comments...