Join With Me On Twitter

Join With Me On Twitter : @supersahrul

Jumat, 16 Maret 2012

Prosedur & Function dalam Turbo Pascal

I. Judul Praktikum : Prosedur & Function

II. Tujuan Praktikum :
1. Mempelajari prosedur dan function
2. Agar dapat mempermudah dalam membuat program program yang besar.
3. Agar dapat mempermudah memahami setiap program dalam penggunaan prosedur dan fungsi

III. Dasar Teori
Di dalam dunia pemrograman untuk membuat suatu program yang besar, maka program tersebut perlu disusun dari subprogram yang kecil-kecil. Setiap subprogram terkadang dapat berdiri sendiri dari program utama dan tiap subprogram itu disebut sebagai modul program.di dalam pemrograman pascal ada 2 jenis modul yang sering digunakan yaitu prosedur(procedure) dan fungsi(function). Dengan adanya modul dalam suatu program memberikan dua kweuntungan ,pertama untuk menghindari penulisan teks program yang sama secara berulang kali, kita cukup menuliskan modul progrma sekali saja,setelah itu kita dapat mengakses (memanggil) modul program itu lebih dari satu kali, sesuai dengan kebutuhan program itu sendiri,jadi,penggunaan modul program dapat mengurangi panjangnya program.
1. Prosedur prosedur adalah modul program yang mengerjakan aktivitas / tugas secara khusus dan menghasilkan suatu efek tertentu. Dalam prosedur juga kita perlu mendefinisikan variabel yang akan digunakan dalam prosedur tersebut. Variabel pada prosedur ini bersifat lokal,artinya variabel dalam prosedur ini hanya berlaku dalam operasi pada prosedur yang mendeklarasikan variabel tersebut.berikut contoh pendeklarasian suatu prosedur. Bentuk umumnya : Procedure < Nama Procedure > ;
Procedure < Nama Procedure > ( < Daftar Parameter > );
Pendefinisian variabel

A. Variabel lokal Berikut ini adalah sebuah program yang dibuat dimana variabelnya bersifat lokal :
Contoh:
Program variable_lokal;
Uses wincrt;
Var
X,Y:integer;
Begin
Write(‘masukkan bilangan bulat:’);readln(x);
Y:=x*x;
End;
Begin{program utama}
Tanya_hitung;{pemanggilan procedure}
Writeln(kuadratnya adalah :’,y);
End.
Bentuk umumnya :
Procedure < Nama Procedure > ;
Procedure < Nama Procedure > ( < Daftar Parameter > );

Prosedure faktor (a:integer; var b:integer);


a,b:integer;

Variabel lokal Repeat
B:=b+1;
If(a mod b=0)then
Writeln(‘nilai faktor :’,b);
Until a=b;
End;
Dalam prosedur di atas variabel a dan b bersifat lokal. Berikut contoh program utama untuk memanggil prosedur diatas.
Algoritma contoh

Deklarasi
a,b:integer
variabel global
Prosedure faktor (a:integer; var b:integer)

Deskripsi
Readln(a)
Faktor(a,b)
End


Dalam program utama di atas variabel a,b,c dan d perlu deklarasikan kembali pada program utama karena variavel ini hanya berlaku pada prosedur jumlah sehingga tidak dikendali pada program utama. Untuk itu, maka perlu kita deklarasikan kembali sebagai variabel global padac program utama sehingga akan dikenali di setiap baris program baik itu di dalam prosedur maupun program utama. Berikut hasil program utamanya.

Parameter adalah nama – nama peubah yang dideklarasikan pada bagian header procedure. Kebanyakan program memerlukan pertukaran data atau informasi antara Procedure dan titik dimana ia dipanggil. Penggunaan Parameter menawarkan mekanisme pertukaran informasi tersebut. Pada item data ditransfer antara parameter actual dan parameter formal yang bersesuaian. Parameter actual adalah parameter yang disertakan pada waktu pemanggilan procedure, sedangkan parameter formal adalah parameter yang dideklarasikan di dalam bagian header procedure itu sendiri. Ketika procedure dipanggil, parameter actual menggantikan parameter formal. Tiap – tiap parameter actual berpasangan dengan parameter formal yang bersesuaian. Pendeklarasian parameter di dalam procedure bukanlah keharusan dengan kata lain parameter boleh ada atau tidak ada.

