• Tidak ada hasil yang ditemukan

Algoritma Pemrograman

N/A
N/A
Protected

Academic year: 2022

Membagikan "Algoritma Pemrograman"

Copied!
35
0
0

Teks penuh

(1)

Algoritma Pemrograman

Pertemuan Ke-8

(Prosedur)

:: Noor Ifada ::

(2)

Sub Pokok Bahasan

Pendahuluan

Modularisasi Program Pendefinisian Prosedur

Nama Global dan Nama Lokal

Parameter

(3)

Pendahuluan

• Seringkali dalam membuat pembuatan program yang berukuran besar, program tersebut

dipecah menjadi beberapa subprogram yang lebih kecil. Tiap subprogram, yang disebut

modul,dapat dipasangkan ke program lain yang membutuhkannya.

• Teknik pemrograman seperti ini dinamakan

teknik pemrograman modular. Beberapa bahasa pemrograman menamakan modul dengan

sebutan rutin (routine), prosedur, atau fungsi.

(4)

Modularisasi Program

Keuntungan:

1. Menghindari penulisan teks program yang sama secara berulang kali untuk aktivitas yang harus dilakukan lebih dari satu kali

2. Memberikan kemudahan menulis dan menemukan kesalahan (debug)

program

(5)

Jenis Modul Program

1. prosedur (procedure), dan 2. fungsi (function)

Struktur setiap modul tersebut pada

hakikatnya sama dengan struktur algoritma

biasa, yaitu ada bagian Judul (header) yang

berisi nama modul, bagian Deklarasi, dan

badan (body) program yang berisi instruksi

yang akan dilaksanakan.

(6)

Pendefinisian Prosedur

• Prosedur adalah modul program yang

mengerjakan tugas/aktivitas yang spesifik dan hasilnya diperoleh dengan

membandingkan keadaan awal dan

keadaan akhir pada pelaksanaan sebuah prosedur

• Oleh karena itu, pada setiap prosedur, keadaan awal (K.awal) harus

didefinisikan sebelum rangkaian instruksi di dalam prosedur dilaksanakan dan

keadaan akhir (K.akhir) yang diharapkan

(7)

Struktur Prosedur

• bagian Judul (header)

terdiri atas nama prosedur dan komentar yang menjelaskan spesifikasi prosedur

tersebut,

• bagian Deklarasi

• badan (body) prosedur

(8)

Notasi algoritma untuk

mendefinisikan struktur prosedur

(tanpa parameter)

(9)

• Contoh: Prosedur dan contoh

program utama untuk menghitung nilai rata-rata N buah bilangan

bulat yang dibaca dari piranti

masukan. Nilai rata-rata seluruh bilangan dicetak ke piranti

keluaran.

Algoritma RATA_RATA_BILANGAN_BULAT

{ Program utama untuk menghitung nilai rata-rata N buah bilangan bulat. }

DEKLARASI (* Program Utama *) { tidak ada }

procedure HitungRataRata

{Menghitung nilai rata-rata N buah bilangan bulat. N>0}

DEKLARASI (* Prosedur *)

x : integer { data bilangan bulat }

N : integer { banyaknya data bilangan bulat, N > 0 } k : integer { pencacah banyak bilangan }

jumlah : integer { jumlah seluruh bilangan } rata : real { nilai rata-rata seluruh bilangan } DESKRIPSI : (* Prosedur *)

read(N)

jumlah

0 { inisialisasi penjumlah } for k

1 to N do

read(x)

jumlah

jumlah + x

endfor

rata

jumlah/N

write(‘Nilai rata-rata = ‘,rata) DESKRIPSI : (Program Utama *)

write(‘Menghitung rata-rata N buah bilangan bulat’) HitungRataRata

(10)

• Prosedur diakses dengan cara memangil namanya dari program pemanggil

(program utama atau modul program lain): Namaprosedur

• Ketika NamaProsedur dipanggil, kendali program berpindah secara otomatis ke prosedur tersebut. Instruksi di dalam badan prosedur dilaksanakan. Setelah semua instruksi selesai dilaksanakan, kendali program berpindah secara

otomatis ke instruksi sesudah

pemanggilan prosedur

(11)

Program RATA_RATA_BILANGAN_BULAT;

procedure HitungRataRata;

var

x, N, k, jumlah : integer;

rata : real;

begin

write(‘Masukkan banyaknya data ? ’); readln(N);

jumlah:=0;

for k:= 1 to N do begin

write(‘Nilai x : ? ’);

readln(x);

jumlah:=jumlah+x;

end;

rata:= jumlah/N;

writeln(‘Nilai rata-rata = ‘,rata);

end;

begin

writeln(‘Menghitung rata-rata N buah bilangan bulat’);

HitungRataRata;

end.

(12)

Nama Global & Nama Lokal

• Nama-nama (konstanta, peubah, tipe, dan lain-lain) yang dideklarasikan di dalam

bagian Deklarasi prosedur bersifat “lokal”

dan hanya dapat digunakan di dalam prosedur yang melingkupinya saja

• Sedangkan nama-nama yang

dideklarasikan di dalam program utama

bersifat “global” dan dapat digunakan di

bagian manapun di dalam program, baik di

dalam program utama maupun di dalam

(13)

• Contoh: prosedur HitungRataRata dan program

utama

RATA_RATA_BIL ANGAN_BULAT yang sudah

dimodifikasi dengan

menempatkan N dan rata sebagai nama peubah di dalam bagian deklarasi nama program utama.

Algoritma RATA_RATA_BILANGAN_BULAT

{ Program utama untuk menghitung nilai rata-rata } DEKLARASI (* Program utama *)

N : integer { banyaknya data bilangan bulat, N > 0 } rata : real { nilai rata-rata seluruh bilangan }

procedure HitungRataRata

{Menghitung nilai rata-rata N buah bilangan bulat. N>0}

DEKLARASI (* Prosedur *) x : integer

k : integer

jumlah : integer

DESKRIPSI : (* Prosedur *) jumlah

0 { inisialisasi } for k

1 to N do

read(x)

jumlah

jumlah + x

endfor

rata

jumlah/N

DESKRIPSI : (* Program Utama *) read(N)

write(‘Menghitung rata-rata N buah bilangan bulat’) HitungRataRata

write(‘Nilai rata-rata = ‘,rata)

(14)

Program RATA_RATA_BILANGAN_BULAT;

var

N : integer;

rata : real;

procedure HitungRataRata;

var

x, k, jumlah : integer;

begin

jumlah:=0;

for k:= 1 to N do begin

write(‘Nilai x : ? ’);

readln(x);

jumlah:=jumlah + x;

end;

rata:= jumlah/N;

end;

begin

write(‘Masukkan banyaknya data ? ’); readln(N);

writeln(‘Menghitung rata-rata N buah bilangan bulat’);

HitungRataRata;

(15)

• Peubah N dan rata bersifat global dan dapat digunakan di dalam

prosedur HitungRataRata karena dideklarasikan dalam bagian

Deklarasi program utama.

• Sedangkan peubah x, k, dan jumlah bersifat lokal dan hanya dikenal dan digunakan di dalam lingkup prosedur saja karena dideklarasikan dalam

prosedur HitungRataRata

(16)

Parameter

• Kebanyakan program memerlukan pertukaran informasi antara prosedur (atau fungsi) dan titik dimana ia dipanggil. Penggunaan

parameter menawarkan mekanisme

penukaran informasi tersebut. Tiap item data ditransfer antara parameter aktual dan

parameter formal yang bersesuaian

• Parameter aktual adalah parameter yang

disertakan ketika pemanggilan, sedangkan

paramater formal adalah parameter yang

dideklarasikan di bagian header prosedur itu

sendiri

(17)

Notasi algoritma untuk

