Anda di halaman 1dari 20

B A B 2

Program Sederhana

KONSEP : Program, Fungsi, Prosedur, Parameter, Pemograman


Top-down.

Cukup banyak yang telah dipelajari pada Bab 1 sebagai usaha untuk dapat
menulis program. Mulai saat ini perancangan program akan dilakukan
berdasarkan urutan permasalahan, yang disebut studi kasus, dimana
penyelesaiannya akan dikembangkan secara bertahap dalam mpl.
Mulai dengan bab ini, studi kasus akan dibagi dalam dua bagian -
bagian pengenalan atau Getting Acquinted yang akan mengungkapkan
konsep-konsep pemograman baru pada Bab ini serta bagian yang lebih
rumit atau The Challenge yang akan mengilustrasikan penggunaan
konsep pemrograman baru tersebut pada program yang lebih nyata.
Bagian Pendalaman (In Restrospec) sesudah bagian Pengenalan akan
mengungkapkan kesimpulan komprehensip dari konsep pemrograman
baru pada bab ini.
Disarankan untuk mempelajari semua studi kasus pada bagian
Pengenalan, karena setiap studi kasus memperkenalkan konsep
pemograman baru dan studi kasus selanjutnya dibangun berdasarkan
studi kasus ini. Studi kasus pada bagian The Challenge merupakan pilihan,
tetapi disarankan paling sedikit dipelajari satu kasus secara mendalam
untuk dapat mengerti konsep pemrograman pada bab ini secara
mendalam.
Topik utama pada bab ini merupakan struktur dan rancangan
program. Disini terlihat dimana setiap program akan mengandung
prosedur inisial yang merupakan organisator program serta satu atau
lebih prosedur dan atau fungsi yang melaksanakan bagian pekerjaan
dari permasalahan. Selain itu akan dipelajari pula bagaimana
menggunakan parameter sebagai alat komunikasi antar rutin (prosedur
atau fungsi) dalam program.

2 -1
2.1
PENGENALAN

Studi kasus-studi kasus pada bab ini berbentuk sederhana dan


bertujuan untuk menunjukan struktur dasar program dengan mengaitkan
pada ide dasar dari bab sebelumnya. Setiap studi kasus akan didahului
oleh penjelasan permasalahan yang diikuti dengan spesifikasi input yang
menjelaskan data yang akan disupplai pada alat input untuk diproses oleh
program. Juga akan terlihat dimana pada setiap program akan
mengandung suatu prosedur inisial serta satu atau lebih prosedur dan
atau fungsi yang berkomunikasi melalui parameter.

Studi Kasus 2.1 Menghitung Rata-rata dari Tiga Bilangan integer

Uraian Permasalahan : Diketahui 3 bilangan integer, hitung harga rata-


rata yang bersifat
integer dan cetak hasilnya.
Spesifikasi Input : Dibuat satu basis input yang mengandung tiga
bilangan integer.

Penyelesaian Pertama - Prosedur Inisial Sederhana

Permasalahan diatas terlihat sangat mudah, dimana telah kita ketahui


ekspresi aritmatik untuk menghitung harga rata-rata tiga bilangan
integer :

(a+b+c)/3

Ada beberapa langkah yang harus kita ikuti dalam mengembangkan


program untuk melaksanakan hal diatas. Pertama-tama, kita perlu
menyatakan ke-3 variabel, a, b, dan c, serta variabel ke-4, rata (Sebagai
variabel yang ditugaskan untuk menyimpan hasilnya) dalam pernyataan
"spesifikasi storage", seperti :

spesifikasi storage
variabel
a,b,c rata : integer
end spesifikasi storage

2 -2
Eksekusi pernyataan diatas oleh prosesor, akan mengakibatkan store
berbentuk

a integer

b integer

c integer

rata integer

dimana a, b, c dan rata belum terdefinisi (belum memiliki nilai).


