PROSEDUR
Pendahuluan Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian) Prosedur diawali dengan kata cadangan procedure di bagian deklarasi prosedur Prosedur dipanggil dan digunakan di dalam blok program lainnya dengan menyebutkan judul prosedurnya
Alasan Penggunaan Prosedur Prosedur banyak digunakan pada program yang terstruktur, karena; 1. Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur 2. Untuk yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan
Blok Prosedur PROGRAM Judul-program; PROCEDURE Judul-prosedur; BEGIN END. PROCEDURE Judul-prosedur; BEGIN END;
Parameter Dalam Prosedur Nilai dalam suatu modul program Pascal sifatnya lokal, artinya hanya dapat digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program lainnya. Agar nilai-nilai variabel dapat digunakan di modul lainnya yang membutuhkannya, bisa dilakukan beberapa cara: Dibuat bersifat global Dikirimkan sebagai parameter ke modul yang membutuhkannya
Variabel Dibuat Bersifat Global Agar suatu nilai dapat bersifat global, maka harus dideklarasikan di atas modul yang akan menggunakannya Dikirimkan sebagai parameter ke modul yang membutuhkannya
PROCEDURE Kesatu; begin ………. End; var A, B: WORD; PROCEDURE Kedua; …….. PROCEDURE Ketiga; …… end. var A, B: WORD; PROCEDURE Kesatu; begin ………. End; PROCEDURE Kedua; …….. PROCEDURE Ketiga; …… end.
Pengiriman parameter Parameter yang dikirimkan dari modul utama ke modul prosedur disebut parameter nyata (actual parameter) dan parameter yang ada dan dituliskan pada judul prosedur disebut parameter formal (formal parameter) Proses pengiriman data lewat parameter nyata ke parameter formal disebut parameter passing Parameter nyata dan parameter formal harus dengan tipe yang sama Pameter dapat dikirimkan secara nilai (by value) atau secara acuan (by reference)
Pengiriman parameter secara nilai Parameter formal akan berisi nilai yang dikirimkan yang kemudian bersifat lokal di prosedur Bila nilai parameter formal di prosedur berubah, tidak akan mempengaruhi nilai parameter nyata Pengiriman secara nilai merupakan pengiriman searah (dari parameter nyata ke parameter formal) Parameter-parameter yang digunakan dengan pengiriman secara nilai disebut parameter nilai
Contoh : Procedure Hitung(A,B : integer); Var C : integer; Begin C : = A + B; Writeln(‘Nilai C =’ ,C); End; X,Y : integer; Write(‘Nilai X ?’); Readln(X); Write(‘Nilai Y ?’); Readln(Y); Hitung(X,Y); End.
Penjelasan: Prosedur dimulai dengan deklarasi prosedur dengan judul prosedur: Procedure Hitung(A,B: integer); Varibel lokal yang hanya dipergunakan di prosedur dan tidak termasuk sebagai parameter formal (parameter nilai), harus didefinisikan sendiri, sbb; Var C : integer; Hubungan antara parameter formal di prosedur dengan parameter nyata di modul utama adalah sbb; Procedure Hitung(A,B : integer); Hitung(X,Y) Terlihat bahwa nilai-nilai parameter nyata X dan Y di modul utama dikirimkan ke parameter formal A dan B di prosedur. Dengan demikian, nilai parameter A dan B di prosedur akan berisi nilai yang sama dengan parameter X dan Y di modul utama.
Pengiriman parameter secara acuan Perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai parameter nyata Parameter-parameter ini disebut variable parameter dan di deklarasi prosedur dengan kata cadangan Var: PROCEDURE hitung(Var A, B, C: integer);
Contoh; Procedure Hitung(Var A,B,C : integer); Begin C : = A + B; End; {Procedure Hitung} Var X,Y,Z : integer; X : = 2; Y : = 3; Hitung (X,Y,Z); Writeln(‘X = ‘,X,’Y=’,Y,’Z =’,Z); End. Bila program dijalankan: X = 2 Y = 3 Z = 5
Pengiriman parameter sebagian secara nilai sebagian secara acuan Parameter yang hanya dibutuhkan pada prosedur saja dapat dikirimkan secara nilai dan yang ingin dikirimkan balik dapat dilakukan secara acuan: PROCEDURE Hitung(A, B: integer; Var C: integer);
Tipe parameter formal Tipe parameter formal harus dideklarasikan Parameter yang diijinkan adalah berupa variabel atau konstanta, sedang pada Turbo Pascal prosedur dan fungsi tidak diijinkan sebagai parameter formal (Standar Pascal mengijinkan) Tipe sederhana seperti: Integer, Byte, Char, Real, dan Boolean dapat langsung digunakan sebagai tipe parameter formal Tipe kompleks seperti String, Record dan Array tidak dapat digunakan langsung tapi harus dideklarasikan dahulu di bagian deklarasi Type
Contoh SALAH: Procedure Urutkan(Nilai: array[1..100] of integer); Procedure Panjang(Nama: string[30]); BENAR: Type Elemen = array[1..100] of integer; Huruf = string[30]; Procedure Urutkan(Nilai: elemen); Procedure Panjang(Nama: Huruf);
Prosedur Lain Prosedur memanggil prosedur lain Prosedur tersarang Prosedur memanggil dirinya sendiri Proses dari suatu program bagian yang memanggil dirinya sendiri dikenal dengan isitilah recursion Meski proses ini merupakan algoritma yang baik, tapi butuh banyak memori Acuan FORWARD digunakan untuk mendeklarasikan di muka judul prosedur terpisah dari bloknya Judul prosedur yang berisi parameter terpisah ini merupakan judul yang semestinya dan dideklarasikan dengan menambahkan kata cadangan FORWARD
Prosedur Standar Exit digunakan untuk keluar dari suatu blok. Halt digunakan untuk menghentikan proses program baik di program bagian maupun di program utama. Move digunakan untuk menyalinkan suatu blok sebanyak count byte memori dari blok dimulai byte pertama source dan disalinkan ke byte pertama dest. FillChar digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel.
FUNGSI
Struktur Function Function <identifier> (<daftar parameter>) : <tipe data>; < deklarasi variabel, konstanta, tipe data, procedure atau function > begin <statemen 1> <statemen 2> . . . <statemen N> end;
Perbedaan Fungsi dan Prosedur Pada fungsi, nilai yg dikirimkan balik terdapat nama fungsinya(kalau pada prosedur pada parameter yang dikirimkan secara acuan). Karena nilai balik berada dinama fungsi, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya. Pada prosedur, nama prosedur tersebut tidak dapat digunakan langsung, yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik.