Modul Logika Algoritma
Transcript of Modul Logika Algoritma
Uce Indahyanti
LOGIKA ALGORITMA
Materi:
1. Konsep & definisi algoritma & pemrograman
2. langkah-langkah sistematis dalam pembuatan program
3. flowchart / algoritma & pseudocode
4. bentuk dasar struktur logika yang diwakili o/ flowchart
5. struktur bahasa pemrograman procedural (modul IKC,dll)
6. elemen-elemen dalam bahasa pemrograman procedural
7. selection & iteration statement
8. variable array
Penjabaran materi:
1a) Definisi-definisi :
algoritma : susunan instruksi secara bertahap dalam menyelesaikan masalah
program : susunan instruksi dalam bahasa komputer tertentu untuk menyelesaikan
masalah
pemrograman : aspek-aspek yang berhubungan dengan proses pembuatan program seperti
metode, bahasa, tahap pembuatan
flowchart : suatu bagan terurut (berupa simbol-simbol) untuk menggambarkan alur
yang terjadi pada suatu proses
pseudocode : banyak dipakai untuk mewakili urut-urutan proses dari program; pseudo
berarti imitasi dan code dihubungkan dg instruksi yang ditulis dalam bahasa
komputer
bhs komputer : suatu bahasa yg digunakan untuk menyelesaikan suatu permasalahan
dengan komputer yg memiliki kode-kode tertentu
variabel : suatu lokasi memori untuk menyimpan data yang akan diolah (nilainya
tersebut tidak tetap / berubah sesuai proses yang dikenai terhadapnya)
1b) Jenis-jenis bahasa pemrograman:
Berdasarkan level bahasa high level (Pascal, Basic)
middle level ( C )
low level (Assembly)
Berdasarkan orientasi orientasi prosedur (procedural oriented)
orientasi fungsi (functional oriented)
orientasi logika (logic oriented)
orientasi obyek (object oriented)
Uce Indahyanti
Pada umumnya, lembaga pendidikan memilih paradigma pemrograman berorientasi prosedur shg
paradigma pertama u/ mahasiswa, karena paradigma tersebut sering dipakai dlm kehidupan sehari-
hari.
2. Langkah-langkah sistematis dalam menyelesaikan masalah dengan bahasa pemrograman:
a. Mendefinisikan permasalahan :
mengerti dg baik mengenai permasalahan apa yg ingin diselesaikan, contoh:
mendefinisikan data / variabel & tipe data yang diperlukan,proses / rumus/alur
penyelesaian masalah serta format output yang ingin dihasilkan
b. Membuat rumusan:
dapat disusun dalam bentuk flowchart / algoritma / pseudocode
c. Implementasi :
mengimplementasikan flowchart/algoritma yang telah dibuat ke dalam bahasa
pemrograman tertentu atau tepatnya tahap ini adalah tahap penulisan program
d. Menguji coba & dokumentasi program:
menguji program tsb apakah telah berjalan sesuai tujuannya, bila belum berhasil maka
perlu dikaji lagi rumusan flowchart yang telah dibuat dan lakukan perbaikan program;
langkah berikutnya adalah mendokumentasikan program yg telah dirancang, meliputi :
catatan tentang tujuan program
data yg dipergunakan dlm program
logika yang digunakan
bentuk input/output
listing program lengkap
serta cara menggunakan program
3. Flowchart, Algoritma & Pseudocode;
ketiganya merupakan alat bantu yang berguna untuk mempersiapkan alur program yang rumit.
Flowchart (bagan alir) adalah suatu bagan yang menggambarkan arus logika dari data yang akan
diproses dalam suatu program dari awal sampai akhir.
Flowchart terdiri dari symbol-simbol yang mewakili fungsi-fungsi langkah program dan garis
alir (flowlines) yang menunjukkan urutan dari simbol-simbol yang akan dikerjakan.
Berikut ini simbol-simbol flowchart menurut ANSI (American National Standard Institute):
Terminal = menunjukkan awal dan akhir dari program
Preparation = memberikan nilai awal pada suatu variable atau counter
Input / output = masukan atau keluaran / proses cetak
Processing = pengolahan aritmatika dan pemindahan data
Decision = operasi perbandingan logika
Predefined = proses yang detilnya dijelaskan secara terpisah, misalnya dlm
bentuk sub routine
On Page Connector = menunjukkan hubungan arus proses yang terputus
masih dalam halaman yang sama
Uce Indahyanti
Off Page Connector = menunjukkan hubungan arus proses yang terputus
tapi dalam halaman yang berbeda
Flowlines = urutan dari symbol-simbol yang dikerjakan
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis dan logis.
Kata logis merupakan kata kunci dalam algoritma, langkah-langkah dalam algoritma harus logis
dan harus dapat ditentukan bernilai salah atau benar.
Pseudocode : pada dasarnya sama seperti algoritma, yaitu urutan langkah-langkah logis untuk
menyelesaikan masalah tetapi pseudocode selalu ditulis dengan bahasa Inggris dikombinasikan
dengan elemen-elemen dasar dari pemrograman terstruktur.
Contoh soal:
Buat flowchart, algoritma dan pseudocode untuk menghitung luas lingkaran !
Langkah - langkah penyelesaian masalah:
a. mendefinisikan masalah yaitu mendefinisikan data, variable, tipe data, rumus nilai jari-jari,
nilai phi dan rumus luas lingkaran
b. buat flowchartnya:
c. Implementasi penulisan program dg salah satu bahasa komputer berdasarkan flowchart di
atas
d. Dokumentasi simpan flowchart dan cetak listing programnya
mulai
Phi = 3.14
Inputkan jari-jari ( r )
Hitung L = phi * r * r
Cetak hasil (L)
selesai
Uce Indahyanti
Beberapa bentuk dasar struktur logika yang diwakili oleh bagan alir:
sequential menyelesaikan masalah secara urut membentuk garis lurus
contoh : menghitung luas lingkaran (flowchart di atas)
branching menyelesaikan masalah dg melakukan percabangan ke proses lain
contoh : menampilkan keterangan “Lulus” atau “Gagal” berdasarkan nilai yang
di-inputkan
T
Y
looping menyelesaikan masalah dg melakukan perulangan satu instruksi atau lebih
contoh: menampilkan bilangan urut mulai 0 s/d 5
T
Y
mulai
Inputkan nilai
Cek
nilai >=
65
Cetak “Gagal”
Cetak “Lulus”
selesai
mulai
X = 0
Cetak x
Cek x > 5
X = x + 1
selesai
Uce Indahyanti
Struktur perulangan
DO WHILE
5. `mulai
FOR
Struktur seleksi
IF-THEN-ELSE
Struktur perulangan
DO UNTIL
Struktur urut
sederhana
Struktur
perulangan
FOR
Struktur seleksi IF
Uce Indahyanti
5. Struktur bahasa program procedural, secara umum memiliki 2 bagian utama,
yaitu: bagian deklarasi & bagian statement
Bagian deklarasi merupakan bagian program untuk mendefinisikan tipe data suatu
variable, konstanta, serta fungsi dan prosedur yang akan digunakan pada program.
Selain itu bagian deklarasi dapat juga digunakan untuk memberi nilai awal suatu variable,
dengan kata lain deklarasi digunakan untuk memperkenalkan suatu nama kepada Compiler
program.
contoh:
var r, luas : real;
const max = 100;
Bagian statement merupakan bagian program yang berisi perintah yang akan dieksekusi /
dijalankan.
Pada bahasa Pascal bagian ini diawali reserve word begin dan end. Apabila blok statement
adalah blok utama program, maka reserve word end harus diakhiri dg tanda titik (.)
sebaliknya jika bukan blok utama maka diakhiri dengan tanda titik koma (;)
contoh :
/* bagian deklarasi */
begin
readln(r);
luas := pi * r *r;
writeln ( luas : 6 : 2 );
end.
6. Element-element dalam bahasa pemrograman, terdiri dari :
- aturan leksikal: identifier (kumpulan karakter penanda nama var / const)
keywords/reserve words (kata2 yg telah didefinisikan scr tetap oleh
suatu bahasa pemrograman begin,nil,do)
operator arithmetic(mod,div,*,/,+,- perhatikan hirarkinya),assignment
(tanda = u/ memberi nilai), logical (OR,AND,NOT), relational
(>,<,>=,<=), pointer (tanda ^ pd Pascal, dan * pada bhs C)
- tipe data : numerik (real,integer,byte) , karakter (char,string) , logika (true,false)
- expression : pernyataan yg menghasilkan suatu nilai terdiri dari operator dan operand
- statement : merupakan bagian program yg berisi perintah yg akan dieksekusi/dijalankan.
- function & procedure : merupakan blok statement yg dpt dipanggil dari lokasi berbeda di
dalam program; yg membedakan antara keduanya adalah suatu
function jika dipanggil/dijalankan akan mengembalikan suatu nilai.
Uce Indahyanti
Selection & iteration statement:
Selection statement melakukan pemeriksaan nilai/kondisi, yg kemudian akan memilih statement
mana yg akan dieksekusi/diproses.
Statement ini terdiri dari 2 jenis yaitu :
statement IF
statement CASE
Statement IF dibagi 3 struktur : IF .. THEN, IF...THEN…ELSE dan IF - tersarang
IF….THEN
If <kondisi> then <statement> bila kondisi yang diseleksi terpenuhi maka statement yang
mengikuti then akan diproses, jika tidak maka statement
berikutnya yg akan diproses.
IF…THEN…ELSE
If <kondisi> then <statement 1> else <statement 2> bila kondisi terpenuhi maka statement 1 yg akan
diproses, jika tidak maka diproses statement 2
IF Tersarang
if <kondisi 1> then
jika kondisi 1 terpenuhi maka cek kondisi 2 jika kondisi 2
if <kondisi 2> then terpenuhi maka proses statement 1, jika tidak maka
statement 1 proses statement 2
else jika kondisi 1 tidak terpenuhi maka statement 3
statement 2
else
statement 3
Statement CASE dibagi 2 struktur: CASE .. OF dan CASE ..OF…ELSE
CASE … OF
case (variable) of case grade of
nilai 1 : statement 1 „A‟ : writeln(„Sangat baik‟);
nilai 2 : statement 2 „B‟ : writeln(„Baik‟);
…. „C‟ : writeln(„Sedang‟);
end; „D‟ : writeln(„Kurang‟);
„E‟ :writeln(„Gagal‟);
end;
CASE … OF…ELSE
case (variable) of case pilihan of
nilai 1 : statement 1 1 : begin
nilai 2 : statement 2 statement 1
end; end;
else 2 : begin
statement 3 statement 2
end;
else
statement 3
Uce Indahyanti
Teknik perulangan REPEAT-UNTIL untuk mengulang jalannya program :
uses crt;
var
a : integer;
pilih: char;
begin
clrscr;
repeat
write(’masukkan nilai =’);
readln(a);
if a<65 then writeln(’gagal’)
else
writeln(’lulus’);
readln;
write(’mau coba lagi (y/t)?’);
readln(pilih);
until pilih = ’t’;
end.
Latihan:
Coba ganti program di atas dengan perintah CASE OF dan juga tambahkan perintah untuk
mengulang jalannya program !
Uce Indahyanti
Latihan : Lengkapi potongan program looping dengan for..do di bawah ini untuk menampilkan deret nilai
x dari 1 s/d 10 dan nilai x kuadrat serta nilai x pangkat tiga dengan tampilan sebagai berikut:
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
.. .... .....
.. .... .....
Potongan program utamanya:
for x := 1 to 10 do
begin
x1 := x*x;
x2 := x*x*x;
writeln(x:3, x1:8, x2:8); angka 3 dan 8 menunjukkan banyaknya digit (tipe data integer)
end;
Buat program looping dgn for..do untuk menampilkan hasil konversi suhu dari celcium ke
fahrenheit dengan ketentuan sbg berikut :
Dimulai dari suhu 0 derajat celcius (beri harga awal var celcius := 0) kemudian lakukan looping
sebanyak 10x untuk mengulang perintah-perintah di dalamnya yaitu
fahrenheit := 1.8 * celcius + 32;
writeln(celcius:8:1, fahrenheit:14:2);angka 8:1 dan 14:2 menunjukkan banyaknya digit ( real)
celcius := celcius +1.00;
sehingga muncul tampilan sebagai berikut:
---------------------------
Celcius Fahrenheit
---------------------------
0.0 32.00
1.0 33.80
2.0 35.60
3.0 .........
4.0 ......... dst s/d 10.0
Uce Indahyanti
Membuat program sederhana untuk menampilkan menu pilihan dengan perintah CASE OF :
Uses crt;
Var
pilih : char;
r,l,t,luas : real;
begin
clrscr;
gotoxy(10,2);writeln(‘ MENU PILIHAN ‘);
gotoxy(10,4);writeln(‘1. Menghitung Luas Lingkaran’);
gotoxy(10,6);writeln(‘2. Menghitung Luas Segitiga’);
gotoxy(10,8);writeln(‘3. Menghitung Luas Bujur Sangkar’);
gotoxy(10,10);writeln(‘0. Selesai’);
pilih := 9;
while (pilih<0) or (pilih>3) do
begin
gotoxy(10,20);write(‘Pilih nomer 0-3 ?’);
read(pilih);
end;
clrscr;
case pilih of
1 : begin
Write (‘jari-jari lingkaran ?’); readln(r);
Luas := pi*r*r;
Writeln(‘luas lingkaran =’, luas:10:2);
end;
2 : begin
Write(‘alas ?’); readln(l);
Write(‘tinggi ?’); readln(t);
Luas := 0.5*l*t;
Writeln(‘luas segitiga = ‘,luas:10:2);
end;
3 : begin
Write(‘panjang ?’); readln(t);
Write(‘lebar ?’); readln(l);
Luas := t*l;
Writeln(‘luas bujur sangkar =’,luas:10:2);
end;
end;
end.
Uce Indahyanti
Variabel Array:
Merupakan var tipe data terstruktur yang terdiri dari sejumlah komponen yang mempunyai tipe data
yang sama. Var array mempunyai jumlah komponen yg banyaknya tetap. Jumlah komponen
ditunjukkan dengan nilai indeks atau dimensi dari array.
Terdapat dua jenis array yaitu:
var array 1 dimensi
var array 2 dimensi
contoh deklarasi var array 1 dimensi :
var
m : array[1..5] of integer;
keterangan
m adalah nama var array 1 dimensi
[1..5] adalah indeks array; yg dapat menampung maksimal 5 buah data
integer adalah tipe data var array m
dari deklarasi tsb dpt digambarkan var m sbb: m[1],m[2],m[3],m[4],m[5]
artinya 1 variabel dpt menyimpan 5 buah data yg bertipe sama
Menginputkan & Menampilkan Data Array:
Input read(m[1]); read(m[2]); read(m[3]); read(m[4]); read(m[5])
Kapan perlu menggunakan variabel array ?
Jika kita memerlukan penyimpanan sementara untuk data-data yang bertipe sama di dalam memori,
untuk selanjutnya data-data tersebut dimanipulasi (dihitung atau diterapkan oleh proses lainnya)
Contoh algoritma tanpa array: Deklarasi
x,i : integer;
deskripsi
{baca 6 buah nilai yang bertipe integer dan simpan di x}
for i 1 to 6 do
read(x)
endfor
{cetak setiap nilai x}
for i 1 to 6 do
write(x)
endfor
Bila runtunan nilai x yg dibaca dari keyboard adalah : 20,30,40,50,60,70 maka output dari algoritma
di atas adalah: 70 70 70 70 70 70
Karena variabel x hanya dapat menampung satu buah nilai, dan nilai yang disimpan oleh x adalah
selalu nilai yang terakhir yaitu 70, maka nilai 70 itulah yg akan dicetak pada setiap kali
pengulangan.
Sekarang bandingkan dengan algoritma yg menggunakan array x yang berisi 6 buah data / elemen:
Algoritma dengan array: Deklarasi
x : array [1..6] of integer
i : integer
Deskripsi
{baca 6 buah nilai integer simpan di x}
for i 1 to 6 do
Uce Indahyanti
read(x[i])
endfor
{cetak setiap nilai x}
for I 1 to 6 do
write(x[i])
endfor
Keluaran dari algoritma di atas akan sesuai dengan data yang diinputkan yaitu: 20 30 40 50 60 70
Selama pelaksanaan program, elemen array tetap menyimpan nilai-nilai yang dimaksud. Hal ini
berguna jika kita ingin menggunakan nilai-nilai di dalam array tsb untuk diproses lebih lanjut di
bagian lain dalam algoritma berikut ini: Deklarasi
x : array [1..6] of integer
i,jumlah : integer
Deskripsi
{baca 6 buah nilai integer simpan di x}
for i 1 to 6 do
read(x[i])
endfor
{cetak setiap nilai x}
for I 1 to 6 do
write(x[i])
endfor
…..
…..
{di bagian ini elemen-elemen array digunakan kembali}
{hitung nilai rata-rata seluruh elemen}
Jumlah 0
For I 1 to 6 do
Jumlah jumlah + x[i]
Endfor
Write(jumlah/6)
…
…
…
Contoh-contoh soal array & penyelesaiannya:
Soal:
Buatlah program untuk menampilkan nama bulan bila diinputkan angka bulan dari keyboard:
Jawab:
uses crt;
type
huruf = string[11];
x : array[1..12] of huruf;
const
bln : x =
(‘januari’,’februari’,’maret’,’april’,’mei’,’juni’,’juli’,’agustus’,’september’,’oktober’,’nopember’,’desember’);
var
k : integer;
begin
write(‘angka bulan : ‘);readln(k);
write(‘nama bulan : ‘,bln[k]);
readln;
end.
Uce Indahyanti
Soal:
Buatlah program untuk mencari nilai terbesar dari beberapa angka (maksimal 20 angka) yang diinputkan lewat
keyboard:
Jawab:
uses crt;
var
angka : array[1..20] of integer;
jum,max,i : integer;
begin
clrscr;
write(‘masukkan berapa angka yang akan diinputkan: ‘); readln(jum);
for i := 1 to jum do
begin
write(‘masukkan angka-angkanya : ’); readln(angka[i]);
end;
max := angka[i];
for i := 1 to jum do
begin
if max < angka[i] then max := angka[i];
end;
writeln(‘jadi nilai terbesar dari angka-angka yang anda inputkan adalah: ‘, max);
readln;
end.
Top Down Design
Konsep top down design adalah melihat suatu masalah mulai dari yg umum sampai yg khusus.
Bagian yg khusus ditulis dlm subprogram tersendiri. Sebuah program yg cukup besar atau kompleks
harus dipecah/
Procedure
Procedure/prosedur adalah suatu sub program terpisah dalam blok sendiri yang berfungsi sebagai
subprogram (program bagian).Prosedur dipanggil dan digunakan di dalam blok program yang
lainnya dengan menyebutkan judul prosedurnya.
Parameter dalam prosedur:
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.
Contoh: Procedure hitung;
Var x,y : real;
Begin
Write(‘nilai x : ‘);
Readln(x);
Y:= x*x;
Writeln(‘nilai y = ‘,y:6:2);
End;
{main program} program akan error jika pada modul utama / main program diganti syntax-nya sbb:
Begin hitung;
hitung; writeln(‘nilai y = ‘,y:6:1);
end. end.
Bila dijalankan nilai x : 5
Nilai y = 25.00
Uce Indahyanti
Pada contoh variabel x & y sifatnya adalah lokal untuk prosedur hitung, jadi tidak dapat dipakai di
sub program yg lain ataupun di modul utama. Spt ketr di atas program akan error jika pada modul
utama menggunakan variabel y.
Jika pendeklarasian variabel x & y di atas procedure hitung maka variabel tersebut bersifat global
untuk procedure hitung dan main program/modul utama, syntax-nya sbb: Var x, y : real;
Procedure kesatu;
Begin
-
End;
{main program}
Begin
-
End.
Contoh var. Lokal & global:
latihan soal:
Uses crt;
Var x,y : integer;
Procedure hitung; outputnya: 7 12
Var z : integer; proses:
Begin alurdimulai dari main program dengan memberi nilai awal untuk var x & y yaitu
Procedure kesatu;
Var
c,d : real;
begin
….
end;
Var
a,b : byte;
Begin
-
End.
Procedure kedua;
Begin
-
End;
Procedure ketiga;
Begin
-
End;
Keterangan:
Var c & d bersifat lokal untuk
prosedur kesatu, tidak dapat
digunakan di sub program lain &
modul utama.
Var a & b bersifat global untuk
prosedur kedua, prosedur ketiga dan
untuk modul utama.Tapi tidak
bersifat global untuk prosedur
kesatu, shg prosedur kesatu tidak
dapat menggunakan variable tsb.
Uce Indahyanti
Z := x+y; x = 2 dan y = 10. lalu program memanggil prosedur hitung dgn nilai awal x&y yg telah
ada, di proc
X := x + 5; hitung nilai tersebut diproses mjd : z = 2 + 10 z = 12 y = z, dan x = 2 + 5 x = 7
Y := z:
End;
{main program}
Begin
X := 2 ; y := 10;
Hitung;
Writeln(x,’ ‘,y);
End.
Function
Blok function hampir sama dengan blok prosedur, hanya function harus dideklarasikan tipe datanya
karena nama suatu function harus berisi suatu nilai.
Contoh: Var a,b,c : integer;
....
Function hitung : integer;
Begin
Hitung := a+b;
End;
Begin
C := hitung;
Write(‘hasilnya = ‘,hitung);
End.
Function juga mempunyai fasilitas yg sama dg procedure spt deklarasi variable dlm function, dll.
Suatu function bisa memanggil suatu procedure, begitu juga sebaliknya.
Function lebih banyak digunakan untuk perhitungan krn lebih menghemat variable spt contoh diatas.
Latihan soal:
Buat program yang terdiri dari :
- procedure untuk membaca 2 nilai yang diinputkan
- function untuk menghitung rata-rata kedua nilai tersebut
- procedure untuk mencetak nilai rata-ratanya
Parameter Passing
Variabel yang bersifat local hanya dapat dikenal/dipakai oleh sub program yg berada dibawah
deklarasi variable tersebut. Agar nilai var tsb dpt dimanfaatkan oleh sub program yg berada
diatasnya, maka nilai tsb dpt dikirim ke sub program yg membutuhkan dlm bentuk parameter.
Pengiriman nilai var sbg parameter inilah yang dikenal dengan istilah parameter passing.
Parameter passing dpt dilakukan baik pada procedure maupun function. Nilai yang dikirim dari
program pemanggil akan diterima oleh program yang dipanggil, shg nilai tsb bisa digunakan pada
program yg dipanggil.
Parameter yg dikirim dari program pemanggil disebut actual parameter, sedangkan parameter yg
berada pada program yg dipanggil untuk menerima nilai yg dikirimkan disebut formal parameter.
Uce Indahyanti
Contoh pada procedure: Procedure hitung(a,b : integer; c:real);
Begin
…
…
End;
Var p,q : integer;
r : real;
begin
….
Input(p,q,r);
…..
End.
Pada contoh ini program pemanggilnya adalah main program sedangkan program yg dipanggil
adalah procedure hitung.Variabel p,q dan r pd main program dikirim ke procedure hitung dan
diterima parameter a,b & c. Jadi pada saat dikirimkan:
nilai a = p, b = q, c = r
p,q,r merupakan actual parameter
a,b,c merupakan formal parameter
Pada bahasa Pascal, parameter passing dibedakan menjadi 2 yaitu:
parameter passing by value (searah)
parameter passing by reference (dua arah ditandai dg statement VAR didepan formal
parameter)
contoh: procedure hitung(a, b : integer); Nilai p =5 & q=10 dikirim ke proc.hitung, nilai a & b pd proc.hitung tjd perubahan
var c : integer; yaitu a=5+5=10 dan b = 10*2=20, tapi setelah kembali ke program pemanggil (dlm hal
begin ini main program) nilai p & q tidak berubah yaitu tetap 5 & 10 Outputnya: 5 10
a:=a+5; Inilah yg dimaksud pengiriman searah (by value).
b:=a*2; Tetapi jika pd proc hitung ditambah statement VAR di depan variable a & b
end; procedure hitung(VAR a,b : integer); maka nilai a & b yg telah berubah pd proc.hitung akan
var p,q : integer; dikirim balik ke main program, shg outputnya: 10 20
begin Inilah yg dimaksud pengiriman dua arah (by reference)
p:=5; q:=10; procedure(var a , b : integer);
……..
…….
hitung(p , q); hitung(p , q);
write(p,’ ‘,q);
readln;
end.
Uce Indahyanti
Parameter Passing & Procedure / Function di dalam Procedure / Function
Contoh:
Uses crt;
Var a,b : integer;
Procedure satu(var a,b : integer);
Var c : integer;
Procedure dua (var p,q : integer);
Begin
C := p*q;
P := p*10;
Q := q+5;
End; p = k = 2 p=p*10=20
Procedure tiga (k,l : integer); q = l = 3 q=q+5=8
Begin outputnya 20 8
Write(‘inputkan nilai k :’);Readln(k);
Write(‘inputkan nilai l :’);Readln(l);
Dua(k,l); writeln(k,’ ‘,l);
End;
Begin {proc.satu}
A:=0;b:=0;c:=0;
Tiga(a,b);
End; {proc.satu}
{modul utama/main program}
Begin
Clrscr;
Satu(a,b);
Readln;
End.