mendefinisikan struktur prosedur

dengan parameter

(18)

• Prosedur dengan parameter diakses dengan cara memanggil namanya dari program

pemanggil (program utama atau modul program lain) dengan disertai parameter aktualnya:

Namaprosedur(daftar parameter aktual)

• Berdasarkan maksud penggunaannya,

terdapat tiga jenis parameter formal yang disertakan dalam prosedur:

1.Parameter Masukan (input parameter)

2.Parameter Keluaran (output parameter)

(19)

Parameter Masukan (input parameter)

• Parameter masukan adalah parameter yang nilainya berlaku sebagai masukan untuk prosedur

• Pada bahasa pemrograman, istilah parameter masukan ini sering dinamakan parameter nilai (value parameter atau parameter by value)

• Pada parameter masukan, nilai (value) parameter aktual diisikan (assign) ke dalam parameter formal yang

bersesuaian. Nilai ini digunakan di dalam badan

prosedur yang bersangkutan. Nilai yang dinyatakan oleh parameter masukan tidak dapat dikirim dalam arah

sebaliknya. Itulah alasan mengapa parameter jenis ini diacu sebagai parameter masukan

• Perubahan nilai parameter di dalam badan prosedur

tidak mengubah nilai parameter aktual. Karena yang

dipentingkan adalah nilainya, maka nama parameter

aktual boleh berbeda dengan nama parameter formal

yang bersesuaian.

(20)

• Contoh:

Prosedur dan program utama untuk

menghitung nilai rata-rata N buah bilangan bulat ditulis kembali prosedur dengan menggunakan

parameter masukan.

Algoritma RATA_RATA_BILANGAN_BULAT

{ Program utama untuk menghitung nilai rata-rata } DEKLARASI (* Program utama *)

Ndata : integer { banyaknya data bilangan bulat } procedure HitungRataRata(input N : integer)

{Menghitung nilai rata-rata N buah bilangan bulat}

{K.awal: N berisi banyaknya bilangan bulat, N > 0}

{K.akhir: rata-rata seluruh bilangan dicetak}

DEKLARASI (* Prosedur *) x, k, jumlah : integer

rata : real { nilai rata-rata seluruh bilangan } DESKRIPSI : (* Prosedur *)

jumlah

0 { inisialisasi penjumlah } for k

1 to N do

read(x)

jumlah

jumlah + x

endfor

rata

jumlah/N

write(rata)

(21)

Program RATA_RATA_BILANGAN_BULAT;

var

Ndata : integer;

procedure HitungRataRata(N : integer);

var

x, k, jumlah : integer;

rata : real;

begin

jumlah:=0;

for k:= 1 to N do begin

write(‘Nilai x : ? ’);readln(x);

jumlah:=jumlah+x;

end;

rata:= jumlah/N;

writeln(‘Nilai rata-rata = ‘,rata);

end;

begin

write(‘Masukkan banyaknya data ? ’); readln(Ndata);

writeln(‘Menghitung rata-rata N buah bilangan bulat’);

HitungRataRata(Ndata);

end.

(22)

Parameter Keluaran (output parameter)

• Parameter keluaran adalah parameter yang menampung keluaran yang dihasilkan oleh prosedur

• Pada bahasa pemrograman, istilah parameter keluaran sering dinamakan parameter acuan (reference parameter atau parameter by reference)

• Bila prosedur yang mengandung parameter keluaran dipanggil, nama parameter aktual di dalam program pemanggil menggantikan nama parameter formal yang bersesuaian di dalam prosedur. Jadi, nama parameter aktual akan digunakan selama pelaksanaan prosedur

• Karena nama parameter merupakan suatu lokasi di

memori, maka bila di dalam prosedur parameter aktual diisi suatu nilai, nilai ini akan tetap berada di dalam

parameter aktual meskipun prosedur selesai

(23)

• Contoh:

Prosedur dan program utama untuk

