Anda di halaman 1dari 25

TEL 2112

Dasar Komputer & Pemograman


Prosedur
Abdillah, S.Si, MIT
Email: abdill01@gmail.com
Website: http://abdill01.wordpress.com

Tujuan
Mahasiswa mampu memecah sebuah
program besar menjadi sejumlah prosedur.

Definisi
Prosedur adalah modul program yang mengerjakan
tugas atau aktivitas yang spesifik dan
menghasilkan suatu efek netto yang diketahui
dengan membandingkan keadaan awal dan
keadaan akhir pada pelaksanaan sebuah prosedur.
Oleh karena itu pada setiap prosedur perlu
didefinisikan keadaan awal (K.Awal) sebelum
rangkaian instruksi di dalam prosedur dilaksanakan
dan keadaan akhir (K. Akhir) yang diharapkan
setelahnya.

Notasi Algoritmik
procedure Nama_Prosedur (parameter)
{ Berisi penjelasan apa yang dilakukan prosedur.
K. Awal : Keadaan sebelum prosedur dilakukan
K. Akhir : Keadaan sesudah prosedur dilakukan }
DEKLARASI
{ Semua nama yang dipakai di dalam prosedur }
ALGORITMA
{ Badan prosedur, berisi urutan instruksi }

Algoritma Program Segitiga


PROGRAM Segitiga
{ Menghitung luas N buah segitiga }
DEKLARASI
i,N : integer
procedure Hitung_Luas()
ALGORITMA:
read (N) { tentukan banyaknya segitiga }
for i 1 to N do
Hitung_Luas(a,t)
endfor

Algoritma Prosedur Hitung_Luas


procedure Hitung_Luas()
Menghitung luas segitiga = (alasxtinggi)/2}
{K. Awal : sembarang}
{K. Akhir : luas segitiga tercetak}
DEKLARASI
alas,tinggi,luas : real
ALGORITMA:
read (alas, tinggi)

luas
(alas*tinggi)/2
write (luas)

Listing Program Hitung_Luas


/* program menghitung luas segitiga */
#include <stdio.h>
void HitungLuasSegitiga();
void main()
{
int i, N;
printf("Masukkan banyaknya segitiga = ");
scanf("%d",&N);
for (i=1; i<=N; i++)
{
HitungLuasSegitiga();
}
}

Listing Program Hitung_Luas


void HitungLuasSegitiga()
{
float alas, tinggi, luas;
luas = (alas*tinggi)/2;
printf("Masukkan alas segitiga = ");
scanf("%d",&alas);
printf("Masukkan tinggi segitiga = ");
scanf("%d",&tinggi);
printf("Luas segitiga adalah = %f",luas);
}

Parameter
Parameter yang disertakan pada waktu
pemanggilan subprogram disebut parameter
aktual.
Parameter yang disertakan di dalam bagian judul
disebut parameter formal.
Ketika subprogram dipanggil, kendali program
berpindah secara otomatis ke subprogram tsb.
Setelah semua instruksi di dalam subprogram
dilaksanakan, kendali program berpindah secara
otomatis kembali ke instruksi sesudah
pemanggilan subprogram.

Parameter Formal
Berdasarkan maksud penggunaannya, ada tiga
jenis parameter formal yang disertakan dalam
prosedur
a. Parameter masukan
b. Parameter keluaran
c. Parameter masukan/keluaran

A. Parameter Masukan

Pada parameter masukan, nilai parameter aktual


ditugaskan ke dalam parameter formal.
Perubahan nilai parameter di dalam badan
prosedur tidak mengubah nilai parameter aktual.
Karena yang penting adalah nilainya, maka nama
parameter aktual boleh berbeda dari nama
parameter formal yang bersesuaian.

Algoritma Program Segitiga


PROGRAM Segitiga
{ Menghitung luas N buah segitiga }
DEKLARASI
i,N : integer
a,t : real
procedure Hitung_Luas(input alas, tinggi : real)
ALGORITMA:
read (N) { tentukan banyaknya segitiga }
for i 1 to N do
read (a, t)
Hitung_Luas(a,t)
endfor

Algoritma Prosedur Hitung_Luas


procedure Hitung_Luas(input alas, tinggi : real)
Menghitung luas segitiga = (alasxtinggi)/2}
{K. Awal : nilai alas dan tinggi sudah diketahui}
{K. Akhir : luas segitiga tercetak}
DEKLARASI
luas : real
ALGORITMA:

luas
(alas*tinggi)/2
write (luas)

Listing Program Hitung_Luas


/* program menghitung luas segitiga */
#include <stdio.h>
void HitungLuasSegitiga(float alas, float tinggi);
void main()
{
int i, N;
float a, t;
printf("Masukkan banyaknya segitiga = ");
scanf("%d",&N);
for (i=1; i<=N; i++)
{
printf("Masukkan alas segitiga = "); scanf("%d",&a);
printf("Masukkan tinggi segitiga = ");
scanf("%d",&t);
HitungLuasSegitiga(a, t);
}
}

Listing Program Hitung_Luas