Procedure bukan program yang berdiri sendiri, jadi tidak dapat dieksekusi secara langsung. Ini berarti, instruksi – instruksi di dalam procedure baru dapat dilaksanakan hanya bila procedure tersebut diakses. Cara mengakses procedure yaitu dengan memanggil namanya dari program utama. Ketika nama procedure dipanggil, kendali program berpindah secara otomatis ke procedure tersebut. Seluruh instruksi di dalam badan procedure dilaksanakan, maka kendali program berpindah secara otomatis kembali ke instruksi sesudah pemanggilan procedure.
Agar nama Procedure dikenali oleh program utama, maka di dalam program utama harus mendeklarasikan prototype Procedure tersebut. Prototype Procedur hanya berisi bagian header Procedure.

Parameter adalah nama – nama peubah yang dideklarasikan pada bagian header procedure. Kebanyakan program memerlukan pertukaran data atau informasi antara Procedure dan titik dimana ia dipanggil. Penggunaan Parameter menawarkan mekanisme pertukaran informasi tersebut. Pada item data ditransfer antara parameter actual dan parameter formal yang bersesuaian. Parameter actual adalah parameter yang disertakan pada waktu pemanggilan procedure, sedangkan parameter formal adalah parameter yang dideklarasikan di dalam bagian header procedure itu sendiri. Ketika procedure dipanggil, parameter actual menggantikan parameter formal. Tiap – tiap parameter actual berpasangan dengan parameter formal yang bersesuaian. Pendeklarasian parameter di dalam procedure bukanlah keharusan dengan kata lain parameter boleh ada atau tidak ada.
Procedure bukan program yang berdiri sendiri, jadi tidak dapat dieksekusi secara langsung. Ini berarti, instruksi – instruksi di dalam procedure baru dapat dilaksanakan hanya bila procedure tersebut diakses. Cara mengakses procedure yaitu dengan memanggil namanya dari program utama. Ketika nama procedure dipanggil, kendali program berpindah secara otomatis ke procedure tersebut. Seluruh instruksi di dalam badan procedure dilaksanakan, maka kendali program berpindah secara otomatis kembali ke instruksi sesudah pemanggilan procedure. Agar nama Procedure dikenali oleh program utama, maka di dalam program utama harus mendeklarasikan prototype Procedure tersebut. Prototype Procedur hanya berisi bagian header Procedure. Aturan – aturan yang harus diperhatikan dalam korespondensi satu – satu antara parameter actual dan parameter formal adalah :
• Jumlah parameter actual pada pemanggilan procedure harus sama dengan jumlah parameter formal pada deklarasi procedurenya.
• Tiap parameter actual harus bertipe sama dengan tipe parameter formal yang bersesuaian.
• Tiap parameter actual harus diekspresikan dengan cara yang taat asas dengan parameter formal yang bersesuaian,
bergantung pada jenis parameter formal. Ada tiga jenis parameter formal yang disertakan di dalam procedure, yaitu :
1. Parameter masukan adalah parameter yang nilainya berlaku sebagai masukkan untuk procedure
2. Parameter keluaran adalah parameter yang menampung keluaran yang dihasilkan oleh procedure.
3. Parameter masukkan / keluaran adalah parameter yang berfungsi sebagai masukkan sekaligus keluaran bagi procedure tersebut.