menghitung nilai rata-rata N buah bilangan bulat ditulis kembali prosedur dengan nilai rata-rata

merupakan keluaran prosedur

Algoritma RATA_RATA_BILANGAN_BULAT

{ Program utama untuk menghitung nilai rata-rata } DEKLARASI (* Program Utama *)

Ndata : integer rerata : real

procedure HitungRataRata(input N:integer, output rata:real)

{ Menghitung nilai rata-rata N buah bilangan bulat } { K.awal: N berisi banyaknya bilangan bulat, N > 0 } { K.akhir: rata berisi rata-rata seluruh bilangan } DEKLARASI (* Prosedur *)

x, k, jumlah : integer DESKRIPSI : (* Prosedur *)

jumlah ← 0 { inisialisasi penjumlah } for k ← 1 to N do

read(x)

jumlah ← jumlah + x endfor

rata ← jumlah/N

DESKRIPSI : (* Program utama *)

write(‘Menghitung rata-rata N buah bilangan bulat’) read(Ndata)

HitungRataRata(Ndata,rerata) write(rerata)

(24)

Program RATA_RATA_BILANGAN_BULAT;

var

Ndata : integer;

rerata : real;

procedure HitungRataRata(N : integer; var rata : real);

var

x, k, jumlah : integer;

begin

jumlah:=0;

for k:= 1 to N do begin

write(‘Nilai x : ? ’);readln(x);

jumlah := jumlah + x;

end;

rata:= jumlah/N;

end;

begin

write(‘Masukkan banyaknya data ? ’); readln(Ndata);

writeln(‘Menghitung rata-rata N buah bilangan bulat’);

HitungRataRata(Ndata,rerata);

writeln(‘Nilai rata-rata = ‘,rerata);

(25)

Parameter masukan/keluaran (input/output parameter)

• Parameter masukan/keluaran adalah parameter yang berfungsi sebagai masukan sekaligus keluaran bagi

prosedur tersebut. Pada bahasa pemrograman, seperti

halnya parameter keluaran, parameter masukan/keluaran juga sering dinamakan parameter acuan (reference

parameter atau parameter by reference).

• Parameter masukan digunakan pada situasi di mana

informasi dikirim hanya dari titik pemanggilan prosedur ke prosedur itu sendiri. Sedangkan parameter keluaran hanya mengirim informasi dari prosedur ke titik

pemanggilan prosedur. Pada kebanyakan aplikasi, informasi juga harus dikirim dalam kedua arah, jadi

prosedur juga harus dapat mengakomodasi baik masukan dari dan keluaran ke blok program pemanggil (parameter masukan/keluaran umumnya digunakan pada situasi

seperti ini)

(26)

• Seperti halnya pada parameter keluaran, bila prosedur yang mengandung parameter keluaran dipanggil, nama parameter aktual di dalam program pemanggil menggantikan

(substitute) nama parameter formal yang bersesuaian di dalam prosedur. Selain itu, isi atau nilai parameter aktual juga ikut disalin ke dalam parameter formal. Jadi, nama dan nilai parameter aktual digunakan di seluruh bagian prosedur.

Akibat penggunaan parameter masukan/keluaran, bila

parameter aktual diubah nilainya di dalam badan prosedur,

maka sesudah pemanggilan prosedur nilai parameter aktual di titik pemanggilan juga berubah. Ini berbeda dengan

parameter masukan, yang dalam hal ini meskipun nilai parameter aktual di dalam badan prosedur diubah, nilai

parameter aktual tersebut tidak berubah di titik pemanggilan

• Parameter masukan/keluaran dideklarasikan di dalam header prosedur, sebagaimana parameter masukan. Tetapi,

parameter keluaran harus dideklarasikan dengan kata kunci

input/output

(27)

• Contoh: Prosedur dan program utama yang

memperlihatkan efek penggunaan parameter masukan dan

perbandingannya dengan parameter masukan/keluaran:

Algoritma MENAMBAH_DUA

