Melayani Dengan Nurani

IA

28 Agustus 2020

Menerapkan Penggunaan Fungsi dan Prosedur

 PROCEDURE DAN FUNCTION

Pemahaman fungsi dan prosedur ini menjadi fondasi atau dasar pemahaman pemrograman berbasis objek. Tanpa pemahaman yang paripurna mengenai faham fungsi atau prosedur maka akan kesulitan untuk memahami pemrograman berorientasi objek.

 
TUJUAN

1. Siswa dapat mengetahui salah satu teknik pemrograman terstruktur yaitu pada pembuatan Sub Program atau penerapan konsep program modular.

2. Siswa dapat membuat Procedure serta Fungsi sendiri

 PROSEDUR DAN FUNGSI

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.

 Perbedaan paling mendasar antara Procedure dan Fungsi bahwa Pada Procedure tidak dapat memulangkan(mengembalikan)   nilai kepada bagian program yang memanggilnya sedangkan pada fungsi dapat memulangkan nilai.

 Bentuk Umum Pendeklarasian Procedure :

 Procedure Nama_Prosedur;

 Begin

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;

 Atau :

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;

 { Fungsi Tambah }

 Function Tambah(a: integer; b:integer):integer; Begin

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 DAN PARAMETER AKTUAL

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

 Cara melewatkan suatu parameter dalam Bahasa Pascal ada dua cara yaitu pemanggilan secara nilai (Call by Value) dan Pemanggilan Secara Referensi

 

(Call by Reference).

 Pemanggilan Secara Nilai (Call By Value)

 Call by value akan menyalin nilai dari parameter aktual ke parameter formal. Yang dikirimkan ke fungsi atau prosedur adalah nilai dari datanya, bukan alamat memori letak dari datanya.

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;

 { Program Utama } Begin

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;

 { Deklarasi Procedure Tukar }

 Procedure tukar(var x:integer;var 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;

 { Program Utama } Begin

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.

 

PENGGOLONGAN VARIABEL

 Berdasarkan kelas penyimpanannya variable pada Pascal secara umum dapat dibedakan kedalam dua kelas yaitu :

Variabel lokal

 Variabel lokal adalah variabel yang dideklarasikan di dalam fungsi.

 Sifat-sifat variabel lokal :

 Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan lenyap ketika proses eksekusi terhadap fungsi berakhir.

 Hanya dikenal oleh fungsi tempat variabel dideklarasikan

 Tidak ada inisialisasi secara otomatis (saat variabel diciptakan nilainya random).



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.






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.



Reactions:

0 comments:

Posting Komentar

Nuhun sudah komentar