B. Fungsi
Fungsi adalah kumpulan program kecil yang dikumpulkan untuk mempermudah pekerjaan pembuatan program karena dapat dipakai berkali – kali tanpa harus menuliskan ulang kodenya lagi. Fungsi digunakan untuk memecah program sehingga mudah dibaca, dimengerti dan diperiksa ulang.
Sama halnya dengan Procedure, function diakses dengan memanggil namanya. Fungsi juga dapat mengandung daftar parameter formal. Parameter pada fungsi yang selalu digunakan hanya parameter masukkan. Parameter Masukkan pada fungsi berarti parameter tersebut merupakan masukkan yang digunakan oleh fungsi tersebut untuk menghasilkan nilai. Bentuk Umumnya :
Function < Nama Function >: < Tipe data > ;
Function < Nama procedure > ( < Daftar parameter > ) : < Tipe data >;
Fungsi diakses dengan cara memanggil namanya dari program utama, diikuti dengan daftar parameter actual. Karena fungsi menghasilkan nilai, maka nilai tersebut dapat diperlakukan dengan dua cara, yaitu :
1. Nilai yang dikembalikan oleh fungsi ditampung di dalam sebuah peubah yang bertipe sama dengan fungsi.
2. Nilai yang dikembalikan oleh fungsi dapat langsung dimanipulasi.


Daftar Pustaka

Kadir, Abdul. 1993. Pemrograman Dasar Turbo Pascal. Yogyakarta : Andi Offset.
Lembaga Pendidikan Yayasan Lingua Prima. 2006. Palembang.
Pranata, Anthony. 2003. Algoritma Pemrograman. Bandung : Ganeca Exact.
Teresa. 1989. Pengenalan komputer. Widyaloka Andi Ofset. Yogyakarta.
Tim Asistensi. 2008. Modul Praktikum Program Komputer I. Inderalaya : UNSRI


IV. ALGORITMA

a) Algoritma Faktorial dengan function
Deklarasi
n,hasil: integer
function fk(n:integer):integer
k, f : integer
Deskripsi
Begin
f 1
for k 1 to n do
f f *k
fk f
Endfor
Begin
Read (n);
Write(‘input bil’)
Hasil (n)
Writeln(‘Faktorial’)
End

b) Algoritma Faktorial dengan procedure
Deklarasi
n,hasil: integer
procedure fk(n:integer):integer
k: integer
Deskripsi
Begin
f 1
for 1 to n do
f f*k
Endfor
Begin
Read (n);
Write(‘input bil’)
fk(n,f)
Writeln(‘hasil faktorial’)
End


VI.Program
program faktorial;
uses wincrt;
var
n,hasil:integer;
function fk(n:integer):integer;
var
f,k:integer;
begin
f:=1;
for k:= 1 to n do
f:=f*k;
fk:=f;
end;
begin
write(‘input bil=’);readln(n);
hasil:=fk(n);
write('faktorial=',hasil);
end.

program faktorial;
uses wincrt;
var
f,n:integer;
procedure fk(n:integer;var f:integer);
var
k:integer;
begin
f:=1;
for k:= 1 to n do
f:=f*k;
end;
begin write('input bilangan');readln(n);
fk(n,f);
writeln('faktorial=', f);
end.



VIII. Pembahasan

Praktikum untuk kali ini yaitu membahas tentang Subprogram, dimana yang akan praktikan bahas kali ini adalah Programmer membuat sebuah program yang berisi subprogram yang dapat memanggil dirinya sendiri. Dengan kata lain, subprogram ini tidak hanya dapat memanggil subprogram lain melainkan juga dapat memanggil dirinya sendiri. Subprogram ini biasa disebut dengan rekursi. Rekursi biasanya banyak dipakai pada persoalan yang dapat dipecahkan secara induktif. Misalnya untuk menghitung factorial. Fungsi yang dapat digunakan untuk memperoleh factorial secara rekursi adalah sebagai berikut :

Program pangkat ;
Uses wincrt;
Var
x,p,m:integer;
Procedure pangkat(x,m:integer;var p:integer);
Var
k:integer;
begin
p:=1;
for k:= i to m do
p:=p*x;
end;
begin
writeln(‘masukkan bil’);read(x);
writeln(‘masukkan pangkat’);read(m);
pangkat (x,p,m);
writeln(‘hasil pangkat’,p);
end.