{Program yang memperlihatkan efek penggunaan parameter masukan}

DEKLARASI (* Program Utama *) a,b : integer

procedure TambahDua(input x,y : integer)

{ Menambahkan nilai x dan y masing-masing dengan 2 } { K.awal: x dan y sudah berisi }

{ K.akhir: nilai x dan y masing-masing bertambah 2 } DEKLARASI (* Prosedur *)

{ tidak ada }

DESKRIPSI : (* Prosedur *) x ← x + 2

y ← y + 2

write(‘Nilai x dan y di akhir prosedur : ’) write(‘ x = ‘, x)

write(‘ y = ‘, y)

DESKRIPSI : (* Program Utama *) a ← 15

b ← 10

write(‘Nilai a dan b sebelum pemanggilan : ’) write(‘ a = ‘, a)

write(‘ b = ‘, b) TambahDua(a,b)

write(‘Nilai a dan b sesudah pemanggilan : ’) write(‘ a = ‘, a)

write(‘ b = ‘, b)

(28)

Program MENAMBAH_DUA;

var

a,b: integer;

procedure TambahDua(x,y : integer);

begin

x := x + 2;

y := y + 2;

writeln(‘Nilai x dan y di akhir prosedur : ’);

writeln(‘ x = ‘, x);

writeln(‘ y = ‘, y);

end;

begin

a:=15;

b:=10;

writeln(‘Nilai a dan b sebelum pemanggilan : ’);

writeln(‘ a = ‘, a);

writeln(‘ b = ‘, b);

TambahDua(a,b);

writeln(‘Nilai a dan b sesudah pemanggilan : ’);

writeln(‘ a = ‘, a);

(29)

• Hasil algoritma MENAMBAH_DUA dengan penggunaan parameter

masukan adalah:

– Nilai a dan b sebelum pemanggilan :

a = 15 b = 10

– Nilai x dan y di akhir prosedur :

a = 17 b = 12

– Nilai a dan b sesudah pemanggilan :

a = 15 b = 10

• Jadi, setelah pemanggilan prosedur,

nilai a dan b tidak berubah

(30)

• Contoh: Prosedur dan program

utama dengan

parameter berjenis masukan/keluaran:

Algoritma MENAMBAH_DUA

{ Program yang memperlihatkan efek penggunaan parameter masukan/keluaran }

DEKLARASI a,b : integer

procedure TambahDua(input/output x,y : integer)

{ Menambahkan nilai x dan y masing-masing dengan 2 } { K.awal: x dan y sudah berisi }

{ K.akhir: nilai x dan y masing-masing bertambah 2 } DEKLARASI

{ tidak ada } DESKRIPSI : x ← x + 2 y ← y + 2

write(‘Nilai x dan y di akhir prosedur : ’) write(‘ x = ‘, x)

write(‘ y = ‘, y) DESKRIPSI :

a ← 15 b ← 10

write(‘Nilai a dan b sebelum pemanggilan : ’) write(‘ a = ‘, a)

(31)

Program MENAMBAH_DUA;

var

a,b: integer;

procedure TambahDua(var x,y : integer);

begin

x := x + 2;

y := y + 2;

writeln(‘Nilai x dan y di akhir prosedur : ’);

writeln(‘ x = ‘, x);

writeln(‘ y = ‘, y);

end;

begin

a:=15;

b:=10;

writeln(‘Nilai a dan b sebelum pemanggilan : ’);

writeln(‘ a = ‘, a);

writeln(‘ b = ‘, b);

TambahDua(a,b);

writeln(‘Nilai a dan b sesudah pemanggilan : ’);

writeln(‘ a = ‘, a);

writeln(‘ b = ‘, b);

end.

(32)

• Hasil algoritma MENAMBAH_DUA dengan penggunaan parameter masukan/keluaran adalah:

– Nilai a dan b sebelum pemanggilan :

a = 15 b = 10

– Nilai x dan y di akhir prosedur :

a = 17 b = 12