void HitungLuasSegitiga()
{
float alas, tinggi, luas;
luas = (alas*tinggi)/2;
printf("Masukkan alas segitiga = ");
scanf("%d",&alas);
printf("Masukkan tinggi segitiga = ");
scanf("%d",&tinggi);
printf("Luas segitiga adalah = %f",luas);
}

Penjelasan

Nama parameter aktual tidak harus sama


dengan nama parameter formal
Perhatikan bahwa prosedur Hitung_Luas
dipanggil dengan menyertakan nilai alas dan
tinggi di dalam peubah a dan t
Ketika prosedur Hitung_Luas dipanggil, maka
nilai parameter aktual a dan t diisikan ke dalam
parameter formal alas dan tinggi
Karena yang penting adalah nilainya, maka
parameter aktual boleh berupa ekspresi atau
konstanta. Misalnya Hitung_Luas(a*0.2, t*0.1)
atau Hitung_Luas(12.0,6.0) adalah benar.

Penjelasan

Kata kunci input pada parameter formal


menyatakan bahwa alas dan tinggi adalah
parameter masukan.
Keadaan awal prosedur adalah kondisi dimana
alas dan tinggi sudah berisi nilai sebelum
pelaksanaan prosedur.
Keadaan akhir prosedur adalah kondisi dimana
luas segitiga tercetak.
Program utama yang memanggil prosedur ini
harus mendeklarasikannya dan memanggilnya
dengan parameter aktual yang bersesuaian.

B. Parameter Keluaran

Pada parameter keluaran, nilai parameter aktual


ditugaskan ke dalam parameter formal.
Perubahan nilai parameter di dalam badan
prosedur tidak mengubah nilai parameter aktual.
Karena yang penting adalah nilainya, maka nama
parameter aktual boleh berbeda dari nama
parameter formal yang bersesuaian.

Algoritma Program Segitiga


PROGRAM Segitiga
{ Menghitung luas N buah segitiga }
DEKLARASI
i,N : integer
a,t,L : real
procedure Hitung_Luas(input alas, tinggi : real)
output luas : real)
ALGORITMA:
read (N) { tentukan banyaknya segitiga }
for i 1 to N do
read (a, t)
Hitung_Luas(a,t,L)
write(L)
endfor

Algoritma Prosedur Hitung_Luas


procedure Hitung_Luas(input alas, tinggi : real,
output luas : real)
{Menghitung luas segitiga = (alasxtinggi)/2}
{K. Awal : nilai alas dan tinggi sudah diketahui}
{K. Akhir : luas berisi luas segitiga}
DEKLARASI
{tidak ada}
ALGORITMA:
luas

(alas*tinggi)/2

Penjelasan

Kata kunci output pada parameter menyatakan


bahwa luas adalah parameter keluaran.
Jika kita ingin luas segitiga dicetak di dalam
program pemanggil, maka kita harus
menyatakan luas sebagai parameter keluaran.
Keadaan akhir prosedur adalah kondisi dimana
luas segitiga selesai dihitung.
Program utama yang memanggil prosedur ini
harus mendeklarasikannya dan memanggilnya
dengan parameter aktual yang bersesuaian.

Penjelasan

Nama parameter aktual tidak harus sama


dengan nama parameter formal
Ketika prosedur Hitung_Luas dipanggil, maka
nilai parameter aktual a dan t diisikan ke dalam
parameter formal alas dan tinggi, sedangkan
nama parameter aktual L menggantikan luas
Pada jenis parameter keluaran ini, parameter
aktual harus berupa peubah, tidak boleh
konstanta atau ekspresi.

Listing Program Hitung_Luas


#include<stdio.h>
void HitungLuas(float alas, float tinggi, float *luas);
void main()
{
int i, N;
float a, t, L;
printf("Masukkan banyaknya segitiga = "); scanf("%d",&N);
for (i=1; i<=N; i++)
{
printf("Masukkan alas segitiga = "); scanf("%f",&a);
printf("Masukkan tinggi segitiga = "); scanf("%f",&t);
HitungLuas(a, t, &L);
printf("Luas segitiga adalah = %.2f \n", L);
}
}
void HitungLuas(float alas, float tinggi, float *luas)
{
*luas = (alas*tinggi)*0.5;
}

C. Parameter Masukan/Keluaran
Pada parameter masukan/keluaran dapat
mengakomodasi masukan dari dan keluaran ke
blok program pemanggil.
Perubahan nilai parameter di dalam badan
prosedur mengubah nilai parameter aktual.
Parameter masukan/keluaran dideklarasikan di
dalam header prosedur denga kata kunci
input/output.
Pada jenis parameter masukan/keluaran ini,
parameter aktual harus berupa peubah, tidak
boleh konstanta atau ekspresi.

Algoritma Prosedur Tukar


procedure Tukar(input/output A,B : integer)
{Mempertukarkan nilai A dan B}
{K. Awal : nilai A dan B sudah diketahui}
{K. Akhir : A berisi nilai B lama dan B berisi
nilai A yang lama}
DEKLARASI
temp : integer
ALGORITMA:

temp A
A B
B temp

Anda mungkin juga menyukai