Procedure dan Function adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub-program (modul program) yang merupakan sebuah program kecil untuk memproses sebagian dari pekerjaan program utama.
PROCEDURE
Procedure adalah suatu program yang terpisah dalam blok tersendiri yang berfungsi sebagai subprogram. Penggunaan prosedur diawali dengan kata cadangan procedure dalam bagian deklarasi prosedur. Pemanggilan prosedur dapat dilakukan dengan menggunakan judul prosedur.
Pada program terstruktur banyak menggunakan prosedur karena :
- Sebagai penerapan program yang modular yaitu memecah program yang rumit menjadi program-program bagian yang lebih sederhana dalam bentuk prosedur.
- Untuk beberapa perintah yang sering digunakan berulang, cukup dituliskan sekali dalam prosedur dan dipanggil sewaktu-waktu.
Sebagaimana halnya sebuah program, suatu procedure juga memiliki header dan block.
Perbedaan bentuknya dengan program hanyalah pada bagian header-nya saja.
Bentuk Umum header suatu procedure adalah :
PROCEDURE nama;
atau
PROCEDURE nama (formal parameter : jenis);
Perbedaan bentuknya dengan program hanyalah pada bagian header-nya saja.
Bentuk Umum header suatu procedure adalah :
PROCEDURE nama;
atau
PROCEDURE nama (formal parameter : jenis);
Contoh :Misal akan dibuat suatu procedure untuk menentukan bilangan bulat terbesar diantara
tiga bulangan bulat, maka procedure tersebut adalah sebagai berikut :
PROCEDURE maksimum;
VAR max : integer;
BEGIN
IF a > b THEN max := a ELSE max := b;
IF c > max THEN max := c;
WRITELN(max);
END.
Selanjutnya, di dalam suatu program, procedure ini dapat digunakan dengan bentuk penulisan
sebagai berikut :
Contoh 1
PROGRAM contoh_1;
VAR a,b,c : integer;
PROCEDURE maksimum;
VAR max : integer;
BEGIN
IF a>b THEN max := a ELSE max := b;
IF c>max THEN max := c;
WRITELN(max);
END;
BEGIN
READLN(a,b,c);
Maksimum
End.
Contoh 2
PROGRAM CONTOH_2;
VAR p,l,t,vol,panj : real;
PROCEDURE kotak;
VAR v,pl : real;
BEGIN
v := p * l * t ;
pl := p + 2.0 * t;
writeln(v,pl);
END;
BEGIN
writeln(‘panjang’ : 10,’lebar’ : 10,’tinggi’ : 10);
readln(p,l,t);
kotak;
END.
Procedure dan Parameter
Nilai di dalam suatu modul program Pascal sifatnya adalah lokal, artinya hanya dapat digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program yang lainnya.
Prosedur Tanya_hitung;
Var X,Y :real;
Begin
Write (‘Nilai X ?’);
Readln(X);
Y:=X*X;
Writeln(‘Nilai Y = ‘,Y:6:2);
End;
Begin
Tanya_Hitung;
End.
Hasilnya :
Nilai X ? 5
Nilai Y = 25.00
Keterangan :
Variabel X dan Y sifatnya adalah lokal untuk prosedur Tanya_hitung, artinya hanya dapat digunakan pada modul itu saja, Pada modul yang lain tidak dapat digunakan, contoh :
Prosedur Tanya_hitung;
Var X,Y :real;
Begin
Write (‘Nilai X ?’);
Readln(X);
Y:=X*X;
End;
Begin
Tanya_Hitung;
Writeln(‘Nilai Y = ‘,Y:6:2);
End.
Hasilnya :
Error 31: Unknown identifier
Supaya nilai variabel dapat digunakan di modul lainnya, maka dapat dilakukan dengan cara :
1. Dibuat bersifat global
2. Dikirimkan sebagai parameter ke modul yang membutuhkannya.
Prosedur Standar
Prosedur yang disediakan oleh Turbo Pascal :
1. Prosedur standar EXIT :Digunakan untuk keluar dari suatu blok.
2. Prosedur standar HALT :Digunakan untuk menghentikan proses program baik di program bagian maupun di program utama.
3. Prosedur standar MOVE {Bentuk umum : MOVE (Var source,dest; count : word);} : Digunakan untuk menyalin suatu blok sebanyak count byte memori dari blok dimulai byte pertama source dan disalinkan ke byte pertama dest.
4. Prosedur standar FILLCHAR :Digunakan untuk mengisi sejumlah byte nilai ke dalam suatu variabel, sebagai berikut FillChar(x;count :word;ch);
X adalah variabel yang dapat bertipe apapun yang akan diisi dengan nilai tipe ordinal Ch sebanyak count byte.
FUNCTION
Blok pada function hampir sama dengan blok pada procedure, hanya pada function harus dideklarasikan dengan tipe dari function tersebut yang merupakan tipe hasil dari function itu sendiri. Sehingga dikatakan function dapat mengembalikan nilai. Secara umum bentuk header suatu function adalah :
FUNCTION nama : jenis hasil;
Atau
FUNCTION nama (formal parameter : jenis ) : jenis_hasil;
Contoh 1
Akan dibuat suatu fungsi dengan nama MAX yang dapat menentukan integer terbesar di
antara dua integer.
Function MAX (x,y : integer) : integer;
Begin
If x < y then MAX := y ;
Else MAX := x;
End;
Selanjutnya kita dapat menggunakan fungsi di atas dalam suatu program, misalnya dengan
menyatakan sebagai berikut :
P := MAX(a,b);
Z := MAX(a+b,a*b);
Q := MAX(MAX(a,b),c);
…………………………
dsb.
FUNCTION nama : jenis hasil;
Atau
FUNCTION nama (formal parameter : jenis ) : jenis_hasil;
Contoh 1
Akan dibuat suatu fungsi dengan nama MAX yang dapat menentukan integer terbesar di
antara dua integer.
Function MAX (x,y : integer) : integer;
Begin
If x < y then MAX := y ;
Else MAX := x;
End;
Selanjutnya kita dapat menggunakan fungsi di atas dalam suatu program, misalnya dengan
menyatakan sebagai berikut :
P := MAX(a,b);
Z := MAX(a+b,a*b);
Q := MAX(MAX(a,b),c);
…………………………
dsb.
Perbedaan fungsi dengan prosedur adalah:
- Pada fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya(kalau pada prosedur parameter yang dikirimkan secara acuan).
- Karena nilai balik berada di nama fungsi tersebut, maka fungsi tersebut dapat langsung digunakan untuk dicetak hasilnya. Atau nilai fungsi tersebut dapat juga langsung dipindahkan ke pengenal variabel yang lainnya.
- Pada prosedur, nama prosedur tidak dapat digunakan langsung, yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik.
Fungsi Standar
1. Fungsi standar arutmatika
• Fungsi standar ABS
• Fungsi standar ABS
Bentuk umum : ABS(x); Digunakan untuk memutlakkan suatu nilai yang
ditunjukkan oleh argumen x.
ditunjukkan oleh argumen x.
Contoh :
Begin
X:=-2.3;
Write(‘Nilai X = ‘,X,’ Nilai mutlaknya = ‘,Abs(X):3:1);
End.
• Fungsi standar EXP
Bentuk Umum : EXP(x:):real; Digunakan untuk menghitung nilai pangkat dari bilangan e yaitu sebesar ex. Hasilnya berupa nilai real.
• Fungsi standar LN
Bentuk umum : LN(x):real; Digunakan untuk menghitung nilai logaritma
alam (natural logarithm) dari nilai x. Hasilnya berupa nilai real.
alam (natural logarithm) dari nilai x. Hasilnya berupa nilai real.
• Fungsi standar INT
Bentuk umum : INT(x:real):real; Digunakan untuk menghasilkan nilai
integer dari x. hasil dari fungsi adalah tipe real dengan nilai yang berupa pembulatan ke bawah (nilai pecahan dibuang) dari nilai x.
integer dari x. hasil dari fungsi adalah tipe real dengan nilai yang berupa pembulatan ke bawah (nilai pecahan dibuang) dari nilai x.
Contoh :
Begin
X:=9.99;
Write(‘Nilai yang akan dibulatkan = ‘,X);
Writeln(‘Nilai pembulatannya = ‘,Int(X):3:2);
End.
Hasil :
Nilai yang akan dibulatkan = 9.99
Nilai pembulatannya = 9.00
• Fungsi standar FRAC
Bentuk umum : FRAC(x:):real; Digunakan untuk mendapatkan nilai
pecahan dari argumen x. Argumen x dapat bernilai real maupun integer dan
hasil dari fungsi adalah real.
pecahan dari argumen x. Argumen x dapat bernilai real maupun integer dan
hasil dari fungsi adalah real.
Contoh :
Begin
X:=9.99;
Write(‘Nilai X = ‘,X,’ Nilai pecahannya = ‘,Frac(X):4:3);
End.
Hasilnya : Nilai X = 9.99 Nilai pecahannya = 0.990
• Fungsi standar SQR
Bentuk umum : SQR(x); Digunakan untuk menghitung nilai pangkat
kuadrat dari argumen x.
kuadrat dari argumen x.
Contoh :
Begin
X :=2;
Write(‘Nilai X = ‘,X,’ Nilai kuadratnya = ‘,sqr(x));
End.
Hasilnya : Nilai X = 2 Nilai kuadratnya = 4
• Fungsi standar SQRT
Bentuk umum : SQRT(x) : real;Digunakan untuk menghitung nilai akar dari argumen x, hasilnya berupa real.
• Fungsi standar PI, SIN, COS, ARCTAN
2. Fungsi Standar Transfer
Digunakan untuk merubah suatu nilai ke bentuk nilai lain.
• Fungsi standar CHR
Bentuk umum : CHR(x:byte):char; Digunakan untuk merubah nilai dari byte x ke bentuk karakter yang sesuai dengan kode ASCII.
Contoh :
X := 66;
Write(‘Nilai X = ‘,x,’ Nilai karakternya = ‘,CHR(X));
Hasilnya : Nilai X = 66 Nilai karakternya = B
• Fungsi standar ORD
Bentuk umum : ORD(x):longint; Digunakan untuk merubah nilai x ke
bentuk nilai longint yang sesuai dengan kode ASCII, merupakan kebalikan dari fungsi CHR.
bentuk nilai longint yang sesuai dengan kode ASCII, merupakan kebalikan dari fungsi CHR.
• Fungsi standar ROUND
Bentuk umum : ROUND(x:real):longint; Digunakan untuk membulatkan
nilai dari real x ke nilai longint yang terdekat.Bila nilai pecahan sama dgn atau lebih besar dari 0.5 akan dibulatkan ke atas, sedang kalau lebih kecil
dari 0.5 akan dibulatkan ke bawah.
nilai dari real x ke nilai longint yang terdekat.Bila nilai pecahan sama dgn atau lebih besar dari 0.5 akan dibulatkan ke atas, sedang kalau lebih kecil
dari 0.5 akan dibulatkan ke bawah.
Contoh :
Write(’10 dibagi 3 hasil pembulatan terdekat ‘,Round(10/3));
Writeln(’20 dibagi 3 hasil pembulatan terdekat adalah ‘,Round(20/3);
Hasilnya :
10 dibagi 3 hasil pembulatan terdekat adalah 3
20 dibagi 3 hasil pembulatan terdekat adalah 7
• Fungsi standar TRUNC
Bentuk umum : TRUNC(x:real):longint; Digunakan untuk membulatkan nilai
dari real x ke nilai longint terkecil. Atau dengan kata lain membulatkan ke
bawah.
dari real x ke nilai longint terkecil. Atau dengan kata lain membulatkan ke
bawah.
Contoh :
Write(’10 dibagi 3 hasil pembulatan terdekat ‘,Trunc(10/3));
Writeln(’20 dibagi 3 hasil pembulatan terdekat adalah ‘,Trunc(20/3);
Hasilnya :
10 dibagi 3 hasil pembulatan terdekat adalah 3
20 dibagi 3 hasil pembulatan terdekat adalah 6
3. Fungsi Standar Lainnya
Fungsi standar yang tidak termasuk dalam kelompok pembagian di atas : • Fungsi standar Hi, Lo, Swap
• Fungsi standar Random
Bentuk umum : Random [(range :word)]; Digunakan untuk menghasilkan
angka random berkisar dari nilai lebih besar atau sama dengan nol dan
lebih kecil dari satu. Bila range tidak disebutkan, hasil dari fungsi ini adalah
real, bila range disebutkan, hasilnya adalah word.
angka random berkisar dari nilai lebih besar atau sama dengan nol dan
lebih kecil dari satu. Bila range tidak disebutkan, hasil dari fungsi ini adalah
real, bila range disebutkan, hasilnya adalah word.
• Fungsi standar SizeOf
Bentuk umum : SizeOf(x):word; Digunakan untuk menunjukkan besarnya
byte yang digunakan oleh suatu variabel x, hasilnya berupa nilai word.
byte yang digunakan oleh suatu variabel x, hasilnya berupa nilai word.
• Fungsi standar UPCASE
Bentuk umum : UpCase(Ch:char):char; Digunakan untuk merubah argumen
suatu karakter yang ditunjukkan oleh Ch
suatu karakter yang ditunjukkan oleh Ch
menjadi bentuk karakter huruf besar (upper case).
0 komentar:
Posting Komentar