modul logika algoritma

17
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)

Upload: yukaokto2

Post on 02-Jan-2016

58 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: 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)

Page 2: Modul Logika Algoritma

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

Page 3: Modul Logika Algoritma

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

Page 4: Modul Logika Algoritma

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

Page 5: Modul Logika Algoritma

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

Page 6: Modul Logika Algoritma

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.

Page 7: Modul Logika Algoritma

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

Page 8: Modul Logika Algoritma

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 !

Page 9: Modul Logika Algoritma

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

Page 10: Modul Logika Algoritma

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.

Page 11: Modul Logika Algoritma

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

Page 12: Modul Logika Algoritma

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.

Page 13: Modul Logika Algoritma

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

Page 14: Modul Logika Algoritma

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.

Page 15: Modul Logika Algoritma

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.

Page 16: Modul Logika Algoritma

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.

Page 17: Modul Logika Algoritma

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.