Pada percobaan diatas kita dapat melihat suatu fungsi memanggil dirinya sendiri.Untuk lebih jelasnya kita lihat penjelasan berikut, Programmer juga bisa membuat sebuah program yang berisi subprogram yang dapat memanggil dirinya sendiri. Dengan kata lain, subprogram tidak hanya bisa memanggil subprogram lain melainkan juga bisa memanggil dirinya sendiri atau biasa disebut “rekursi”. Rekursi banyak dipakai pada persoalan yang dapat dipecahkan secara induktif. Misalnya untuk menghitung factorial

Program pangkat
Uses wincrt;
Var
x,p,m:integer; pp:integer;
function pangkat (x,m:integer):integer;
Var
P,k:integer;
begin
p:=1;
for k:= i to m do
p:=p*x;
pangkat:=p;
end;
begin
writeln(‘masukkan bil’);read(x);
writeln(‘masukkan pangkat’);read(m);
pangkat (x,m);
writeln(‘pangkat=’,pp);
end.
function fakt (n:integer):integer;
begin
if n=0 then
fakt := 1
else
fakt := n * fakt(n-1);
end;

. Pada factorial ini dapat kita perjelas ketika dia memanggil dirinya sendiri untuk memperoleh nilai suatu factorial pada program yang kita bahas ini. Misalnya ketika pada output program ini meminta memasukkan nilai, dan misalkan kita masukkan nilai c = 6, maka berikut ini adalah proses pemanggilan dengan menggunakan function :
c := fak 6
berdasarkan pada rumus factorial yaitu :
fak := c * fak (c-1);
maka
6*fak (6-1) = 6 * fak 5

Dikarenakan fak 5 pada fungsi tidak sama dengan nol, maka pemanggilan fungsi terhadap dirinya sendiri tetap dilakukan
5*fakt (4)
Fak 4 pun demikian, pemanggilan terus dilakukan sampai dengan fak 0 pemanggilan baru berhenti dan nilai fak 0 = 1. Jadi, kita dapatkan hasil akhir c := 720.


IX. Kesimpulan
1. Subprogram merupakan suatu teknik untuk menulis program yang berukuran besar. Tiap bagian program yang kecil-kecil disebut subprogram atau module, yang berguna untuk melakukan suatu tugas tertentu.
2. Subprogram yang kita ketahui dan biasa digunakan adalah Prosedur dan Fungsi.
3. Prosedur adalah kumpulan program kecil yang dikumpulkan untuk mempermudah pekerjaan pembuatan program karena dapat dipakai berkali-kali tanpa harus menuliskan ulang kodenya lagi.
4. Fungsi merupakan elemen dalam pernyataan penugasan atau suatu ungkapan yang digunakan untuk memperoleh sebuah nilai. Fungsi tidak dapat berdiri sebagai sebuah pernyataan.
5. Perbedaan fungsi dan prosedur antara lain dalam hal pengembalian nilai. Fungsi dipastikan mengembalikan nilai yang diinputkan dari program utama karena nama fungsi itu sendiri dijadikan variable. Namun, prosedur memerlukan parameter lagi untuk dapat mengembalikan nilai yang diinputkan tersebut.
6. Cara membuat suatu variable dapat dilakukan dengan cara :
a.Mendeklarasikan variable tersebut di program induk ataupun membuat pendefenisian variable sendiri.
b.Dengan mendefesikan variable tersebut di dalam prosedur .
7. Pendefenisian function pada suatu program ini berarti bahwa nama fungsi yang didefenikan adalah pada baris pertama yang berarti integer. Isi fungsi cukup untuk disingkat yaitu memberikan nilai fungsi tersebut dengan jumlah yang telah ditentukan pada programnya.

Tidak ada komentar:

Poskan Komentar