Anda di halaman 1dari 27

ALGORITMA DAN

PEMROGRAMAN I
TIM PRODI TEKNIK INFORMATIKA UNW
PROSEDUR
 PENDEFINISIAN PROSEDUR
 NAMA LOKAl, NAMA GLOBAL, DAN LINGKUP
 PEMANGGILAN PROSEDUR
 PARAMETER
 PARAMETER MASUKAN
 PARAMETER KELUARAN
 PARAMETER MASUKAN/KELUARAN
PENGERTIAN PROSEDUR

Pada dasarnya bahasa C++ tidak mengenal istilah prosedur, C++


hanya mengenal fungsi, prosedur dalam C++ dianggap sebagai
fungsi yang tidak mengembalikan nilai, sehingga dalam
pendeklarasian prosedur cukup dituliskan dengan kata kunci void
dan diikuti dengan nama prosedur.
PENGERTIAN PROSEDUR

Sederetan instruksi algoritmik/modul program yang mengerjakan


tugas/aktivitas yang spesifik dan menghasilkan suatu efek netto
(Liem, 1996 )

Efek Netto diketahui dengan membandingkan keadaan awal dan keadaan


akhir pada pelaksanaan sebuah prosedur.

Mendefinisikan prosedur :
 Menuliskan nama prosedur
 Mendeklarasikan nama-nama konstanta, peubah dan tipe ( jika ada ).
 Menjabarkan rangkaian yang dilakukan
STRUKTUR PROSEDUR

Struktur Prosedur :
Bagian Judul ( header ).
Terdiri atas Nama prosedur dan deklarasi parameter ( jika ada ).
Bagian deklarasi.
Untuk mengumumkan nama-nama.
Bagian deskripsi.
Disebut juga badan prosedur.

Nama prosedur sebaiknya diawali dengan kata kerja karena prosedur berisi
suatu aktivitas,
misalnya : HitungLuas, Tukar, CariMaks, Inisialisasi, AktifkanMenu, dan lain
sebagainya
STRUKTUR PROSEDUR

Procedure NamaProsedur (deklarasi parameter, jika ada)


Spesifikasi prosedur, berisi penjelasan tentang apa yang dilakukan oleh
prosedur ini.
K. Awal : keadaan sebelum prosedur dilaksanakan.
K. Akhir : keadaaan setelah prosedur dilaksanakan. }

Deklarasi
{ semua nama yang dipakai di dalam prosedur dan hanya berlaku lokal di
dalam prosedur didefinisikan di sini }

Algoritma :
{ badan prosedur, berisi urutan instruksi }
STRUKTUR PROSEDUR

Contoh 10.1
Procedure HitungLuasPersegipanjang
{ Menghitung luas persegipanjang dengan rumus Luas = (panjang x lebar) }
{ K.Awal : sembarang }
{ K.Akhir : luas persegipanjang tercetak }

DEKLARASI
Panjang : real
lebar : real
luas : real

ALGORITMA
read (panjang, lebar)
luas  (panjang x lebar)
write (luas)
PEMANGGILAN PROSEDUR

Prosedur bukan program yang berdiri sendiri, instruksi-instruksi dalam


prosedur hanya akan dieksekusi jika prosedur tersebut diakses.
Pemanggilan prosedur hanya dengan menuliskan nama prosedur tersebut.
NamaProsedur

Misalnya untuk memanggil prosedur pada contoh 10.1. cukup dengan


menuliskan LuasSegitiga
NAMA LOKAL, NAMA GLOBAL, LINGKUP

 Nama Lokal : nama-nama (konstanta, peubah, tipe dan lain-lain) yang


dideklarasikan didalam prosedur (termasuk parameter jika ada).
Nama lokal hanya dikenal di dalam prosedur yang bersangkutan
 Nama global : nama-nama (konstanta, peubah, tipe, dan lain-lain) yang
dideklarasikan di dalam program utama.
Nama global dapat digunakan dibagian mana saja dari program, baik di
dalam program utama maupun dalam prosedur.
NAMA LOKAL, NAMA GLOBAL, LINGKUP

Penggunaan nama lokal atau nama global, tergantung kepada penggunaan


nama tersebut.
1. Bila nama peubah digunakan di seluruh bagian program, maka nama
peubah tersebut harus dideklarasikan global.
2. Bila nama peubah hanya digunakan di dalam prosedur saja, maka nama
peubah tersebut dideklarasikan secara lokal, namun apabila
dideklarasikan secara global masih tetap benar,
VARIABEL LOKAL DAN GLOBAL

#include <iostream>
using namespace std;
void LuasPersegi()
{
int panjang,lebar;

cout << "Masukkan panjang: "; cin >> panjang;


cout << "Masukkan lebar: "; cin >> lebar;
cout<<"Luas persegi: " << panjang*lebar;
}
int main()
{
LuasPersegi();
return 0;
}
FUNGSI DENGAN NILAI BALIK FUNGSI TANPA NILAI BALIK
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
int LuasPersegi (int p, int l){
void LuasPersegi()
int luas;
{
luas = p*l;
int panjang,lebar;
return luas;
}
cout << "Masukkan panjang: ";
int main() cin >> panjang;
{ cout << "Masukkan lebar: ";
int a,b; cin >> lebar;
cout << "masukkan panjang: "; cout<<"Luas persegi: " <<
cin >> a; panjang*lebar;
cout << "masukkan lebar: "; }
cin >> b;
int main()
cout << "Luas Persegi: " << {
LuasPersegi(a,b); LuasPersegi();
return 0; return 0;
} }
PARAMETER PROSEDUR

Prosedur tanpa parameter


Memanfaatkan nilai dari nama-nama yang terdefinsi pada kamus global.
Pemakainnya biasanya harus ”hati-hati”, apalagi jika teks program sudah
sangat besar dan implementasinya menjadi banyak file.
Prosedur Berparameter
Dirancang agar sepotong kode yang sama ketika eksekusi dilakukan dapat
dipakai untuk nama parameter yang berbeda-beda.

Nama parameter yang dituliskan pada definisi/spesifikasi prosedur disebut


sebagai parameter formal. Sedangkan parameter yang dituliskan pada
pemanggilan prosedur disebut sebagai parameter aktual.
PARAMETER FORMAL

Parameter yang dideklarasikan di dalam bagian header prosedur itu sendiri.


PARAMETER FORMAL

1. Parameter masukan ( Input parameter ).


Parameter yang nilainya berlaku sebagai masukan untuk prosedur.
Dalam bahasa pemrograman, istilah parameter masukan ini sering
dinamakan parameter nilai (value parameter atau parameter by
value).
2. Parameter keluaran ( Output parameter).
Parameter yang menampung keluaran yang dihasilkan oleh prosedur.
3. Parameter masukan / keluaran ( Input/Output parameter ).
Parameter yang berfungsi sebagai masukan sekaligus keluaran bagi
prosedur tersebut.
PARAMETER MASUKAN
Program dengan Prosedur atau Tanpa Prosedur?
Sangat dianjurkan menulis program yang modular.
Program yang dipecah menjadi beberapa prosedur ( fungsi )
menunjukan teknik pemrograman yang baik dan terstruktur.

Prosedur dengan Parameter atau Tanpa Parameter?


Sangat dianjurkan menuliskan prosedur dengan parameter.
Parameter berfungsi sebagai media komunikasi antara modul
dengan program pemanggil. Selain itu, parameter dapat
mengurangi kebutuhan penggunaan peubah global.

Parameter Masukan atau Parameter Keluaran?


Tergantung pada kasus yang ada.
PARAMETER MASUKAN
Program Persegipanjang
{ Menghitung luas persegipanjang}
......
HitungLuaspersegipanjang (p, l)
.........

Procedure HitungLuasPersegipanjang (input panjang, lebar : real)


{ Menghitung luas persegi panjang dengan rumus Luas = (panjangxlebar)}
......
luas  (panjang x lebar)
........

Nama parameter aktual tidak harus sama dengan nama parameter formal
asalkan tipenya sama
PARAMETER KELUARAN
Program Segitiga
{ Menghitung luas N buah segitiga }
......
HitungLuasSegitiga (a, t, L)
.........

Procedure HitungLuasSegitiga (input alas, tinggi : real, ouput luas : real)


{ Menghitung luas segitiga dengan rumus Luas = (alas x tinggi/2 }
......
luas  (alas * tinggi)/2
........

parameter aktual harus peubah, tidak boleh berupa konstanta atau ekspresi.
NAMA LOKAL, NAMA GLOBAL, LINGKUP
Contoh 10.1
Program Segitiga
{ Menghitung luas N buah segitiga }

DEKLARASI
i, N : integer
alas,tinggi : real
procedure HitungLuasSegitiga
{ Menghitung luas segitiga dengan rumus Luas = (alas x tinggi/2 }

ALGORITMA
read(N) { tentukan banyaknya segitiga }
for i  1 to N do
read (alas, tinggi)
HitungLuasSegitiga
endfor
PARAMETER KELUARAN
Contoh 10.5
Procedure HitungLuasSegitiga (input alas, tinggi : real, Output luas : real)
{ Menghitung luas segitiga dengan rumus Luas = (alas x tinggi/2 }
{ K.Awal : alas dan tinggi sudah terdefinisi nilainya }
{ K.Akhir : luas segitiga tercetak }

DEKLARASI
luas : real

ALGORITMA
luas  (alas * tinggi)/2
write (luas)
PARAMETER MASUKAN/KELUARAN
Contoh 10.7
Procedure TambahEmpat (input /Output x, y : integer)
{ menambahkan nilai x dan y masing-masing dengan 4 }
{ K.Awal : x dan y berisi nilai }
{ K.Akhir : nilai x dan y bertambah masing-masing 4, lalu dicetak }

DEKLARASI
{ tidak ada }

ALGORITMA
xx+4
y  y + 4;
write ( ’nilai x dan y diakhir prosedur Empat :’)
write ( ’x = ’, x )
write (’ y = ’ y )
PARAMETER MASUKAN
Contoh 10.3
Procedure HitungLuasSegitiga (input alas, tinggi : real)
{ Menghitung luas segitiga dengan rumus Luas = (alas x tinggi/2 }
{ K.Awal : alas dan tinggi sudah terdefinisi nilainya }
{ K.Akhir : luas segitiga tercetak }

DEKLARASI
luas : real

ALGORITMA
luas  (alas * tinggi)/2
write (luas)
PARAMETER MASUKAN
Contoh 10.4
Program Segitiga
{ Menghitung luas N buah segitiga }

DEKLARASI
i, N : integer
alas,tinggi : real
procedure HitungLuasSegitiga (input alas, tinggi : real)
{ Menghitung luas segitiga dengan rumus Luas = (alas x tinggi/2 }

ALGORITMA
read(N) { tentukan banyaknya segitiga }
for i  1 to N do
read (alas, tinggi)
HitungLuasSegitiga
endfor
PARAMETER KELUARAN
Contoh 10.6
Program Segitiga
{ Menghitung luas N buah segitiga }

DEKLARASI
i, N : integer
a,t, L : real {alas, tinggi, dan luas segitiga}
procedure HitungLuasSegitiga (input alas, tinggi : real, Output luas : real)
{ Menghitung luas segitiga dengan rumus Luas = (alas x tinggi/2 }

ALGORITMA
read(N) { tentukan banyaknya segitiga }
for i  1 to N do
read (alas, tinggi)
HitungLuasSegitiga
endfor
PARAMETER MASUKAN/KELUARAN
Contoh 10.8
Program XYZ
{ Program yang memperlihatkan efek penggunaan parameter masukan}

DEKLARASI
a, b : integer
procedure TambahEmpat (input /Output x, y : integer)

ALGORITMA
a  15
b  10
write (’nilai a dan b sebelum pemanggilan prosedur TambahEmpat : ’)
write (’ a = ’, a)
write (’ b = ’, b)
TambahEmpat(a,b)
write (’nilai a dan b sesudah pemanggilan prosedur TambahEmpat : ’)
write (’ a = ’, a)
write (’ b = ’, b)
CATATAN
Program dengan Prosedur atau tanpa prosedur
Sangat dianjurkan menulis program yang modular.
Program yang dipecah menjadi beberapa prosedur (atau fungsi) menunjukkan teknik
pemrograman yang baik dan terstruktur.
Prosedur dengan Parameter atau tanpa Parameter
Sangat dianjurkan menulis prosedur dengan parameter.
Parameter berfungsi sebagai media komunikasi antar modul dengan program pemanggil, selain
itu parameter dapat mengurangi kebutuhan penggunaan peubah global.
Parameter Masukan atau Parameter Keluaran
Tergantung pada masalahnya.
Bila prosedur menghasilkan keluaran yang digunakan oleh program pemanggil gunakan
parameter keluaran
Bila prosedur tidak menghasilkan keluaran atau mengasilkan keluaran yang hanya digunakan
dialam prosedur gunakan parameter masukan
Bila prosedur menerima masukan sekaligus keluaran pada parameter yang sama gunakan
parameter masukan/keluaran

Anda mungkin juga menyukai