Prosedur adalah bagian dari suatu program yang disusun secara terpisah untuk
melakukan suatu tugas khusus atau fungsi tertentu. Pada dasarnya ada dua macam
bentuk prosedur yaitu Subrutin (subprogram) dan Fungsi.
Subrutin (subprogram) adalah bagian dari program yang dibuat terpisah untuk
melaksanakan sebagian dari tugas yang harus diselesaikan oleh suatu program. Pada
umumnya yang dikenal dengan nama “Prosedur” sebenarnya adalah “Subprogram” .
Fungsi adalah bagian dari program yang dibuat terpisah untuk melaksanakan fungsi
tertentu yang menghasilkan suatu nilai untuk dikembalikan ke program utama.
1. Modularisasi : Suatu program yang besar dan kompleks dapat dibagi ke dalam
beberapa prosedur sehingga setiap prosedur merupakan bagian yang mudah
dikerjakan. Dengan demikian, program besar tersebut menjadi mungkin
diselesaikan.
2. Simplifikasi : Dalam suatu program, sering diperlukan suatu tugas yang harus
dikerjakan berulang-ulang dengan nilai-nilai variabel yang berbeda. Agar tidak
merepotkan maka tugas ini cukup ditulis sekali saja dalam bentuk prosedur yang
kemudian dipanggil berulang-ulang sesuai kebutuhan.
Bentuk Umum Prosedur
Prosedur nama_prosedur
{ spesifikasi dari prosedur, keadaan awal sebelum prosedur dilaksanakan dan juga
keadaan akhir setelah prosedur dilaksanakan }
Deklarasi
{ deklarasi variabel-variabel prosedur }
Deskripsi
{ deskripsi dari tugas-tugas prosedur }
Contoh.
Andaikan sebuah program menyediakan fasilitas untuk menghitung luas dan keliling
lingkaran melalui suatu menu.
Contoh soal diatas dapat dibagi ke dalam tiga prosedur, yaitu prosedur menampilkan
menu, menghitung luas, dan menghitung keliling.
Algoritma
Lingkaran
3 1
4 6
5 Prosedur
Program Utama
Hitung Luas
5 7
7
Prosedur
Hitung Keliling
6
Prosedur hitung_luas
{menghitung luas Lingkaran}
Deklarasi
real luas;
Deskripsi
Luas ← 3.14 * (jari * jari);
Hasil ← luas;
Prosedur hitung_keliling
{menghitung keliling lingkaran}
Deklarasi
real keliling;
Deskripsi
Keliling ← 2 * 3.14 * jari;
Hasil ← keliling;
Latihan
Menu Utama :
1. Konversi dari Kilometer ke Meter
2. Konversi dari Meter ke Kilometer
Program Utama
1. Tampilkan Menu Utama
2. Pilih salah satu menu dan simpan pada variable pilihan
3. Jika pilihan 1, panggil prosedur konversi kilometer ke meter
4. Jika pilihan 2, panggil prosedur konvesri meter ke kilometer
5. Selesai
Contoh.
Andaikan sebuah program menyediakan fasilitas untuk menghitung luas, keliling, dan
diagonal dari sebuah persegi panjang dengan kemungkinan pemilihan melalui suatu
menu.
Contoh soal diatas dapat dibagi ke dalam enam prosedur, yaitu prosedur menampilkan
menu, prosedur membaca dimensi persegi panjang, menghitung luas, menghitung
keliling, menghitung diagonal, dan menampilkan hasil.
Algoritma Persegi
Panjang
Prosedur menu
{menampilkan menu program}
Deklarasi.
Deskripsi
write (“Menu Program Empat Persegi Panjang”);
write (“1.Menghitung Luas”);
write (“2.Menghitung Keliling”);
write (“3.Menghitung Diagonal”);
write (“4.Keluar dari program”);
Prosedur baca_dimensi
{membaca dimensi persegi panjang}
Deklarasi.
Deskripsi
write (“Masukkan Panjang :”);
read (panjang);
write (“Masukkan Lebar :”);
read (lebar);
Prosedur hitung_luas
{menghitung luas empat persegi panjang}
Deklarasi
real luas;
Deskripsi
Luas ← panjang * lebar;
Hasil ← luas;
Prosedur hitung_keliling
{menghitung keliling empat persegi panjang}
Deklarasi
real keliling;
Deskripsi
Keliling ← 2 * (panjang + lebar);
Hasil ← keliling;
Prosedur hitung_diagonal
{menghitung diagonal empat persegi panjang}
Deklarasi
real diagonal;
Deskripsi
Diagonal ← sqrt (panjang ^2 +lebar^2);
Hasil ← diagonal;
Prosedur tampil_hasil
{menampilkan hasil dari program ini}
Deklarasi.
Deskripsi
write (“hasil =”,hasil);
Variabel Lokal dan Variabel Global
Parameter
Ketika suatu prosedur dipanggil maka pada hakikatnya bisa dilakukan pertukaran data
antara program utama dan prosedur. Pertukaran ini dilakukan melalui parameter.
Parameter terbagi atas 2 macam :
a. Parameter Aktual
Parameter yang disertakan pada saat prosedur dipanggil untuk dilaksanakan, sering
disebut argumen.
b. Parameter Formal
Parameter yang dituliskan pada definisi suatu prosedur/fungsi.
Ada 3 jenis parameter formal, yaitu :
Contoh berikut ini menunjukan pemakaian parameter masukan dan parameter keluaran
untuk prosedur menghitung luas segitiga
Algoritma luas_segitiga
{ menghitung luas segitiga dengan menggunakan prosedur yang memanfaatkan
parameter input dan parameter output }
Deklarasi
real Alas, Tinggi, Luas
prosedur hit_luas_segitiga (input real a, t; output real ls);
Deskripsi
write (“Masukkan alas segitiga : “);
read (Alas);
write (“Masukkan tingginya : “);
read (Tinggi);
hit_luas_segitiga (alas, tinggi, luas);
write (“Luas segitiga = “, Luas);
Fungsi pada hakekatnya serupa dengan prosedur dalam pelaksanaannya, tetapi harus
mengembalikan suatu nilai ke program yang menggunakan fungsi. Fungsi hanya bisa
mengembalikan nilai melalui parameter input-output (in-out).
Bentuk umum :
Deklarasi
{variabel lokal}
Deskripsi
{langkah/proses yang dilakukan oleh fungsi}
……….
……….
{pengembalian nilai}
return variable hasil
Contoh 1 :
Program Utama 4
3 1
Fungsi 2
Luas_Segitiga
1. Program Utama menjalankan Fungsi luas_segitiga dan mengirimkan nilai variable A dan T
2. - Variabel alas pada Fungsi Luas_Segitiga menerima nilai dari variable A pada Program Utama.
- Variabel tinggi pada Fungsi Luas_Segitiga menerima nilai dari variable T pada Program Utama.
3. Mengirimkan hasil perhitungan nilai luas_segitiga pada Fungsi luas_segitiga ke variable luas_segitiga pada Program Utama
4. Variabel luas_segitiga pada Program Utama menerima nilai variable luas_segitiga pada Fungsi luas_segitiga dan
Program Utama mencetak hasil luas_tiga.
Contoh 2:
Algoritma Tanggal_Lahir
Deklarasi
integer tanggal, bulan, tahun;
string nama_bulan;
fungsi cari_bulan (input integer bln) → string;
Deskripsi
write (“Tanggal : “); read(tanggal);
write (“Bulan : “); read(bulan);
write (“Tahun : “); read(tahun);
Deklarasi
string nama_bln;
Deskripsi
case (bln)
1 : nama_bln ← “Januari”;
2 : nama_bln ← “Februari”;
3 : nama_bln ← “Maret”;
4 : nama_bln ← “April”;
5 : nama_bln ← “Mei”;
6 : nama_bln ← “Juni”;
7 : nama_bln ← “Juli”;
8 : nama_bln ← “Agustus”;
9 : nama_bln ← “September”;
10 : nama_bln ← “Oktober”;
11 : nama_bln ← “November”;
12 : nama_bln ← “Desember”;
endcase.
return nama_bln;
Latihan