Anda di halaman 1dari 14

Algoritma dan Pemrograman

(Praktikum Algoritma dan Pemrograman)


http://www.unhas.ac.id/amil/mk/2012_2/AP/
L#3 Amil Ahmad Ilham http://www.unhas.ac.id/amil

PROSEDUR
Seringkali dalam membuat program besar si pemrogram perlu memecah program menjadi beberapa sub-program yang lebih kecil. Tiap sub-program kadangkala independen dari program utama sehingga programnya dapat dirancang tanpa mempertimbangkan konteks tempat ia digunakan. Modul yang ditulis dapat dipasang 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. Modularisasi program memberikan dua keuntungan
modularisasi menghindari penulisan teks program yang sama secara berulang kali. Modul program cukup ditulis sekali saja, lalu modul tersebut dapat diakses dari bagian lain di program Kemudahan menulis dan menemukan kesalahan (debug) program.

Modul Program
Procedure (prosedur) dan function (fungsi) strukturnya kedua modul 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.

Mendefinisikan Prosedur
Pada dasarnya struktur prosedur sama dengan sturuktur algoritma, yaitu ada judul (header) yang terdiri atas nama prosedure dan komentar yang menjelaskan spesifikasi prosedur, bagian deklarasi dan badan prosedure.

Contoh-1
Procedure HIT_LUAS_SEGITIGA DEKLARASI a : real t : real L : real DESKRIPSI read(a) read(t) L a*t/2

Contoh-2
Procedure HITUNG_RATA_RATA DEKLARASI N : intreger {banyak bilangan,>0} x : integer {bilangan yang dibaca dari keyboard} k : integer {pencacah banyak bilangan} jumlah : integer { pencatat jumlah bilangan } u : real { rata-rata bilangan } DESKRIPSI read (N) jumlah 0 { inisialisasi } k 1 { inisialisasi pencacah } while k=< N do read (x) jumlah jumlah + x k k+1 endwhile {k>N} u jumlah/N

Pemanggilan Prosedure
Prosedure bukan program yang berdiri sendiri, jadi ia tidak dapat dieksekusi secara langsung. Ini berarti, instruksi-instruksi di dalam prosedur baru dapat dilaksanakan hanya bila prosedur tsb diakses Prosedur diakses dengan cara memanggil namanya dari program utama atau modul program Ketika Nama_Prosedur dipanggil, kendali program berpindah secara otomatis ke prosedure tersebut. Instruksi didalam badan prosedur dilaksanakan. Setelah semua instruksi selesai, kendali program berpindah secara otomatis ke instruksi sesudah pemanggilan prosedure. Didalam program pemanggil kita harus mendeklarasikan prototype prosedur di dalam bagian DEKLARASI. Prototype prosedur hanya berisi bagian header prosedur. Tujuan pendeklarasian prototype prosedur adalah supaya program pemanggil mengenal nama prosedur tsb serta cara mengaksesnya.

Contoh-3
Algoritma RATA_RATA_BILANGAN BULAT { program utama untuk menghitung rata-rata N buah bilangan bulat} DEKLARASI producere HITUNG_RATA_RATA {Menghitung rata-rata N buah bilangan bulat yang dibaca dari papan kunci} DESKRIPSI : write (Menghitung rata-rata N buah bilangan bulat ) HITUNG_RATA_RATA write ( sukses ! )

Nama Global dan Nama Lokal


Nama lokal adalah nama-nama (tetapan, peubah,tipe, dll) yang dideklarasikan di dalam Deklarasi prosedure-prosedure hanya dikenal di dalam badan prosedure yang bersangkutan. Nama Global adalah nama-nama yang dideklarasikan di dalam program utama . Namanama global dapat digunakan dibagian manapun di dalam program, baik di dalam program utama maupun di dalam prosedure

Contoh-4
Procedure HITUNG_RATA_RATA DEKLARASI x : integer {bilangan yang dibaca dari keyboard} k : integer {pencacah banyak bilangan} jumlah : integer { pencatat jumlah bilangan } DESKRIPSI jumlah 0 { inisialisasi } k 1 { inisialisasi pencacah } while k=< N do read (x) jumlah jumlah + x k k+1 endwhile {k>N} u jumlah/N

Algoritma RATA_RATA_BILANGAN BULAT { program utama untuk menghitung ratarata N buah bilangan bulat} DEKLARASI N : integer u : real producere HITUNG_RATA_RATA {Menghitung rata-rata N buah bilangan bulat yang dibaca dari papan kunci} DESKRIPSI : read(N) write (Menghitung rata-rata N buah bilangan bulat ) HITUNG_RATA_RATA write ( nilai rata-rata =, u )

Parameter
Kebanyakan program memerlukan informasi antara prosedur (atau fungsi) dan titik dimana ia dipanggil. Penggunaan parameter menawarkan mekanisme pertukaran informasi tsb. Tiap item data transfer antara parameter aktual dan parameter formal yang bersesuaian. Parameter aktual adalah parameter yang disertakan pada waktu pemanggilan, sedangkan parameter formal adalah parameter yang dideklarasikan di dalam bagian header prosedure itu sendiri.ketika dipanggil, parameter aktual menggantikan parameter formal.Tiap-tiap parameter aktual berpasangan dengan parameter formal yang bersesuaian Jenis parameter formal ada tiga yaitu
parameter masukan (input parameter) parameter keluaran (output parameter). parameter masukan/keluaran (input/output parameter)

Parameter Masukan
Parameter masukan adalah parameter yang nilainya berlaku sebagai masukan untuk prosedure. Pada bahasa pemrograman, istilah parameter masukan ini sering dinamakan parameter nilai (value pameter atau parameter by value) Nilai parameter aktual diisikan (assign) ke dalam parameter formal yang bersesuaian .

Procedure SATU (input x,y:integer) { contoh prosedur dengan parameter formal berjenis parameter masukan. K.Awal : nilai x dan y sudah terdefinisikan. K.Akhir : nilai x dan y masing-masing dinaikkan satu, lalu dicetak ke piranti keluaran } DEKLARASI {tidak ada} DESKRIPSI x x+1 y y+1 write (x) write(y)

Algoritma PQR { contoh program utama yang memanggil prosedur SATU } DEKLARASI a,b : real Procedur SATU (input x,y :integer) {contoh prosedur dengan parameter formal berjenis parameter masukan } DESKRIPSI SATU(4,10) read (a,b) SATU (a,b) SATU (a+5,17)

{pemanggilan SATU yang pertama kali} { Pemanggilan SATU yang kedua kalinya} { Pemanggilan SATU yang ketiga kalinya }

Procedure TIGA (input x,y: integer) {menambahkan nilai x dengan 2 dan mengurangi nilai y dengan 2 } { K. Awal : x dan y sudah berisi nilai } {K.Akhir : nilai x bertambah 2, nilai y berkurang 2, lalu dicetak ke piranti keluaran} DEKLARASI {tidak ada} DESKRIPSI a x+3 b y-2

Algoritma FGH {program yang memperlihatkan penggunaan parameter masukan/keluaran} DEKLARASI a,b : integer Procedure TIGA(input x,y : integer) {menambahkan nilai x dengan 3 dan mengurangi nilai y dengan 2} DESKRIPSI : a 15 b 10 Write (nilai a dan b sebelum pemanggilan) Write( a = , a) Write( b =, b) TIGA (a,b) Write (nilai a dan b sesudah pemanggilan) Write( a = , a) Write( b =, b)

Anda mungkin juga menyukai