Permasalahan selanjutnya adalah bagaimana mendapatkan nilai-nilai a,
b, dan c agar kita dapat menghitung harga rata-ratanya. Spesifikasi input
akan memberitahu kita bahwa ke-3 nilai tersebut akan didapatkan pada
alat input, sehingga perlu dibuat pernyataan

input a,b,c

dalam program kita. Misalkan, apabila ke-3 nilai yang di input adalah :

75 86 81

maka eksekusi dari pernyataan input diatas akan menghasilkan,

a 75 integer

b 86 integer

c 81 integer

rata integer

Karena pernyataan input akan menangani pembacaan nilai-nilai atau


variabel a, b, dan c, maka kita perlu membuat suatu pernyataan
penugasan,

2 -3
rata (a+b+c)/3

untuk menghitung harga rata-rata. Sebagai contoh, hasil eksekusi dari


pernyataan ini dengan input seperti diatas, adalah

rata (75+86+81)/3

dan storenya akan terlihat

a 75 integer

b 86 integer

c 81 integer

rata 80 integer

Tugas akhir dari program kita adalah mencetak hasil perhitungan diatas,
dengan mengguna-
kan pernyataan output

output 'harga rata-rata adalah', rata

Sekarang, kita dapat mengelompokan semua pernyataan diatas dalam


suatu prosedur inisial yang dinamakan rata-rata dari tiga.

rata-rata dari tiga : prosedur inisial


{menghitung harga rata-rata integer dari tiga bilangan integer}

spesifikasi storage
variabel
a,b,c,rata : integer
end spesifikasi storage

begin rata-rata dari tiga


input a,b,c
rata (a+b+c)/3
output 'harga rata-rata adalah', rata
end rata-rata dari tiga

STUDI KASUS 2.1 - PENYEMPURNAAN 1

2 -4
Kalimat dalam tanda {} hanya merupakan "komentar" dan tidak
dieksekusi oleh prosesor. Komentar hanya berguna untuk orang yang
membaca program tersebut.

Prosedur inisial hanya merupakan suatu prosedur agar prosesor tahu


bilamana saat memulai eksekusi. (Dalam bahasa pemograman tingkat
tinggi, prosedur inisial berguna untuk memang-gil kompiler).

Catatan :
Tata cara diatas tampak bertele-tele, tetapi hal ini perlu dipraktekan
(walaupun awalnya kita akan sering melakukan kesalahan) agar kita
terbiasa dengan tata cara diatas, sehing-ga pada saat kita membuat
program yang benar untuk memecahkan permasalahan besar, tata
cara ini akan sangat membantu.

Penyelesaian Kedua - Penggunaan Fungsi Sederhana

Program yang dikembangkan diatas, walaupun tanpa modifikasi, dapat


menghitung harga rata-rata (dalam bilangan integer) dari setiap tiga
bilangan integer, tetapi tetap tidak bersifat umum.
Misalkan kita sudah menghitung nilai rata-rata suatu mata kuliah
(dengan 3 macam nilai) untuk tiga murid dan kita ingin menghitung nilai
rata-rata kelas dari ke-3 murid tersebut, maka program diatas tidak dapat
menangani masalah tersebut karena program ini harus selalu membaca tiga
nilai yang akan dirata-ratakan dari alat input. Dengan kata lain, apabila
diperlukan perhitungan lain untuk menghasilkan a, b, dan c sebelum a, b,
dan c dirata-ratakan, maka program tersebut perlu dieksekusi kembali,
walaupun fungsinya untuk menghitung harga rata-rata bersifat sama.
Dalam studi kasus sederhana ini, perhitungan harga rata-rata bersifat
integer dari tiga bilangan integer dengan sangat mudah dapat dituliskan
dalam satu baris dan usaha untuk mema-sukan baris tersebut dalam
program baru sangat minimal. Walaupun demikian, perlu diberikan
ilustrasinya. Banyak permasalahan nyata yang tidak sesederhana seperti
perhitungan harga rata-rata, dan cara terbaik untuk menyelesaikan
permasalahan diatas adalah dengan merancang fungsi dan atau prosedur
terpisah untuk setiap sub-permasalahan yang dapat diidentifikasi. Sekali
suatu rutin dirancang serta dituliskan secara terpisah, maka rutin tersebut
dapat dipergunakan secara berulang dalam berbagai program yang
membutuhkannya, sehingga tidak akan terjadi kesalahan dalam penulisan
serta pengetikannya pada komputer.