– Nilai a dan b sesudah pemanggilan :

a = 17 b = 12

• Akibat penggunaan x dan y sebagai parameter

masukan/keluaran, bila nilai a dan b diubah di

dalam prosedur TambahDua, maka perubahan

ini dibawa ke titik pemanggilan prosedur

(33)

Summary [1]

• Keuntungan modularisasi program adalah menghindari penulisan teks program yang sama secara berulang kali

untuk aktivitas yang harus dilakukan lebih dari satu kali dan memberikan kemudahan menulis dan menemukan kesalahan (debug) program

• Terdapat 2 jenis modul program, yaitu: prosedur (procedure) dan fungsi (function)

• Prosedur adalah modul program yang mengerjakan

tugas/aktivitas yang spesifik dan hasilnya diperoleh dengan membandingkan keadaan awal dan keadaan akhir pada

pelaksanaan sebuah prosedur

• Struktur Prosedur terdiri dari: bagian Judul (header),

bagian Deklarasi dan badan (body) prosedur

(34)

• Nama-nama (konstanta, peubah, tipe, dan lain-lain) yang dideklarasikan di dalam bagian Deklarasi prosedur bersifat

“lokal” dan hanya dapat digunakan di dalam prosedur yang

melingkupinya saja. Sedangkan nama-nama yang dideklarasikan di dalam program utama bersifat “global” dan dapat digunakan di bagian manapun di dalam program, baik di dalam program utama maupun di dalam prosedur

• Penggunaan parameter menawarkan mekanisme penukaran informasi antara prosedur (atau fungsi) dan titik dimana ia

dipanggil. Tiap item data ditransfer antara parameter aktual (parameter yang disertakan ketika pemanggilan) dan

parameter formal (parameter yang dideklarasikan di bagian header prosedur itu sendiri) yang bersesuaian. Ketika prosedur dipanggil, parameter aktual menggantikan parameter formal

• Terdapat 3 jenis parameter formal yang disertakan dalam

Summary [2]

(35)

Daftar Pustaka

Jogiyanto HM [1989]. Turbo Pascal, Andi Offset, Yogyakarta.

Noor Ifada, ST [2005]. Diktat Matakuliah Algoritma Pemrograman, Hibah Kompetisi A1, Jurusan Teknik Informatika, Universitas Trunojoyo.

Rinaldi Munir [2003]. Algoritma dan

Pemrograman dengan Pascal dan C edisi

Kedua, Penerbit Informatika, Bandung.

Referensi

Dokumen terkait

Davis (Siswono, 2008) memberikan 6 alasan mengapa pembelajaran matematika perlu menekankan kreativitas, yaitu: (1) matematika begitu kompleks untuk diajarkan dengan

Pembahasan penelitian pengembangan ini dilakukan berdasarkan tahapan-tahapan pada penelitian pengembangan yang dimulai dengan membuat desain/draf produk pengembangan

Dari pertimbangan-pertimbangan mengenai deskripsi proses, kelebihan dan kekurangan, serta kondisi proses, dipilih metode pulpikasi kraft (sulfat) sebagai

Segala puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah mencurahkan rahmat dan hidayahNya, shalawat serta salam semoga tercurah kepada Nabi Muhammad SAW

Judul : Pengaruh Ekstrak Etanol Temulawak (Curcuma xanthorrhiza Roxb.) terhadap Jumlah Total dan Diferensiasi Leukosit pada Ayam Petelur (Gallus gallus) Strain ISA Brown... Penulis

Saya yang bertanda tangan di bawah ini menyatakan dengan sesungguhnya bahwa skripsi saya yang berjudul “Analisis Faktor-Faktor Yang Mempengaruhi Praktik Perataan Laba Pada

Kekerasan seksual suami terhadap istri dalam rumah tangga yang salah satu dampaknya adalah rusaknya alat reproduksi tidak dibenarkan dalam islam dengan alasan, Pertama, dari