Contoh Subroutine / Procedure

Function dan Procedure

1.        Apa yang kalian ketahui tentang Procedure dan Function pada C++?
Jawab :
Ø  Procedure adalah subroutine yang terdiri dari blok perintah/statement untuk mengolah suatu masalah dengan satu atau lebih  masukan untuk menghasilkan satu atau lebih keluaran.
Ø  Fungtion adalah subroutine yang mengolah suatu nasalah tertentu untuk menghasilkan suatu keluaran tertentu. Keluaran Fungsi harus memiliki tipe data.
2.        Tuliskan bentuk umum dari procedure dan function?
Jawab :
Ø  Bentuk umum procedure :
Procedure Nama_Prosedur(param1:tipedata,param2:tipedata)
Ø  Bentuk umum function :
Function Nama_fungsi(param1:tipedata,param2:tipedata):integer
3.        Buat contoh programnya?
Contoh program menggunakan parameter procedure:
#include<iostream.h>
#include<conio.h>
void gaya(double m, double a); //prototype function
void main() //main function
{
double m,a;
cout<<“Massa : “; cin>>m;
cout<<“percepatan : “; cin>>a;
cout<<“F : “;
gaya(m,a); //parameter aktual
getch();
}
void gaya(double m, double a) //function definition
{
double hasil;
hasil=m*a;
cout<<hasil;
}

Contoh Program Prosedur Sederhana

</div>
<div>Program Penjumlahan_2_bilangan;</div>
<div>uses crt;</div>
<div>var bil1,bil2: integer;</div>
<div></div>
<div><b>Procedure </b><b>jumlahkan</b>;</div>
<div>var hasilJum: integer;</div>
<div>begin</div>
<div>  hasilJum := bil1+bil2;</div>
<div>  writeln('hasil penjumlahan: ',hasilJum);</div>
<div>end;</div>
<div></div>
<div>BEGIN</div>
<div>  clrscr;</div>
<div>  writeln('masukan 2 bilangan');</div>
<div>  write('bilangan pertama: '); readln(bil1);</div>
<div>  write('bilangan kedua  : '); readln(bil2);</div>
<div>  <b>jumlahkan</b>;</div>
END.</div>
<div>

Modifikasi Prosedur dan Program Utama

Prosedur HitungLuasSegitiga kita coba modifikasi dengan meniadakan peubah alas, dan tinggi di dalam bagian deklarasinya, dan menghilangkan pernyataan-pernyataan pembacaan data di dalam prosedur.


 <b><span style="text-decoration: underline;">procedure</span></b> HitungLuasSegitiga
 { Menghitung luas segitiga dengan rumus Luas = (alas x tinggi)/2) }
 { K.Awal : sembarang }
 { K.Akhir : luas segitiga tercetak }

 DEKLARASI
     luas : <span style="text-decoration: underline;">real</span>

 ALGORITMA
     luas <- (alas x tinggi)/2
     <span style="text-decoration: underline;">write</span>(luas)
 

——————————————————————————————–
Selanjutnya, modifikasi program utama Segitiga dengan memasukkan peubah alas, dan tinggi ke dalam bagian deklarasi program utama, dan membaca alas dan tinggi;

 <b>PROGRAM</b> Segitiga
 { Menghitung luas N dan buah segitiga. }

 DEKLARASI
    i, N : <span style="text-decoration: underline;">integer</span>
    alas, tinggi : <span style="text-decoration: underline;">real</span>
    <span style="text-decoration: underline;">procedure</span> HitungLuasSegitiga
    { Menghitung luas segitiga dengan rumus L = (alas x tinggi)/2 }

 ALGORITMA
    <span style="text-decoration: underline;">read</span>(N)   { tentukan banyaknya segitiga }
    <span style="text-decoration: underline;">for</span> i <- 1 <span style="text-decoration: underline;">to</span> N <span style="text-decoration: underline;">do</span>
         <span style="text-decoration: underline;">read</span>(alas,tinggi)
         HitungLuasSegitiga
    <span style="text-decoration: underline;">endfor </span>
 