2 -5
Alasan yang lebih penting adalah, membiasakan kita dalam membuat
program secara terorganisir serta berdisiplin tinggi yang lebih produktip
daripada menuliskan suatu program besar yang sekaligus dapat
memecahkan suatu permasalahan besar pula.
Untuk mendemonstrasikan corak pemograman secara modular, maka
dituliskan sebagai beri-kut :

rata-rata dari tiga : prosedur inisial


{cetak harga rata-rata integer dari tiga bilangan integer}

spesifikasi storage
variabel
a,b,c,rata : integer
end spesifikasi storage

begin rata-rata dari tiga


input a,b,c
rata average3(a,b,c)
output 'harga rata-rata adalah', rata
end rata-rata dari tiga

where average3 menghitung harga rata-rata dari tiga bilangan


integer

STUDI KASUS 2.1 - PENYEMPURNAAN 2

Perbedaan program harga rata-rata versi ini dengan penyempurnaan 1


hanya pada pernyataan penugasan

rata (a+b+c)/3

yang diganti dengan pernyataan

rata average3(a,b,c)

Penghitungan harga rata-rata dari nilai a, b, dan c tidak dilakukan secara


langsung dalam prose-dur inisial, melainkan dengan menggunakan fungsi
average3 dimana nilai dari variabel integer a, b, dan c disupplai dan akan
menghasilkan harga rata-rata sebagai hasilnya. Bagaimana harga rata-rata
dihitung dalam fungsi average3 bukan menjadi perhatian kita selama fungsi
tersebut memberikan hasil yang benar.

2 -6
Saat ini kita perlu merancang fungsi average3 dengan cara
mengembangkan struktur internal dari black box dibawah ini,

rata average3(a,b,c)

Menghitung harga rata-rata integer Fungsi


dari tiga bilangan integer Average3

dimana prosesor akan mengeksekusi pernyataan,

rata average3(a,b,c)

dalam prosedur inisial.

Hasil dari fungsi average3 akan dikembalikan pada variabel rata.


Langkah pertama dalam menuliskan fungsi average3 adalah agar prosesor
dapat mengidentifi-kasi fungsi, yaitu dengan menuliskan pernyataan
header fungsi

average3 : fungsi integer

dimana hal ini menyatakan bahwa kelompok pernyataan dibawah


pernyataan header akan menghitung serta mengembalikan (mengeluarkan)
satu nilai integer.
Selanjutnya, karena fungsi average3 akan dikirimi tiga nilai integer untuk
dihitung harga rata-ratanya, maka fungsi ini harus memiliki container agar
dapat menampung tiga nilai, yang disebut sebagai parameter dan
dijelaskan dengan pernyataan parameter :

parameter
x,y,z : integer in only

Parameter x, y, dan z tampak dan diperlakukan seperti variabel, tetapi


memiliki kegunaan yang lain. Parameter digunakan dalam prosedur dan
fungsi untuk berkomunikasi dengan prosedur dan fungsi lain. Sebagai
contoh, pernyataan parameter dalam fungsi average3 memberikan tanda
pada prosesor bahwa average3 mengharapkan tiga nilai yang harus
disupplai pada container x, y, dan z setiap kali fungsi average3 dipanggil
oleh prosedur atau fungsi lain. Ketika average3 ditulis pada pernyataan ;

rata average3(a,b,c)

2 -7
prosesor mengeksekusi fungsi average3, dan dalam proses, nilai a
dikhususkan pada x, nilai b pada y dan nilai c pada z. Parameter x, y, dan
z disebut parameter in only bertipe integer, karena mereka hanya
menerima nilai-nilai integer yang dikirimkan pada fungsi average3, dan
nilai-nilai tersebut tidak dimodifikasi ataupun dirubah. Dengan kata lain,
nilai akan masuk pada fungsi average3 melalui parameter x, y, dan z,
tetapi tidak ada nilai yang dikeluarkan melalui x, y, dan z; sehingga x, y,
dan z memiliki tujuan in only.
Dengan parameter x, y, dan z, kita dapat memasukan pernyataan

average3 (x+y+z)/3

dalam average3. Ketika prosesor mengeksekusi pernyataan ini, nilai-nilai


dalam parameter x, y, dan z; yang dikirim pada average3 dari prosedur
inisial; akan dijumlahkan, dibagi 3 dan disimpan pada average3.
Bentuk keseluruhan fungsi average3 adalah sebagai berikut ;

average3 : fungsi integer


{menghitung harga rata-rata integer dari tiga bilangan integer}

spesifikasi storage
parameter
x,y,z :integer in only
end spesifikasi storage

begin average3
average3 (x+y+z)/3
end average3

STUDI KASUS 2.1 - PENYEMPURNAAN 3

Kecuali pernyataan header fungsi dan pernyataan parameter, fungsi


average3 memiliki format dasar yang sama seperti prosedur inisial. Fungsi
tidak dapat dieksekusi tersendiri dan harus merupakan bagian dari suatu
program yang memiliki prosedur inisial. Eksekusi awal oleh prose-sor
dilakukan berdasarkan prosedur inisial dan fungsi average3 hanya akan
diproses apabila dipanggil melalui suatu pernyataan yang mengandung
fungsi tersebut pada saat pernyataan tadi dieksekusi.

_________________________________________________________________

Contoh 2.1 Pada saat prosesor mengeksekusi pernyataan ;

2 -8
rata average3(a,b,c)

dalam prosedur inisial, efeknya diilustrasikan sebagai berikut :

rata average3 (a, b, c)

x y z fungsi
average3
average3 (x+y+z)/3

Nilai pada a dikirimkan ke x, nilai b pada y dan nilai c pada z. Jumlah dari
x, y, dan z dibagi 3 dan hasilnya disimpan pada average3, sebagai nama
fungsi. Pada tahap ini fungsi selesai dan nilai yang dihitung pada average3
dikembalikan pada prosedur inisial, menggantikan fungsi yang dinamakan ;

average3(a,b,c)

Fungsi average3 tidak memperdulikan nama dari nilai yang dikirim


(pada kasus ini a, b, dan c).
Seperti operasi perangkat keras +, -, *, /, dan , average3 kini
merupakan operator, ataupun fungsi, yang dapat dipanggil lebih dari
satu kali pada satu program (ataupun program yang berbeda), serta
menerima nilai yang berbeda pada setiap saat. Sebagai contoh, dalam
program lain kita ingin menggunakan fungsi average3 pada pernyataan

rataberbobot average3(S1,S2,S3)*10

dimana nilai S1, S2, dan S3 merupakan variabel yang nilainya telah
dihitung. Fungsi average3 akan bekerja dengan tanpa perlu dimodifikasi,
seperti dibawah ini :

rataberbobot average3(S1,S2,S3)*10

x y z fungsi
average3
average3 (x+y+z)/3

2 -9
Harga rata-rata yang dihitung oleh fungsi average3 akan dikembalikan
pada

average3(S1,S2,S3)

dan kemudian akan dikalikan dengan 10 serta hasilnya akan disimpan pada
variabel rataberbobot.
_________________________________________________________________

Penyelesaian cara kedua dari permasalahan Studi Kasus 2.1, akan


merupakan suatu program yang mengandung prosedur inisial rata-rata
dari tiga pada penyempurnaan 2 serta fungsi average3 pada
penyempurnaan 3. Untuk menjalankan program pada komputer, kita harus
menyatukan kedua rutin dalam satu paket (program) dan memasukannya
sebagai satu kesatuan pada komputer.

rata-rata dari 3 : prosedur inisial


{cetak harga rata-rata integer dari tiga bilangan integer}

spesifikasi storage
variabel
a,b,c,rata :integer
end spesifikasi storage

begin rata-rata dari tiga


input a,b,c
rata average3(a,b,c)/3
output 'harga rata-rata adalah', rata
end rata-rata dari tiga

average3 : fungsi integer


{menghitung harga rata-rata integer dari tiga bilangan integer}

spesifikasi storage
parameter
x,y,z : integer in only
end spesifikasi storage

begin average3
average3 (x+y+z)/3
end average3

2 - 10
STUDI KASUS 2.1 - PENYEMPURNAAN 4

Agar suatu program dapat dieksekusi pada komputer, semua prosedur


dan fungsi yang dibutuhkan perlu dituliskan dalam satu kesatuan -
program.

Correctness

Setelah program dirancang, kita perlu meyakini kebenaran program


tersebut, dalam arti apakah program tersebut akan memberikan jawaban
yang benar untuk setiap nilai yang dimasukan. Proses perancangan
program tidak akan lengkap sebelum langkah verifikasi selesai.
Salah satu cara untuk mengetahui kebenaran suatu program adalah
dengan cara mengujinya berdasarkan beberapa input dan apakah akan
mengeluarkan jawaban yang diharapkan. Tentu saja kebenaran program
tidak dapat diyakini dengan hanya mengujinya berdasarkan beberapa nilai
input. Pengujian hanyalah merupakan salah satu cara untuk melakukan
verifikasi kebenaran program. Untuk menguji program, kita perlu
menterjemahkan kedalam bahasa pemograman yang sebenarnya dan
menjalankannya pada komputer.
Sebelum menguji suatu program pada komputer, kita perlu
memeriksanya dengan cara "program walkthrough". Dalam cara ini
beberapa nilai input dipilih dan programer melangkah secara bertahap
dalam program, mensimulasi prosesor dengan mengeksekusi setiap
pernyataan.

_________________________________________________________________

Contoh 2.2 Untuk program walkthrough, misalkan program dari hasil


penyempurnaan 4 telah dimasukan pada komputer dan ke-3 bilangan
integer

85 73 92

disupplai pada alat input. Prosesor selalu memulai eksekusi berdasarkan


prosedur inisial dari program, sehingga pada kasus ini dimulai dengan
rata-rata tiga. Pernyataan pertama

variabel
a,b,c,rata : integer

dalam bagian spesifikasi storage akan membuat storage tampak


seperti

2 - 11
a integer

b integer

c integer

rata integer

Setelah memproses pernyataan variabel, prosesor akan beralih pada


bagian penghitungan pada prosedur inisial yang dimulai dengan
pernyataan

begin rata-rata tiga

dan pernyataan pertama yang dihadapi

input a,b,c

Eksekusi dari pernyataan input akan memindahkan nilai pertama dari


alat input pada a, nilai kedua pada b, dan nilai ketiga pada c, dan akan
mengakibatkan store seperti

a 85 integer

b 73 integer

c 92 integer

rata integer

Setelah selesai mengeksekusi pernyataan input, prosesor beralih pada


pernyataan

rata average3(a,b,c)

yang memanggil fungsi average3. Setelah fungsi average3 dapat ditemui


dalam program, prosesor akan mengeksekusi fungsi average3 dengan tetap
mengingat tempatnya pada prosedur inisial.
Pernyataan header fungsi

2 - 12
average3 : fungsi integer

akan memberitahu prosesor untuk menyiapkan sel storage bertipe


integer bagi nama fungsi average3, karena nilai hasil perhitungan fungsi
akan selalu disimpan pada nama fungsi pada saat fungsi tersebut selesai
dieksekusi.
Hal ini akan membuat store tampak seperti

a 85 integer

b 73 integer

c 92 integer

rata integer

average3 integer

Prosesor selanjutnya akan menghadapi bagian spesifikasi storage dari


fungsi average3 dan akan memproses pernyataan parameter.

parameter
x,y,z : integer in only

Selama parameter ini merupakan parameter in only, maka prosesor harus


menyediakan tempat pada store agar dapat menampung nilai- nilai yang
dikirimkan dari prosedur inisial, sehingga store akan tampak

a 85 integer

b 73 integer

c 92 integer

rata integer

average3 integer

x integer

2 - 13
y integer

z integer

Sebagai langkah akhir pemrosesan pernyataan parameter, prosesor akan


mengambil nilai-nilai a, b, dan c (yang dikenal sebagai "argumen" atau
"parameter aktual") dan menyalin nilainya pada parameter x, y, dan z
(disebut "parameter formal") dari average3, sehingga store akan tampak

a 85 integer

b 73 integer

c 92 integer

rata integer

average3 integer

x 85 integer

y 73 integer

z 92 integer

Pada tahap ini prosesor bekerja didalam fungsi average3 dan tidak lagi
melihat variabel a, b, c dan rata dari prosedur inisial, walaupun variabel
tersebut masih terdapat dalam store. Pada saat prosesor memproses
average3, ia hanya bisa berhubungan dengan sel storage average3, x, y,
dan z.
Saat ini prosesor mengeksekusi pernyataan pertama pada bagian
perhitungan dari average3 setelah pernyataan

2 - 14
begin average3

yaitu

average3 (x+y+z)/3

dimana unit penjumlah dan pembagi akan dipanggil untuk menghasilkan

83.333...

dan harus menyimpannya dalam nama fungsi average3. Karena average3


bertipe integer, maka hasilnya akan dibulatkan dan storenya akan tampak

2 - 15
a 85 integer

b 73 integer

c 92 integer

rata integer

average3 83 integer

x 85 integer

y 73 integer

z 92 integer

Prosesor akan bergerak pada pernyataan berikut ;

end average3

yang merupakan akhir dari fungsi average3. Pada tahap ini, eksekusi dari
average3 berakhir dan prosesor akan melanjutkan kembali eksekusi pada
prosedur inisial melalui pernyataan dimana fungsi average3 dipanggil, yaitu

rata average3(a,b,c)

Pada saat ini, nilai average3(a,b,c), 83, telah selesai dihitung dan disimpan
pada sel storage average3. Prosesor mengganti average3(a,b,c) dengan 83
pada saat kembali pada prosedur inisial dan mengakibatkan pernyataan
diatas akan sama dengan

rata 83

Pada saat yang sama, selama prosesor telah selesai memproses fungsi
average3 dan kembali untuk mengeksekusi prosedur inisial, semua sel
storage yang digunakan oleh fungsi average3 akan dihilangkan. Karena itu,
persis sebelum melengkapi pernyataan

rata 83

storenya akan tampak

2 - 16
a 85 integer

b 73 integer

c 92 integer

rata integer

Setelah pernyataan

average3 83

dieksekusi oleh prosesor, store akan tampak

a 85 integer

b 73 integer

c 92 integer

rata 83 integer

dan prosesor akan mengeksekusi pernyataan selanjutnya

output 'harga rata-rata adalah', rata

dan akan menghasilkan

harga rata-rata adalah 83

yang akan dicetak pada alat output.


Pernyataan terakhir yang dieksekusi oleh prosesor

end rata-rata dari tiga

akan menyebabkan berakhirnya eksekusi program dan semua nilai dalam


storage akan dihilangkan,

2 - 17
untuk dapat dipergunakan kembali oleh program lain.
_________________________________________________________________

Kesimpulan - Studi Kasus 2.1

Dalam studi kasus ini, kita lihat corak pemograman yang akan selalu
dianut pada studi kasus lainnya. Setiap akan melakukan rancangan
program, perlu dilakukan langkah-langkah, pengu-raian permasalahan
yang akan dipecahkan dan input yang perlu diproses, dan kemudian
meran-cang program dalam mpl dengan pola 'top-down'. Kita akan mulai
dengan merancang prosedur inisial dan pada saat dihadapi proses
penghitungan, diasumsikan terdapat fungsi atau prosedur terpisah untuk
melakukan proses tersebut, dan pernyataan yang memanggil fungsi atau
prose-dur tadi perlu dituliskan pada prosedur inisial, kemudian lanjutkan
penulisan prosedur inisial. Setelah rancangan prosedur inisial diselesaikan,
kita perlu merancang fungsi atau prosedur yang kebutuhannya telah
diasumsikan. Dengan mengkonsentrasikan diri pada bagian-bagian kecil
program yang terpisah akan sangat menyederhanakan proses
pemrograman.
Merancang suatu fungsi (mis. average3) seperti membuat suatu
operator baru (mis. +) yang dapat digunakan secara berulang dalam satu
ataupun program lain. Perbedaan utama antara fungsi 'software' seperti
fungsi average3 dengan fungsi 'hardware' seperti +, adalah dimana fungsi
software hanya dapat menampung satu tipe bilangan pada parameternya,
sedangkan fungsi hardware dapat menampung tipe bilangan yang
berbeda.
Parameter fungsi atau prosedur disebut parameter formal dan nilai
yang dikirimkan pada parameter yang bersangkutan pada saat fungsi
atau prosedur tersebut dipanggil dinamakan parameter aktual, dan tipe
dari kedua parameter ini harus sesuai.
Pada saat suatu fungsi atau prosedur dipanggil dari rutin lain, prosesor
akan menyiapkan sel storage baru untuk setiap parameter formal in only
dan kemudian akan menyalin nilai dari parameter aktual pada sel
parameter formal yang berhubungan sebelum fungsi atau prosedur
tersebut dieksekusi. Selama parameter formal in only merupakan hasil
salinan dari parameter aktual, maka perubahan pada nilai parameter
formal pada saat fungsi dieksekusi tidak akan merubah nilai dari
parameter aktual. Karena itu parameter ini disebut parameter in only:
nilai-nilai dapat dikirimkan pada fungsi melalui parameter in only, tetapi

2 - 18
tidak ada nilai yang dapat dikirimkan kembali pada rutin yang memanggil
melalui parameternya.
Selama prosesor mengeksekusi suatu fungsi tertentu, variabel yang
dinyatakan pada prosedur dan fungsi lainnya tidak dapat dijangkau
ataupun digunakan dengan cara apapun, walaupun mungkin saja storenya
sudah memiliki nilai. Satu-satunya cara untuk mengirim dan menerima
nilai antara rutin yang berbeda adalah melalui parameter dan nama
fungsi. Setiap kali fungsi atau prosedur selesai dieksekusi, semua sel
storage yang disiapkan untuk fungsi atau prosedur tersebut akan
dihilangkan dan nilainya menjadi tidak terdefinisi.
Studi kasus selanjutnya merupakan contoh yang melibatkan suatu
fungsi dimana polanya mirip dengan studi kasus ini.

Studi Kasus 2.2 Luas Segi Empat

Uraian Permasalahan : Hitung dan cetak luas segi empat.


Spesifikasi Input : Dua nilai riil, satu untuk panjang dan satu untuk
lebar.

Permasalahan ini tampak berbeda dengan studi kasus terdahulu, tetapi


dalam kenyataan-nya memiliki kemiripan.

Penyelesaian - Fungsi dengan parameter In Only

Prosedur inisial akan mengandung; pembacaan panjang dan lebar dari alat
input, memanggil fungsi untuk menghitung luas, dan akhirnya akan
mencetak luas. Kita memerlukan dua variabel untuk menampung dua nilai
riil input yang disebut panjang dan lebar.

variabel
panjang, lebar : riil

Dengan mengorganisir prosedur inisial seperti pada studi kasus


sebelumnya dan memasukkan pernyataan variabel dalam spesifikasi
storage, akan didapatkan;

luas segi empat : prosedur inisial


{cetak luas segi empat}

2 - 19
spesifikasi storage
variabel
panjang, lebar : riil
end spesifikasi storage

2 - 20

Anda mungkin juga menyukai