230 likes | 506 Views
Dasar-Dasar Pemrograman. Prosedur dan Fungsi. Definisi. Prosedur dan fungsi adalah subprogram terpisah dalam blok sendiri yang merupakan bagian dari program utama. Prosedur dan fungsi diletakkan pada bagian deklarasi program. Prosedur. Menggunakan reserved word procedure . Bentuk:
E N D
Dasar-Dasar Pemrograman Prosedur dan Fungsi
Definisi • Prosedur dan fungsi adalah subprogram terpisah dalam blok sendiri yang merupakan bagian dari program utama. • Prosedur dan fungsi diletakkan pada bagian deklarasi program.
Prosedur • Menggunakan reserved wordprocedure. • Bentuk: PROCEDURE nama; atau PROCEDURE nama (parameter formal:tipe data);
Prosedur • Bentuk: uses crt; var x:integer; procedure coba; var y:real; begin … … end; begin … … end. Variabel x berlaku di semua program, sedangkan variabel y hanya berlaku di prosedur coba.
Prosedur dengan Parameter • Nilai di dalam suatu modul program sifatnya lokal, artinya hanya dapat digunakan pada modul yang bersangkutan saja, tidak dapat digunakan pada modul yang lain. • Supaya nilai variabel dapat digunakan di modul lainnya, maka dapat dilakukan dengan cara : • Dibuat bersifat global: harus dideklarasikan di atas modul yang menggunakannya. • Dikirimkan sebagai parameter ke modul yang membutuhkannya
Parameter • Terdapat dua jenis parameter: • Parameter aktual • Parameter formal
Parameter Aktual • Parameter yang dikirim dari modul utama ke modul prosedur.
Parameter Formal • Parameter yang ada pada prosedur dan dituliskan pada judul prosedur.
Pengiriman Parameter • Terdapat 2 pengiriman parameter: • Pengiriman berdasarkan referensi (call by reference) • Pengiriman berdasarkan nilai (call by value)
Pengiriman berdasarkan Nilai • Parameter formal yang ada di prosedur akan berisi nilai yang dikirimkan yang kemudian bersifat lokal di prosedur.
Pengiriman berdasarkan Nilai Ex. uses crt; var x,y,jumlah:integer; procedure hitung(a,b,jum:integer); begin jum:=a+b; writeln('Di dalam prosedur: ',a,'+',b,'=',jum); end; begin clrscr; write('Masukkan nilai x = ');readln(x); write('Masukkan nilai y = ');readln(y); hitung(x,y,jumlah); writeln('Di luar prosedur: ',x,'+',y,'=',jumlah); readln; end.
Pengiriman berdasarkan Nilai Ex. • Hasil: Masukkan nilai x = 4 Masukkan nilai y = 5 Di dalam prosedur: 4+5=9 Di luar prosedur: 4+5=0
Pengiriman berdasarkan Acuan • Perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai parameter aktual.
Pengiriman berdasarkan Acuan Ex. uses crt; var x,y,jumlah:integer; procedure hitung(a,b:integer; var jum:integer); begin jum:=a+b; writeln('Di dalam prosedur: ',a,'+',b,'=',jum); end; begin clrscr; write('Masukkan nilai x = ');readln(x); write('Masukkan nilai y = ');readln(y); hitung(x,y,jumlah); writeln('Di luar prosedur: ',x,'+',y,'=',jumlah); readln; end.
Pengiriman berdasarkan Acuan Ex. • Hasil: Masukkan nilai x = 4 Masukkan nilai y = 5 Di dalam prosedur: 4+5=9 Di luar prosedur: 4+5=9
Fungsi • Menggunakan reserved wordfunction. • Fungsi hampir sama dengan prosedur, hanya hasil fungsi harus dideklarasikan dengan tipe datanya. • Bentuk: FUNCTION nama:tipe data hasil; atau FUNCTION nama (parameter formal:tipe data):tipe data hasil;
Contoh uses crt; var x,y,jumlah:integer; function hitung(a,b:integer):integer; begin hitung:=a+b; end; begin clrscr; write('Masukkan nilai x = ');readln(x); write('Masukkan nilai y = ');readln(y); writeln(x,'+',y,'=',hitung(x,y)); readln; end. Hasil: Masukkan nilai x = 4 Masukkan nilai y = 5 4+5=9
Prosedur vs Fungsi • Nama fungsi harus digunakan untuk menampung hasil yang akan dikirimkan dari fungsi ke program. Contoh: function hitung (a,b:integer):integer; begin hitung:=a+b; end; • Jika prosedur, hasil dikirimkan dengan parameter yang dikirimkan secara acuan.
Prosedur vs Fungsi • Karena hasil berada di nama fungsi tersebut, maka fungsi dapat langsung digunakan untuk dicetak hasilnya pada program utama. Contoh: begin a:=4; b:=3; write(hitung(a,b)); readln; end. • Jika prosedur, nama prosedur tidak dapat langsung digunakan langsung, yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik.