makalah tentang prosedure dan fungsi_lantera billahi_1101092010_mi1b
TRANSCRIPT
KATA PENGANTAR
Puji syukur saya ucapkan atas kehadirat Allah swt, karena rahmat dan karunianya saya
di beri kesempatan untuk menyelesaikan makalah ini.
Tidak lupa saya ucapkan terima kasih kepada dosen pembimbing, keluarga, teman-
teman yang telah memberikan saya dukungan dalam penyelesaian makalah ini.
Penulis menyadari bahwa dalam penulisan makalah ini masih banyak kekurangan.
Oleh sebab itu saya sebagai penulis sangat mengharapkan kririk dan saran yang membangun.
Semoga makalah ini bisa bermanfaat bagi para pembacanya. Amin.
DAFTAR ISI
Kata Pengantar i
Daftar Isi ii
Pendahuluan 1
Pembahasan
penulisan Algoritma dengan kode semu 2
Deklarasi konstanta 3
Deklarasi Tipe 4
Deklarasi Variabel 4
Deklarasi fungsi 5
Prosedur sederhana 6
Prosedur yang menerima masukan 8
Contoh 9
Perbedaan procedure dan Fungsi 13
Penutup 14
PENDAHULUAN
Prosedure dan function merupakan bentuk subprogram dalam pascal, yaitusekelompok pernyataan
bebas yang bisa menjadi bagian dari program/subprogram.Dengan menggunakan procedure dan function,
penulisan program dan modifikasi menjadi lebih mudah dilaksakan.
Penggunaan prosedur dan fungsi untuk memecahkan program yang kompleks menjadi
lebih sederhana, menjadi sub problem yang secara logika terpisah. Dengan menggunakan
procedure dan fungsi, penulisan program dan modifikasi menjadi mudah di laksanakan.
Berikut akan di bahas lebih lanjut penggunaan prosedur dan fungsi.
1
PEMBAHASAN
I. Penulisan Algoritma dengan Kode Semu (Pseudo-Code)
Procedure adalah subprogram yang dapat dipanggil di dalam program (atau subprogram
lain).
function luas_lingkaran(r)
{Algoritma yang menghasilkan luas suatu lingkaran apabila diberikan jari-jarinya r}
l pi*r*r
return l
procedure tukar_nilai(a, b)
{Algoritma yang mempertukarkan isi a dan isi b}
c a
a b
b c
Algoritma yang ditulis dengan cara seperti di atas sering disebut dengan kode semu
(pseudo-code). Kode semu pun tidak memiliki bentuk yang baku, masing-masing orang bisa
menuliskan kode semu dalam bentuk yang berbeda. Dari contoh di atas tampak bahwa suatu
algoritma dapat dinyatakan sebagai sebuah fungsi (function) atau prosedur (procedure).
Perbedaan fungsi dan prosedur adalah fungsi menghasilkan suatu nilai kembali sedangkan
prosedur tidak. Fungsi maupun prosedur seringkali mempunyai parameter yang dapat
digunakan untuk melewatkan suatu nilai ke/dari fungsi/prosedur. Pada kedua contoh di atas r,
a, maupun b merupakan contoh parameter. Pada contoh di atas fungsi luas_lingkaran akan
menghasilkan nilai kembali 25 jika nilai parameter masukan r adalah 5. Sedangkan prosedur
tukar_nilai sama sekali tidak menghasilkan nilai kembali, tetapi prosedur tersebut akan
mempertukarkan nilai dari variabel-variabel yang dijadikan parameternya. Misalnya variabel
x pada awalnya
bernilai 10 dan variabel y bernilai 7, maka setelah dilakukan prosedur tukar_nilai(x, y) maka
variabel x menjadi bernilai 7 dan variabel y menjadi bernilai 10. Suatu fungsi ditandai dengan
adanya kata return.
2
Pada contoh di atas terdapat kata const, kata const merupakan salah satu contoh dari
apa yang dinamakan deklarasi. Deklarasi adalah bagian dari algoritma yang mendefinisikan
nama-nama yang akan digunakan pada algoritma. Deklarasi ada bermacam-macam,
antara lain :
1. Deklarasi konstanta
Konstanta memiliki nilai yang tetap, tidak dapat diubah di bagian manapun dari algoritma.
Contoh deklarasi konstanta :
{deklarasi konstanta}
const pi = 3.1415926535897932384626433832795
function luas_lingkaran(r)
{Algoritma yang menghasilkan luas suatu lingkaran apabila diberikan jari-jarinya r}
l pi*r*r
return l
{deklarasi konstanta}
const e = 2.7182818284590452353602874713527
…
Catatan :
Bagian yang berada di dalam kurung kurawa {} disebut dengan komentar. Fungsi komentar
adalah untuk memberikan penjelasan pada algoritma. Komentar bukan termasuk dari
langkah-langkah algoritma yang akan dieksekusi. Bahkan komentar dapat dibuang begitu
saja tanpa mempengaruhi kebenaran algoritma.
2. Deklarasi tipe
Tipe yang dimaksud di sini adalah tipe-tipe data yang digunakan di dalam algoritma. Ada dua
jenis tipe data yaitu tipe dasar dan tipe bentukan. Tipe dasar adalah tipe yang tidak perlu
dideklarasikan lagi, biasanya sudah dikenal secara umum dan didukung langsung oleh
perangkat keras
3
komputer. Tipe bentukan adalah tipe yang perlu dideklarasikan, biasanya belum dikenal
secara umum dan tidak mendapat dukungan langsung dari perangkat keras. Contoh tipe dasar
antara lain integer, real, char, dan boolean. Contoh tipe bentukan adalah record, enumerasi,
array, dan lain lain. Berikut ini adalah contoh deklarasi suatu tipe bentukan :
{deklarasi tipe}
type kompleks = record
nyata: real
imajiner: real
function norma_kompleks(c: kompleks)
{Algoritma yang menghasilkan norma dari suatu bilangan kompleks}
n c.nyata*c.nyata + c.imajiner*c.imajiner
return n
type person = record
name: string
age: integer
male: boolean
type tab = array [1..50] of integers
type gender = enum {male, female}
type matriks = array [1..20, 1..20] of integers
type pointerperson = person
…
Kadang-kadang suatu tipe dideklarasikan hanya sebagai nama alias dari tipe yang lain :
type bilanganbulat = integers
type jeniskelamin = gender
…
Pembahasan mengenai berbagai jenis tipe terdapat pada bagian selanjutnya.
4
3. Deklarasi variabel
Variabel adalah tempat yang digunakan untuk menampung suatu nilai. Setiap variable
memiliki tipe tertentu. Berbeda dengan konstanta, nilai dari variabel dapat diubah di berbagai
bagian dari algoritma. Contoh deklarasi variabel adalah sebagai berikut :
type kompleks = record
nyata: real
imajiner: real
{deklarasi variabel}
a: kompleks
b: kompleks
procedure tukar
{Algoritma untuk menukar isi a dan b}
temp: real {deklarasi variabel}
temp a.nyata
a.nyata b.nyata
b.nyata temp
temp a.imajiner
a.imajiner b.imajiner
b.imajiner temp
const n = 250
{deklarasi variabel}
i: integer
f: real
c: char
b: booelan
s: string
r: array [1..30] of integers
v: array [1..n] of integers
array u[1..100]
array w[1..n]
5
t: tab
l: gender
m: matriks
…
Deklarasi variabel dapat dilakukan di sebarang tempat. Variabel yang dideklarasikan
di dalam suatu fungsi/prosedur disebut sebagai variabel lokal sedangkan variabel yang
dideklarasikan tidak di dalam fungsi/prosedur disebut variabel global. Variabel local dikenali
hanya di dalam fungsi yang bersangkutan dan tidak akan dikenali di luar fungsi tersebut.
Varibel global dapat dikenali di sebarang tempat dari algoritma. Dalam banyak kasus,
deklarasi variabel tidak selalu harus dilakukan. Kadang-kadang notasi algoritmik menjadi
lebih sederhana dan lebih jelas apabila variabel-variabel yang ada pada algoritma tidak
dideklarasikan terlebih dahulu.
4. Deklarasi fungsi/prosedur
contoh di atas, setiap algoritma mengandung sebuah fungsi/prosedur yang dapat
disebut sebagai fungsi/prosedur utama. Kadang-kadang fungsi/prosedur utama memanggil
sebuah fungsi/prosedur yang lain. Maka fungsi/prosedur yang dipanggil tersebut juga harus
dideklarasikan di dalam algoritma. Contoh algoritma yang memiliki
lebih dari satu fungsi :
const pi = 3.1415926535897932384626433832795
function luas_lingkaran(r)
l pi*r*r
return l
function isi_silinder(r, t)
{Algoritma yang menghasilkan volume silinder apabila diberikan jari-jari alas r dan tinggi t}
a luas_lingkaran(r) v a*t
return v
6
Berikut ini adalah contoh algoritma yang cukup rumit penulisannya :
const N = 100
type tabs = array [1..N] of integers
T: tabs
procedure isi_data
for i 1 to N do
T[i] random(10*N)
function isi_dan_cari_minimum
{Algoritma untuk mengisi elemen-elemen T secara random kemudian mencari nilai minimum
dari elemen-elemen T tersebut}
isi_data min T[1]
for i 2 to N do
if T[i] < min then
min T[i]
return min
Prosedur Sederhana
Prosedur sederhana adalah sebuah subprogram yang tidak mempunyai parameter
masukan maupun parameter keluaran.
Berikut ini adalah skema prosedure sederhana:
procedure A; { nama prosedur adalah A }
var varlok1, varlok2, … : tipevar;
begin
{ statement }
end;
Pada skema di atas, terlihat bahwa dalam prosedur dapat digunakan variable yang
dideklarasikan juga dalam prosedur tersebut, variable-variabel ini disebut variable local.
7
Contoh program
Program Perhitungan_2_bil;
uses crt;
var bil1,bil2: integer;
Procedure jumlahkan;
var hasilJum: integer;
begin
hasilJum := bil1+bil2;
writeln('hasil penjumlahan: ',hasilJum);
end;
BEGIN
clrscr;
writeln('masukan 2 bilangan');
write('bilangan pertama: '); readln(bil1);
write('bilangan kedua : '); readln(bil2);
jumlahkan;
END.
Keluaran program
masukan 2 bilangan
bilangan pertama: 5
bilangan kedua : 7
hasil penjumlahan: 12
Penjelasan program
Bil1, bil2 adalah variable global, sedangkan hasilJum adalah variable local untuk prosedur
jumlahkan
8
Prosedur yang menerima masukan
Sebuah prosedur dapat menerima masukan yang digunkan dalam proses sesuai
tugasnya. Prosedur semacam ini dikatakan prosedur yang mempunyai parameter masukan.
Berikut ini adalah skema prosedure yang menerima masukan:
procedure B(param1, param2, … : tipeparam);
var varlok1, varlok2, … : tipevar;
begin
{ statement }
end;
Contoh program
Program Perhitungan_4_bil;
uses crt;
var bil1,bil2,bil3,bil4: integer;
Procedure jumlahkan(angka1,angka2: integer);
var hasilJum: integer;
begin
hasilJum := angka1+angka2;
writeln('hasil penjumlahan: ',hasilJum);
end;
BEGIN
clrscr;
writeln('masukan 4 bilangan');
write('bilangan pertama: '); readln(bil1);
write('bilangan kedua : '); readln(bil2);
write('bilangan ketiga : '); readln(bil3);
9
write('bilangan keempat: '); readln(bil4);
writeln;
writeln('bilangan pertama dan kedua');
jumlahkan(bil1,bil2);
writeln;
writeln('bilangan ketiga dan keempat');
jumlahkan(bil3,bil4);
END.
Keluaran program
masukan 4 bilangan
bilangan pertama: 5
bilangan kedua : 8
bilangan ketiga : 2
bilangan keempat: 7
bilangan pertama dan kedua
hasil penjumlahan: 13
bilangan ketiga dan keempat
hasil penjumlahan: 9
Prosedur yang menerima masukan dan menghasilkan keluaran
Prosedur yang paling komplek adalah yang menerima masukan dan menghasilkan
keluaran. Prosedur seperti ini disebut prosedur yang mempunyai parameter masukan dan
parameter keluaran.
Berikut ini adalah skema prosedur yang menerima masukan dan menghasilkan keluaran:
10
procedure C(param1, param2, … : tipeparam;
var paramx, paramy, … : tipeparam);
var varlok1, varlok2, … : tipevar;
begin
{ statement }
end;
Pada skema prosedur di atas didefinisikan dua macam parameter, yaitu:
- parameter nilai (value parameter) : param1, param2
- parameter acuan (reference parameter): paramx, paramy
Contoh program
Program Perhitungan_4_bil;
uses crt;
var bil1,bil2,bil3,bil4,bil12,bil34,bil1234: integer;
Procedure jumlahkan(angka1,angka2: integer; var hasilJum: integer);
begin
hasilJum := angka1+angka2;
end;
BEGIN
clrscr;
writeln('masukan 4 bilangan');
write('bilangan pertama: '); readln(bil1);
write('bilangan kedua : '); readln(bil2);
write('bilangan ketiga : '); readln(bil3);
write('bilangan keempat: '); readln(bil4);
write('jumlah bilangan pertama dan kedua : ');
11
jumlahkan(bil1,bil2,bil12); writeln(bil12);
write('jumlah bilangan ketiga dan keempat: ');
jumlahkan(bil3,bil4,bil34); writeln(bil34);
write('jumlah semua bilangan : ');
jumlahkan(bil12,bil34,bil1234); writeln(bil1234);
END.
Keluaran program
masukan 4 bilangan
bilangan pertama: 5
bilangan kedua : 8
bilangan ketiga : 2
bilangan keempat: 7
jumlah bilangan pertama dan kedua : 13
jumlah bilangan ketiga dan keempat: 9
jumlah semua bilangan : 22
Penjelasan program
Perhatikan contoh di atas, lihat parameter angka1, angka2, hasilJum di dalam
pendeklarasian prosedur jumlahkan yang sesuai dengan parameter bil1, bil2, bil12 pada
pemakaian prosedur di dalam tubuh program.
Dalam hal ini dapat didefinisikan dua macam parameter, yaitu:
- parameter formal, di dalam deklarasi prosedur: angka1, angka2, hasilJum
- parameter actual, pada pemanggilan prosedur: bil1, bil2, bil12
12
3. Perbedaan procedure dan fungsi
Perbedaan antara function dan procedure adalah : kalau function dia akan
mengembalikan suatu nilai pada pemanggilnya, sedangkan kalau procedure dia tidak
akan mengembalikan nilai apapun pada fungsi pemanggilnya. Untuk lebih jelasnya saya
akan memberikan contoh studi kasus program untuk menghitung luas persegi panjang
dalam bahasa Java.
13
PENUTUP
FUNGSI adalah :
modul program yang memberikan/mengembalikan(return)sebuah nilai dan tipe tertentu
(tipe dasar atau tipe bentukan).
PROSEDURE adalah :
suatu program terpisah dan berdiri dalam dalam suatu blok program dan berfungsi sebagai
sebuah sub program(program bagian). Penulisan procedure di awali dengan kata Procedure
pada bagian deklarasi program dan cukup menuliskan nama procedure yang di buat dalam
bagian Implementasi. Struktur dasar procedure adalah bagian judul yang terdiri atas nama procedure dan
komentar yang menjelaskan spesifikasi procedure tersebut, bagian deklarasi, dan bagian deskripsi.
14