Minggu, 22 Maret 2015

PROSEDUR DAN FUNGSI

Prosedure adalah bagian dari suatu program yang disusun secara terpisah untuk melakukan suatu tugas khusus/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 sabagian 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.


Prosedur
Manfaat pembuatan prosedur :
a.Modularisasi
Suatu program yang besar dan kompleks dapat dibagi kedalam beberapa prosedure sehingga setiap prosedure merupakan bagian yang mudah dikerjakan.

b.Simplifikasi
Dalam suatu program, sering diperlukan suatu tugas yang harus dikerjakan berulang-ulang dengan nilai-nilai variabel yang berbeda-beda. Agar tidak merepotkan maka tugas ini cukup ditulis sekali saja dalam bentuk prosedur yang kemudian dipanggil berulang-ulang sesuai kebutuhan.
Bentuk Umum Prosedur (Subprogram)

Prosedur nama_prosedur
{spesifikasi dari prosedur, keadaan awal sebelum prosedur dilaksanakan dan juga keadaaan akhir setelah prosedur dilaksanakan}

Deklarasi
{Deklarasi variabel-variabel prosedur}

Deskripsi
{Deskripsi dari tugas-tugas prosedur}




Contoh 1.

Andaikan sebuah program menyediakan fasilitas untuk menghitung luas, keliling, dan diagonal dari sebuah persegi panjang dengan kemungkinan pemilihan melalui suatu menu.

Contoh soal di atas dapat dibagi ke dalam enam prosedur, yaitu prosedur menampilkan menu, prosedur membaca dimensi persegi panjang, menghitung luas, menghitung keliling, menghitung diagonal, dan menampilkan hasil.

Jawab :

Algoritma Empat_persegi_panjang

{Algoritma ini menunjukkan contoh pemakaian prosedur untuk menghitung luas, keliling, dan diagonal dari empat persegi panjang}



Deklarasi

integer pil;

real panjang, lebar, hasil;

{semua prosedur harus dideklarasikan}

prosedur menu;

prosedur baca_dimensi;

prosedur hitung_luas;

prosedur hitung_keliling;

prosedur hitung_diagonal;

prosedur tampil _hasil


Deskripsi

pil ß 0;

repeat

menu; {Memanggil prosedur menu}

write (“Masukkan Pilihan Anda :”);

read (pil);

if (pil < 4)

then baca_dimensi;{Memanggil prosedur baca_dimensi}

endif.

case(pil)

1 : hitung_luas;

2 : hitung_keliling;

3 : hitung_diagonal

4 : write (“Selesai….sampai jumpa”);

default : write(Pilihan Salah, Ulangi !”);

endcase.

if (pil < 4)

then tampil_hasil; {Memanggil prosedur tampil_hasil}

endif.

until (pil=4).

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 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);




Contoh Program menggunakan prosedur.

Program di bawah ini menggunakan prosedur yang terdiri dari prosedur menu, entry, proses dan informasi, dalam bentuk menu pilihan sebagai berikut :

Menu Pilihan

1. Entry Data

2. Informasi

3. Selesai


Jawab :

Algoritma Pembayaran_Listrik

{Algoritma ini menunjukkan contoh pemakaian prosedur menerima nama, golongan serta Jumlah Pemakaian, memproses dan kemudian menampilkan total pembayaran yang dibayarkan Pelanggan}



Deklarasi

integer pil;

real total, Jlhpakai;

string nama, gol;

{semua prosedur harus dideklarasikan}

prosedur menu;

prosedur entry;

prosedur proses;

prosedur info;



Deskripsi

pil ß 0;

repeat

menu; {Memanggil prosedur menu}

write (“Masukkan Pilihan Anda :”);

read (pil);

case(pil)

1 : entry; {Memanggil prosedur Entry}

2 : info; {Memanggil prosedur Info}

3 : write (“Selesai….sampai jumpa”);

default : write(Pilihan Salah, Ulangi !”);

endcase.

until (pil=3).

Prosedur Menu

{menampilkan menu program}

Deklarasi



Deskripsi

write (“Menu Program Pembayaran Listrik”);

write (“1. Entry Data “);

write (“2. Informasi”);

write (“3. Keluar dari program”);

Prosedur entry

Deklarasi



Deskripsi

write(“Masukkan Nama Pelanggan :”);

read(nama);

write(“Masukan Golongan :”);

read(gol);

write(“Masukan Jumlah Pemakaian :”);

read(jlhpakai);

Prosedur info;

Deklarasi



Deskripsi

proses; {Memanggil prosedur proses}

Write(“Tagihan Listrik sdr. “, nama, “adalah = Rp.”, total);


Prosedur proses;

Deklarasi

real bayar, tarif, lebihbyr;

Deskripsi

Case(gol)

‘AA’ : tarif ß 1000;

‘BB’ : tarif ß 2500;

‘CC’ : tarif ß 4000;

‘DD’ : tarif ß 5500;

default :

write(“Golongan Salah !”);

tarif ß 0;

Endcase.

If (jlhpakai > 150)

then lebihbyr ß (jlhpakai – 150) * tarif * 0.15;

bayar ß 150 * tarif;

else lebihbyr ß 0;

bayar ß jlhpakai * tarif;

Endif

Total ß bayar + lebihbyr;
Penggunaan prosedur pada suatu program menyebabkan munculnya dua kategori variabel yaitu :
a.Variabel Lokal
yaitu variabel yang hanya dikenal dan berlaku dalam suatu prosedur saja.

b.Variabel Global
yaitu variabel yang berlaku di semua bagian program dan di semua prosedur.
Semua variabel yang didefinisikan pada deklarasi suatu prosedur adalah variabel lokal, dan variabel-variabel yang didefinisikan pada deklarasi algoritma utama adalah variabel global
 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
Adalah parameter yang disertakan pada saat prosedur dipangggil untuk dilaksanakan, sering disebut argumen.

b.Parameter Formal
Adalah parameter yang dituliskan pada definisi suatu prosedur/fungsi.

Ada 3 jenis parameter formal, yaitu :

a. Parameter Masukan (Input):

Parameter yang menerima nilai dari parameter aktual

b. Parameter Keluaran (Output) :

Parameter yang menyerahkan nilai ke parameter aktual

c. Parameter masukan dan keluaran (Input-Output) :

Parameter yang menerima nilai dari parameter aktual untuk diproses dalam prosedur kemudian diserahkan kembali ke parameter aktual setelah selesai.


Contoh 2:

ALgoritma berikut ini menunjukkan 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_segi_3 (input real a, t; output real ls;);

Deskripsi

write(“Masukkan Alas Segitiga :”);

read(alas);

write(“Masukkan Tinggi Segitiga :”);

read(tinggi);



hit_luas_segi_3 (alas, tinggi, luas);

write(“Luas Segitiga :”, luas);



Prosedur hit_luas-segi_3 (input real a, t; output real ls;)

{prosedur menghitung luas segi_3, menerima a(alas) dan t(tinggi), mengembalikan ls(luas)}

Deklarasi{}

Deskripsi

ls ß a * t/2;

0 komentar:

Posting Komentar