Anda di halaman 1dari 31

ALGORITMA DAN

PEMROGRAMAN I
TIM PRODI TEKNIK INFORMATIKA UNW
PROSEDUR
 PENDEFINISIAN PROSEDUR
 NAMA LOKAl, NAMA GLOBAL
 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 }
CONTOH

Menghitung Luas Segitiga berdasarkan rumus = (alas x tinggi/2)


Dengan ketentuan hasil program adalah menghitung N buah segitiga
STRUKTUR PROSEDUR

Procedure HitungSegitiga (input alas,tinggi : real)


{ Menghitung luas persegipanjang dengan rumus Luas = (alasx tinggi)/2 }
{ K.Awal : alas dan tinggi sudah terdefinisi nilainya }
{ K.Akhir : luas segitga tercetak }

DEKLARASI
luas : real

ALGORITMA
read (alas, tinggi)
luas  (alas x tinggi)/2
write (luas)
PROGRAM UTAMA

PROGRAM Segitiga
{ Menghitung luas N buah segitiga}

DEKLARASI
i,N : integer
Procedure HitungSegitiga
{ Menghitung luas persegipanjang dengan rumus Luas = (alasx tinggi)/2 }

ALGORITMA
read (N)
for i 1 to N do
HitungLuasSegitiga
endfor
#include <iostream>
using namespace std;

void HitungLuasSegitiga(float a, float t);


main() {
int i, N;
float a, t;
cout << "banyaknya segitiga? ";
cin >> N;
for(i=1;i<=N;i++)
{
cout << "\nPanjang alas segitiga? ";
cin >> a;
cout << "Tinggi segitiga? ";
cin >> t;
HitungLuasSegitiga(a,t);
}
}
void HitungLuasSegitiga(float alas, float tinggi) {
float luas;
luas = ( alas * tinggi )/2.0;
cout << "Luas= " << luas << endl;
}
CONTOH

Menentukan suatu bilangan apakah termasuk bilangan genap atau bilangan ganjil?
Buat prosedur dan flowchartnya
PROCEDURE
Procedure GenapGanjil (input n : real)
{ menentukan bilangan n bila dibagi 2 = 0 adalah bilangan genap jika tidak bilangan ganjil}
{ K.Awal : n sudah terdefinisi nilainya }
{ K.Akhir : n tercetak bilangan genap atau ganjil}
DEKLARASI

ALGORITMA
n mod 2 = 0
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

int main()
{
LuasSegitiga(); // Pemanggilan Prosedur
return 0;
}
NAMA LOKAL, NAMA GLOBAL

 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

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,
FUNGSI DENGAN NILAI BALIK FUNGSI TANPA NILAI BALIK
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
int LuasSegitiga (int alas, int
void LuasSegitiga()
tinggi){
{
int luas;
int alas,tinggi;
luas = alas*tinggi/2;
return luas;
cout << "Masukkan alas : "; cin
}
>> alas;
int main(){
cout << "Masukkan tinggi : ";
int a,t;
cin >> tinggi;
cout<<"masukan alas segitiga
cout<<"Luas Segitiga : " <<
: ";
alas*tinggi/2;
cin>>a;
}
cout<<"masukan tinggi
segitiga : ";
int main()
cin>>t;
{
cout<<"luas segitiga adalah :
LuasSegitiga();
"<<LuasSegitiga(a,t);
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.

double hasil(int A, int B)


{
return (A * B);
}
PARAMETER AKTUAL

Parameter yang disertakan pada waktu pemanggilan prosedur.

void main()
{
……………
…………..
z = hasil(x,y);
…………..
}
PARAMETER FORMAL & AKTUAL

#include<iostream>
using namespace std;

int Tambah(int a, int b) {


int c;
c = a + b; PARAMETER FORMAL
return c;
}
main() {
int a = 3;
PARAMETER AKTUAL
int d;
d = Tambah(a, 4);
cout << "d = " << d << endl;
}
PARAMETER FORMAL

Berdasarkan maksud penggunaannya, terdapat tiga jenis parameter formal


yaitu :
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
ALGORITMA :
PROSEDUR

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
ALGORITMA :
PROGRAM UTAMA

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 (alas,tinggi)
endfor
PARAMETER MASUKAN
#include <iostream>
using namespace std;

void HitungLuasSegitiga(float a, float t);


main() {
int i, N;
float a, t;
cout << "banyaknya segitiga? ";
cin >> N;
for(i=1;i<=N;i++)
{
cout << "\nPanjang alas segitiga? ";
cin >> a;
cout << "Tinggi segitiga? ";
cin >> t;
HitungLuasSegitiga(a,t);
}
}
void HitungLuasSegitiga(float alas, float tinggi) {
float luas;
luas = ( alas * tinggi )/2.0;
cout << "Luas= " << luas << endl;
}
PARAMETER KELUARAN
ALGORITMA :
PROSEDUR
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 KELUARAN
ALGORITMA :
PROGRAM UTAMA
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 KELUARAN
#include<iostream>
using namespace std;

void HitungLuasSegitiga(float a, float t, float *L);


main() {
int i, N;
float a, t;
float L;
cout << "banyaknya segitiga? ";
cin>> N;
for(i=1;i<=N;i++)
{
cout << "\nPanjang alas segitiga? ";
cin >> a;
cout << "Tinggi segitiga? ";
cin >> t;
HitungLuasSegitiga(a,t, &L);
cout << "Luas segitiga = " << L <<endl;
}
}
void HitungLuasSegitiga(float alas, float tinggi, float *luas)
{
*luas = ( alas * tinggi )/2.0;
}
PARAMETER MASUKAN/KELUARAN
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/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)
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.
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
LATIHAN SOAL

Buatlah prosedur dan flowchart untuk menentukan bilangan genap dan


ganjil dari nilai 1 s.d 20

Anda mungkin juga menyukai