——————————————————————————————–
Penjelasan :
Peubah alas dan tinggi dideklarasikan di dalam bagian deklarasi program utama. Karena itu, alas dan tinggi adalah peubah global sehingga mereka juga “dikenal” dan dapat digunakan di dalam prosedur HitungLuasSegitiga.

Sebaliknya, peubah luas dideklarasikan di dalam prosedur HitungLuasSegitiga, jadi peubah tersebut adalah peubah lokal dan ia hanya dapat digunakan di dalam lingkup prosedur itu saja. Anda tidak dapat menuliskan pernyataan write(luas) di dalam program utama.

Parameter Keluaran

Prosedur mungkin menghasilkan satu atau lebih keluaran yang akan digunakan oleh program pemanggil. Jika ini kasusnya, maka nilai keluaran tersebut ditampung di dalam parameter keluaran.  Ketika prosedur yang mengandung parameter keluaran dipanggil, maka nama parameter aktual menggantikan (substitute) nama parameter formal yang bersesuaian di dalam prosedur. Selanjutnya, nama parameter aktual akan digunakan selama pelaksanaan prosedur (ini berlawanan dengan parameter masukan, yang dalam hal ini nilai dari parameter aktual yang di-assign ke dalam parameter formal). Karena nama parameter merupakan suatu lokasi di memori, maka bila di dalam prosedur parameter aktual meskipun prosedur selesai dilaksanakan. Jadi, setelah pemanggilan, parameter aktual berisi suatu nilai yang merupakan keluaran dari prosedur tersebut.
Parameter keluaran dideklarasikan di dlaam header prosedur, sebagaimana parameter masukan. Tetapi, parameter keluaran harus dideklarasikan dengan kata kunci output.
</div>
<div></div>
<div><span style="text-decoration: underline;">procedure</span> HitungLuasSegitiga(<span style="text-decoration: underline;">input </span>alas,tinggi : <span style="text-decoration: underline;">real</span>, <span style="text-decoration: underline;">output</span> luas : <span style="text-decoration: underline;">real</span>)</div>
<div>{ Menghitung luas segitiga dengan rumus Luas = (alas x tinggi) /2 }</div>
<div>{ K.Awal : alas dan tinggi sudah terdefinisi sebelumnya }</div>
<div>( K.Akhir : luas berisi luas segitiga }</div>
<div></div>
<div>DEKLARASI</div>
<div>{ tidak ada }</div>
<div></div>
<div>ALGORITMA</div>
<div>   luas <- (alas x tinggi)/2</div>
<div>
——————————————–
</div>
<div>PROGRAM Segitiga</div>
<div>{ Menghitung luas N buah segitiga }</div>
<div></div>
<div>DEKLARASI</div>
<div>i, N : <span style="text-decoration: underline;">integer</span></div>
<div>a, t, L : <span style="text-decoration: underline;">real</span> { alas,tinggi, dan luas segitiga)</div>
<div><span style="text-decoration: underline;">procedure</span> HitungLuasSegitiga(<span style="text-decoration: underline;">input</span> alas, tinggi : <span style="text-decoration: underline;">real</span>, output luas: <span style="text-decoration: underline;">real</span>)</div>
<div>{ Menghitung luas segitiga dengan rumus L= (alas x tinggi)/2 }</div>
<div></div>
<div>ALGORITMA</div>
<div>  <span style="text-decoration: underline;">read</span>(N) { tentukan banyaknya segitiga }</div>
<div>  <span style="text-decoration: underline;">for</span> i <- 1 <span style="text-decoration: underline;">to</span> N <span style="text-decoration: underline;">do</span></div>
<div>       <span style="text-decoration: underline;">read</span>(a,t)</div>
<div>      HitungLuasSegitiga(a,t,L)</div>
<div><span style="text-decoration: underline;">write</span>(L)</div>
<div>endfor</div>
<div>

One response to “Contoh Subroutine / Procedure

  1. Precisely there could be marital without the benefit of absolutely love, you’ll find absolutely love without the benefit of marital. [url=http://ruezee.com/]rueducommerce[/url] rueducommerce

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s