Upload
m-ade-erik
View
216
Download
0
Embed Size (px)
Citation preview
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 1/19
PROCEDUREOleh: M. Ade Erik (19870911 201001 1 006)
Doc Versi. 07.00/Pas/OSN/TIK/2010
SMA Negeri 1 Tegal
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 2/19
Pembahasan:
Parameter dalam Prosedur
Prosedur Memanggil Prosedur Lain
Nested Procedure
Prosedur Memanggil Dirinya
Prosedur Standard
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 3/19
Pemrograman Modular
Modular programming adalah merupakan suatu teknik
untuk menulis program yang berukuran besar. Program
dibagi menjadi beberapa bagian kecil. Tiap bagian disebut
module, yang melakukan suatu tugas tertentu. Pascal mengenal module diantaranya:
1. Procedure
a) Procedure Sederhana tidak menerima argumen (nilai atau data)
ketika dieksekusi.
b) Procedure Kompleks menerima nilai yang diproses ketika
dieksekusi.
2. Function : mempunyai kemampuan untuk menghasilkan
nilai pada procedure atau program yang memanggilnya
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 4/19
Jika kita ingin menggunakan procedure dalam suatu
program maka procedure tersebut harus dituliskan pada
bagian deklarasi.
program tukar_ab; uses wincrt; Var a,b,c:integer;
procedure tukar;
Begin c:=a;a:=b;b:=c; end;
begin write('a= ');readln(a);write('b= ');readln(b); tukar;
write('a= ',a,'; b= ',b);
end.
Deklarasi
Header
Statement Inti
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 5/19
Prosedure Sederhana
Procedure yang tidak menerima argumen (nilai atau data)
ketika dieksekusi.
program sederhana;
uses wincrt; procedure pro1;
Var a,b,c:integer;
Begin readln(a,b); c:=a;a:=b;b:=c; writeln('a= ',a,';b= ',b);
end;
begin
pro1;
end.
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 6/19
Procedure Kompleks
Procedure yang menerima nilai yang diproses ketika
dieksekusi.
program sederhana;
uses wincrt; Var d,e:integer;
procedure pro1(a,b:integer); var c:integer;
Begin c:=a;a:=b;b:=c; writeln('a= ',a,';b= ',b);
end;
Begin
Readln(d,e);pro1(d,e);
end.
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 7/19
Jangkauan Variable
Variabel global adalah variabel yang didefinisikan/
terletak pada program utama, dimana semua sub-
program bisa mengakses, mempergunakan dan
memodifikasinya Variabel lokal adalah variabel yang hanya bekerja pada
procedure dimana mereka dideklarasikan.
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 8/19
Keterangan gambar: Semua procedure bisa mengakses
variabel global A, F, G. Pada procedure alfa definisi global
variabel A diganti dengan variabel lokal,
Variable A,B,C pada alfa merupakan
variabel lokal yang hanya berlaku pada
procedure alfa.
Procedure Beta_1,beta_2 dapatmengakses variabel betamax, betako.
Beta_1 tidak dapat mengakses variabel
boboho, dan beta_2 tidak dapat
mengakses variable bobo.
Procedure beta dapat mengakses
procedure alfa, beta_1, dan beta_2
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 9/19
Procedure Berparameter
1. Procedure berparameter nilai (pass by value).
procedure bekerja dengan copy dari variabel asli. Nilai
dari variabel asli yang disampaikan ke procedure
tidak diubah. Procedure hanya menggantikan variabelasli dengan variabel yang ada di procedure , tetapi tidak
menggantikan nilai dari variabel asli. (variabel copy <>
variabel asli>
2. Procedure berparameter variabel (pass by
reference).
Procedure yang dapat mengubah nilai dari variabel asli
yang dipanggil oleh procedure. (variabel copy = variabel
asli)
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 10/19
Procedure berparameter nilai
program sederhana;
uses wincrt;
var b:integer;
procedure pro1(a:integer);
begin
a:=a+5;
end;
begin
b:=10; pro1(b);
write(b); {output=10}
end.
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 11/19
Procedure berparameter variable
program sederhana;
uses wincrt;
var b:integer;
procedure pro1(var a:integer);
begin
a:=a+5;
end;
begin
b:=10; pro1(b);
write(b); {output=15 karena var b = var a dalam prosedur pro1}
end.
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 12/19
Carilah nilai maksimum dari suatu deret bilangan.
Contoh
Input: 1,7,2,4,3,6
Output: Max=7
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 13/19
Penjelasan
Buat prosedure cari maksimum
Nilai awal maks=0;
Lakukan looping pembacaan variabel a dan
Bila a> maks then maks:=a;
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 14/19
program maks;
uses wincrt;
var max,i,b:integer;
procedure carimaks(a:integer);
Begin if max<a then
Begin max:=a; end;
end;
begin
max:=0; for i:=1 to 6 do
Begin readln(b); carimaks(b); end;
write('maskimum= ',max);
end.
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 15/19
Buatlah program untuk mengkonversi bilangan desimal ke
bilangan biner, oktal, dan heksadesimal.
Input:
Des= 11 Output
Biner= 1011
Oktal= 13
Heksadesimal= B
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 16/19
Penjelasan
Baca nilai desimal
Procedure 1: menghitung panjang karakter apabila
dikonversi. Procedure 2: lakukan pengulangan n mod basis dan d div
basis sampai nilai dari n div basis=0
Procedure 3: lakukan pengecekan pada setiap kali n mod
basis, apabila n mod basis bernilai 10,11,12,13,14,15maka lakukan konversi bilangan number menjadi string
str(number,string) menjadi A,B,C,D,E,F
Procedure 4: lakukan pengaturan (x,y) dimana x bernilai
panjangkarakter-1 pada setiap kali pengulangan.
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 17/19
program basbil;
uses wincrt; var b,i:integer;
procedure konversi(a,n,x,y:integer);
Var c,d:integer; s:string;
procedure panjang;
Begin i:=0; d:=a;
repeat
d:=d div n; i:=i+1; until d=0;
end;
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 18/19
procedure heks;
begin
if c=10 then s:='A' else if c=11 then s:='Bµ else if c=12 then s:='C' else
if c=13 then s:='Dµ else if c=14 then s:='E' else if c=15 then s:='F';
end;
begin
panjang;
repeat c:=a mod n; str(c,s); heks; gotoxy(x+i,y);write('= ',s); a:=a div n; i:=i-1;
until a=0;
end;
8/8/2019 07 Procedure
http://slidepdf.com/reader/full/07-procedure 19/19
begin
write('desimal= ');read(b);
gotoxy(1,5);write('biner ',b);konversi(b,2,25,5);
gotoxy(1,7);write('oktal ',b);konversi(b,8,25,7);
gotoxy(1,9);write('heksadesimal ',b);konversi(b,16,25,9);
end