Prosedur dan Fungsi di Turbo Pascal
Prosedur dan Fungsi di Turbo Pascal
A.
A. KonseKonsep pep pemrogmrograman raman prosprosedureduralal
Ketika program yang dibuat sudah terlalu panjang ratusan bahkan puluhan ribu Ketika program yang dibuat sudah terlalu panjang ratusan bahkan puluhan ribu bar
baris, is, sesehinhingga gga kitkita a menmengalgalamami i keskesuliulitan tan untuntuk uk memmemahaahami mi jaljalannannya ya proprogragram m secsecaraara keseluruhan, maka ada baiknya bila program tersebut dipecah menjadi beberapa bagian keseluruhan, maka ada baiknya bila program tersebut dipecah menjadi beberapa bagian yan
yang g biabiasansanya ya disdisebebut ut modmodul, ul, susubprbprogrogram am ataatau u subsubrutrutin. in. KonKonsesep p semsemacaacam m ini ini biabiasasa disebut dengan pemrograman prosedural. Dalam tulisan ini selanjutnya akan digunakan disebut dengan pemrograman prosedural. Dalam tulisan ini selanjutnya akan digunakan k
kaattaa modulmodul susupaypaya a leblebih ih rinringkagkas. s. TurTurbo bo PasPascal cal yanyang g digdigunaunakan kan padpada a perpercocobaabaan n iniini adalah versi 7.1, bila anda menggunakan Turbo Pascal 7.0 maka prosesnya tidak jauh adalah versi 7.1, bila anda menggunakan Turbo Pascal 7.0 maka prosesnya tidak jauh berbeda.
berbeda. em
emecaecah h proprogragram m menmenjadjadi i modmodul!mul!moduodul l tententuntunya ya akaakan n leblebih ih mememudmudahkahkanan dalam
dalam mencmencari ari kesakesalahalahan, n, mempememperbaikrbaiki i serta serta membmembuat uat dokudokumentamentasinyasinya. . PembuPembuatanatan modul
modul di Turbo Pascadi Turbo Pascal dibagi dua jenis l dibagi dua jenis yaitu " Prosedur dayaitu " Prosedur dan #ungsi. Prosedun #ungsi. Prosedur atau #ungsir atau #ungsi adalah suatu modul program yang terpisah dari program utama, diletakan dalam blok adalah suatu modul program yang terpisah dari program utama, diletakan dalam blok tersendiri yang ber$ungsi sebagai bagian dari program. %etiap prosedur dia&ali dengan tersendiri yang ber$ungsi sebagai bagian dari program. %etiap prosedur dia&ali dengan ka
kata ta cacadadangnganan (rese(reserver rver word)word) ProcedureProcedure, seda, sedangkngkan an #un#ungsi digsi dia&aa&ali denli dengan kagan katata cadangan
cadangan Function.Function.
Prosedur atau #ungsi banyak digunakan pada program terstruktur, karena " Prosedur atau #ungsi banyak digunakan pada program terstruktur, karena " 1.
1. eruperupakan peakan penerapnerapan konsean konsep modulap modular, yaitu memr, yaitu memecah progecah program menjaram menjadi moduldi modul!modu!modull atau subprogram!subprogam yang lebih
atau subprogram!subprogam yang lebih sederhana.sederhana. '.
'. (ntuk ha(ntuk hal!hal yal!hal yang sering ding sering dilakuklakukan berulan berulang!uang!ulang, culang, cukup ditulkup dituliskan seiskan sekali saja dkali saja dalamalam prosedur dan dapat dipanggil atau
prosedur dan dapat dipanggil atau dipergunakan se&aktu!&aktu bila diperlukan.dipergunakan se&aktu!&aktu bila diperlukan.
B.
B. PenPenuliulisan san ProProsedsedurur (Procedure)(Procedure) Prose
Prosedur memiliki struktur yang dur memiliki struktur yang sama dengan struktusama dengan struktur r progrprogram, yaitu am, yaitu terdirterdiri i daridari nama prosedur, deklarasi!deklarasi dan bagian deskripsi )
nama prosedur, deklarasi!deklarasi dan bagian deskripsi )statement statement atau aksi di dalam atau aksi di dalam pr
prososededurur*. *. %e%emumua a dedeklklararasasi i di di dadalalam m prprososededur ur bebersrsi$ai$at t lolokakal l sesehihingngga ga hahanynya a bibisasa digunakan oleh prosedur itu saja, sedangkan deklarasi di dalam program utama bersi$at digunakan oleh prosedur itu saja, sedangkan deklarasi di dalam program utama bersi$at global sehingga dapat dikenali di seluruh bagian program. %truktur umum prosedur adalah global sehingga dapat dikenali di seluruh bagian program. %truktur umum prosedur adalah sebagai berikut "
+ambar 1. ara Penulisan Prosedur di
+ambar 1. ara Penulisan Prosedur di dalam Turbo Pascaldalam Turbo Pascal %truktur blok program
%truktur blok program utama beserta putama beserta prosedur, adalah rosedur, adalah sebagai berikut sebagai berikut ""
+ambar '. %truktur blok program beserta
+ambar '. %truktur blok program beserta prosedur tanpa parameter prosedur tanpa parameter
C.
C. BagaiBagaimana mana jika jika tanpa tanpa prosprosedur edur ?? -pakah
-pakah dalam dalam suatu suatu program program harus harus selalu selalu terdapat terdapat prosedur prosedur /a&abannya/a&abannya adalah tidak. ila kita membuat program yang sangat sederhana, misalnya program untuk adalah tidak. ila kita membuat program yang sangat sederhana, misalnya program untuk menampilkan kata
menampilkan kata “hallo world” “hallo world” di layar, maka boleh saja tidak menggunakan prosedur. di layar, maka boleh saja tidak menggunakan prosedur. (ntuk lebih jelasnya berikut disajikan contoh program untuk menghitung luas dan keliling (ntuk lebih jelasnya berikut disajikan contoh program untuk menghitung luas dan keliling persegipanjang yang
persegipanjang yang menggunakan prosedur menggunakan prosedur dan dan tanpa prosedur tanpa prosedur ..
' ' Procedure
Procedure Nama_Prosedur Nama_Prosedur (param_formal1:tipe_param1, param_formal2:tipe_param2,…); (param_formal1:tipe_param1, param_formal2:tipe_param2,…); {Jika prosedur tidak memiliki parameter, tanda kurung tidak disertakan}
{Jika prosedur tidak memiliki parameter, tanda kurung tidak disertakan}
var var
{bagian deklarasi prosedur, sifatnya lokal} {bagian deklarasi prosedur, sifatnya lokal}
begin begin statement1; statement1; statement2; statement2; ………… ………… !tatementn; !tatementn; end; end; Program judul_program; Program judul_program; var var
{bagian deklarasi prosedur, sifatnya global} {bagian deklarasi prosedur, sifatnya global}
Procedure
Procedure Nama_Prosedur Nama_Prosedur;;
{Jika prosedur tidak memiliki parameter, tanda kurung tidak disertakan} {Jika prosedur tidak memiliki parameter, tanda kurung tidak disertakan}
var var
{bagian deklarasi prosedur, sifatnya lokal} {bagian deklarasi prosedur, sifatnya lokal}
begin begin statement1; statement1; statement2; statement2; ………… ………… !tatementn; !tatementn; end; end; {program utama} {program utama} begin begin Nama_Prosedur; Nama_Prosedur; end. end.
+ambar .
+ambar . Program Program PersegipanjanPersegipanjangg tanpa prosedur tanpa prosedur +ambar . Program
+ambar . Program PersegiPanjang tanpa menggunakaPersegiPanjang tanpa menggunakan prosedur n prosedur
ila dituliskan di 2ditor Turbo Pascal kira!kira tampilannya seperti diba&ah ini. ila dituliskan di 2ditor Turbo Pascal kira!kira tampilannya seperti diba&ah ini. (ntuk melihat hasilnya silahkan tekan trl 3
(ntuk melihat hasilnya silahkan tekan trl 3 #4.#4.
+ambar 5. Tampilan di 2ditor
+ambar 5. Tampilan di 2ditor Turbo Pascal,Turbo Pascal, Program PersegipanjangProgram Persegipanjang tanpa prosedur tanpa prosedur
%et
%etelaelah h didirurunnnniningg )t)trl rl 3 3 #4*#4*, , makmaka a hashasilnyilnya a sepseperterti i dibdiba&aa&ah h iniini, , kemkemudiudianan cobalah untuk menginputkan data , misal " 5 untuk panjang dan 6 untuk lebar maka cobalah untuk menginputkan data , misal " 5 untuk panjang dan 6 untuk lebar maka hasilnya
hasilnya adalah, adalah, uas uas 8 8 '5 '5 dan dan Keliling Keliling 8 8 '0.'0. Program PersegiPanjang
Program PersegiPanjang ; ; {Judul {Judul "rogram "rogram #tama}#tama} uses
uses $rt; $rt; var
var {deklarasi {deklarasi %ariabel %ariabel global}global} p,l:byte;
p,l:byte; {p {p :pan&ang, :pan&ang, l:lebar}l:lebar} ls,kel:intege
ls,kel:integer; r; {ls:luas, {ls:luas, kel:keliling}kel:keliling} begin
begin $lrs$r; $lrs$r;
'riteln("rog
'riteln("rogram ram #ntuk #ntuk eng*itung eng*itung luas luas dan dan keliling keliling persegipan&anpersegipan&ang);g); 'riteln;
'riteln;
'rite(asuka
'rite(asukan n pan&ang pan&ang : : );readln(p););readln(p); 'rite(asuka
'rite(asukan n lebar lebar : : );readln(l););readln(l); 'riteln;
'riteln; ls:+pl;
ls:+pl; {luas+pan&an{luas+pan&ang g - - lebar}lebar} .
.eell::++((22pp))//((22ll));; {{kkeelliilliinngg++((2 2 - - ppaann&&aanngg) ) / / ((2 2 - - lleebbaarr))}} 'riteln(0
'riteln(0uas uas : : ,ls);,ls); 'riteln(.
'riteln(.eliling eliling : : ,kel);,kel); readln;
readln; end.
+ambar 9. Tampilan setelah di
+ambar 9. Tampilan setelah dirunning running
%ilahkan anda bisa mencoba dengan menginputkan angka yang berbeda, yang %ilahkan anda bisa mencoba dengan menginputkan angka yang berbeda, yang penting tidak melebihi '99, karena type data byte yang digunakan oleh variabel
penting tidak melebihi '99, karena type data byte yang digunakan oleh variabel p p dandan ll seper
seperti ti pada contoh pada contoh progrprogramam diadiatas tas hanhanya ya mamampu mpu menmenampampung ung datdata a beberuprupa a angangkaka sampai dengan '99, sedangkan variabel
sampai dengan '99, sedangkan variabel luasluas :: kelilingkeliling hanya mampu menampung hanya mampu menampung ang
angka ka !'!'76; 76; s<d s<d '7'767 67 karkarenena a menmengguggunaknakan an tiptipe e datdata a intintegeger. er. enengapgapa a dedemikmikianian,, bagaimana cara mengetahui jangkauan suatu tipe data, (ntuk mengetahui jangkauan bagaimana cara mengetahui jangkauan suatu tipe data, (ntuk mengetahui jangkauan (range)
(range) tipe data, anda bisa melihat di bagian tipe data, anda bisa melihat di bagian helphelp. aranya ". aranya " HelpHelp = = IndexIndex, kemudian cari, kemudian cari kata
kata integer integer , lalu tekan enter , lalu tekan enter maka akan muncul tampilan sebagai berikut "maka akan muncul tampilan sebagai berikut "
+ambar 6. Tampilan
+ambar 6. Tampilan HelpHelp di turbo pascal ketika menampilkan tipe datadi turbo pascal ketika menampilkan tipe data
>h
>h yaya? ? di di TuTurbrbo o PaPascscalal, , teterdrdapapat at $a$asisilitlitas as ununtutuk k memengngatatur ur &a&arnrna a tatampmpililanan,, mi
misasalnlnya ya &a&arnrna a %i%intntakakss (sintax)(sintax), , bibila la ananda da iningigin n memencncoboba a sisilalahkhkan an mamasusuk k ke ke memenunu Option > Environment > Color
Option > Environment > Color . Di bagian. Di bagian GroupGroup cari kata cari kata Synta Synta , selanjutnya di bagian, selanjutnya di bagian !tem
!tem, terdapat item!item ", terdapat item!item " Whitespace, Comments, RWhitespace, Comments, Reserver Words, Identifiers, Symbols,eserver Words, Identifiers, Symbols, String
Strings, s, umbeumbers, rs, !sse!ssemblermbler yang dapat diatur &arna tampilannya, caranya pilih salahyang dapat diatur &arna tampilannya, caranya pilih salah 5
satu @tem kemudian pilih &arna apa
satu @tem kemudian pilih &arna apa yang dikehyang dikehendaendaki pada ki pada bagibagianan Fore"round Fore"round untuk untuk &arna depan sedangkan
&arna depan sedangkan #ac$"round #ac$"round untuk &arna latar belakang. untuk &arna latar belakang.
+ambar 7. Tampilan menu
+ambar 7. Tampilan menu ColorsColors Pe
Pengngatatururan an tatampmpilailan n &a&arnrnaa ssinintataxx padpada a 2di2ditor tor TurTurbo bo PasPascacal l memmemang ang bukbukan an suasuatutu ke
ke&a&ajibjibanan, , dadan n tidtidak ak akakan an beberprpenengagaruruh h teterhrhadadap ap prprososes es prprogograram. m. TeTetatapi pi hahal l ininii berman$aat pada saat proses pembuatan<pengetikan program, dimana perbedaan &arna berman$aat pada saat proses pembuatan<pengetikan program, dimana perbedaan &arna item!item
.
. !en!engguggunaknakan pran prososeduedur r
%e
%elalanjnjututnynya a kikita ta momodidi$i$ikakasi si prprogograram m tatadidi, , dedengngan an memenanambmbahahkakan n prprososededurur sehingga menjadi seperti diba&ah ini "
sehingga menjadi seperti diba&ah ini "
+ambar ;.
+ambar ;. Program Program PersegipanjaPersegipanjangng menggunakan prosedur menggunakan prosedur
Pada program
Pada program tanpa prosedur tanpa prosedur maka seluruh maka seluruh statement statement dituldituliskan di dalam blokiskan di dalam blok pro
progragram m utautama, ma, sehsehingingga ga ketketika ika proprogragram m sesemakmakin in besbesar ar makmaka a bloblok k proprogragram m utautamama semakin padat. Tetapi bila menggunakan prosedur maka di dalam blok program utama semakin padat. Tetapi bila menggunakan prosedur maka di dalam blok program utama akan lebih sedikit
akan lebih sedikit, , karekarena hanya berisi nama prosedur yang dibutuhna hanya berisi nama prosedur yang dibutuhkan dankan dan statementstatement tambahan lainnnya yang dibutuhkan. Pada contoh diatas nama prosedur yang dipanggil di tambahan lainnnya yang dibutuhkan. Pada contoh diatas nama prosedur yang dipanggil di da
dalalam m blblok ok prprogograram m ututamama a yayaitituu HitungHitung " " LuasLuas d daann Hitung_KelilingHitung_Keliling dadan n araarahh pemanggilan prosedur digambarkan dengan garis putus!putus ber&arna merah agar lebih pemanggilan prosedur digambarkan dengan garis putus!putus ber&arna merah agar lebih jelas.
jelas.
ila dituliskan di 2ditor Turbo Pascal kira!kira tampilannya seperti diba&ah ini. ila dituliskan di 2ditor Turbo Pascal kira!kira tampilannya seperti diba&ah ini. (nt
(ntuk uk melmelihaihat t hashasilnilnya, ya, sepseperterti i biabiasa sa silsilahkahkan an tektekan an trtrl l 3 3 #4. #4. ilila a proprogragram m susudahdah dieksekusi maka kedua program tersebut )program dengan prosedur atau tanpa prosedur* dieksekusi maka kedua program tersebut )program dengan prosedur atau tanpa prosedur* akan memberikan hasil yang sama, tetapi dari teknik pembuatan program jelas berbeda. akan memberikan hasil yang sama, tetapi dari teknik pembuatan program jelas berbeda.
6 6 Program
Program PersegiPanjaPersegiPanjangng ; ; {&udul {&udul "rogram "rogram #tama}#tama} uses
uses $rt; $rt; var
var {deklarasi {deklarasi %ariabel %ariabel global}global} p,l:byte;
p,l:byte; {p {p :pan&ang, :pan&ang, l:lebar}l:lebar} ls,kel:integ
ls,kel:integer; er; {ls:luas, {ls:luas, kel:kelilinkel:keliling}g} Procedure
Procedure Hitung_LuasHitung_Luas; ; {"rosedur {"rosedur untuk untuk meng*itung meng*itung luas}luas} begin begin ls:+pl; ls:+pl; 'riteln(0ua 'riteln(0uas s :,ls);:,ls); end; end; Procedure
Procedure Hitung_KelilingHitung_Keliling;; {{""rroosseedduur r uunnttuuk k mmeenngg**iittuunng g kkeelliilliinngg}} begin begin kel:+(2p)/ kel:+(2p)/(2l);(2l); 'riteln(.eliling :,kel); 'riteln(.eliling :,kel); end; end; {+++program utama+++} {+++program utama+++} begin begin $lrs$r; $lrs$r; 'riteln("ro
'riteln("rogram #ntugram #ntuk eng*ituk eng*itung luas ng luas dan kelildan keliling perseging persegipan&ang);ipan&ang); 'riteln;
'riteln; 'rite(asuk
'rite(asukan an pan&ang pan&ang : : );readln(p));readln(p);; 'rite(asuk
'rite(asukan an lebar lebar : : );readln(l));readln(l);; 'riteln;
'riteln; Hitung_Luas;
Hitung_Luas; {emanggil {emanggil prosedur prosedur itung_0uas}itung_0uas} Hitung_Keliling;
Hitung_Keliling; {emanggil {emanggil prosedur prosedur itung_.elilitung_.eliling}ing} readln;
readln; end.
{program utama} {program utama} begin begin statement1; statement1; statement2; statement2; Prosedur1; Prosedur1; statement; statement; statement3; statement3; statement4; statement4; Prosedur2 Prosedur2;; !tatement5; !tatement5; statementn; statementn; end. end.
+ambar 4. Tampilan di 2ditor Turbo Pascal, +ambar 4. Tampilan di 2ditor Turbo Pascal, Program Persegipanjang
Program Persegipanjang menggunakan prosedur menggunakan prosedur
Ket
Ketika kita ika kita memmembuabuat t suasuatu tu proprogragramm tanpa prosedur tanpa prosedur maka seluruh statement maka seluruh statement yang terdapat di dalam program utama akan dieksekusi secara beruntun
yang terdapat di dalam program utama akan dieksekusi secara beruntun (se"uential)(se"uential) dari dari atas ke ba&a
atas ke ba&ah, sedangh, sedangkan bila mengkan bila menggunagunakan kan prosprosedur, makedur, maka program utama program utama hanyaa hanya akan mengeksekusi prosedur!prosedur yang dipanggil, bila prosedur tersebut dipanggil di akan mengeksekusi prosedur!prosedur yang dipanggil, bila prosedur tersebut dipanggil di dalam
dalam program utama, program utama, jadi bila untujadi bila untuk sementara k sementara kita tidak memkita tidak membutuhkannya, butuhkannya, maka caramaka cara mudah yang dapat kita lakukan yaitu tidak usah menghapusnya tetapi cukup dengan tidak mudah yang dapat kita lakukan yaitu tidak usah menghapusnya tetapi cukup dengan tidak memanggilnya di dalam blok program utama.
memanggilnya di dalam blok program utama.
+ambar 10. -rah eksekusi program utama ketika terdapat prosedur, maka akan
+ambar 10. -rah eksekusi program utama ketika terdapat prosedur, maka akan memanggimemanggill prosedur dan melakasanakan statement yang terdapat di
prosedur dan melakasanakan statement yang terdapat di dalam prosedur dalam prosedur
Procedure
Procedure Prosedur1Prosedur1;; begin begin statement1; statement1; statement2; statement2; 666 666 !tatementn; !tatementn; end; end; Procedure
Procedure Prosedur2Prosedur2;; begin begin statement1; statement1; statement2; statement2; 666 666 !tatementn; !tatementn; end; end; # # $ $ % % & & ' ' ( ( ) ) * * + +
,.
,. -aria-ariabel bel lobalobal dan l dan -ari-ariabel abel /oka/okall
(ntuk lebih memudahkan kita memahami variabel lokal dan variabel global, mari (ntuk lebih memudahkan kita memahami variabel lokal dan variabel global, mari kit
kita a modmodi$ii$ikaskasi i lislistinting g proprorgrrgram am padpada a +am+ambar bar 4, 4, perperubaubahahannynnya a hanhanya ya sedsedikiikit t yaiyaitu,tu, memindahkan penulisan variabel
memindahkan penulisan variabel lsls ke dalam ke dalam Procedure Hitung_luasProcedure Hitung_luas , dan variabel , dan variabel kel
kel dipinda dipindahkan ke dalhkan ke dalamam Procedure Hitung_kelilingProcedure Hitung_keliling, sehingga menjadi seperti, sehingga menjadi seperti diba&ah ini.
diba&ah ini.
+ambar 11.
+ambar 11. Program PersegipanjangProgram Persegipanjang menggunakan prosedur dengan variabel lokalmenggunakan prosedur dengan variabel lokal Aariabel
Aariabel pp d daann ll pada listing pada listing progprogram di ram di +amb+ambar 11 ar 11 diatdiatas, bersi$at globaas, bersi$at global l sehisehingga dapatngga dapat dikenali baik di program utama maupun didalam
dikenali baik di program utama maupun didalam Procedure Hitung_luasProcedure Hitung_luas dandan ProcedureProcedure Hitung_keliling
Hitung_keliling, , vavaririababel el sesemamacacam m ititululah ah yayang ng didimamaksksud ud dedengngan an vavaririababel el glglobobalal.. %edangkan variabel
%edangkan variabel lsls dan var dan variabiabelel kelkel bersi$at lokal dan hanya dikenali oleh program itu bersi$at lokal dan hanya dikenali oleh program itu send
sendiri, iri, varivariabel seperti itu abel seperti itu disedisebut but varivariabel lokal. abel lokal. ila variabeila variabel l lokalokal l dipadipangginggil l dildiluar uar proseprosedurdur terse
tersebut maka tidak but maka tidak akan dikenakan dikenali dan ali dan progprogram menjadiram menjadi error error , sebagai bukti mari kita sedikit, sebagai bukti mari kita sedikit modi$ikasi listing program pada gambar 11, output program yang terdapat pada masing!masing modi$ikasi listing program pada gambar 11, output program yang terdapat pada masing!masing program kita pindahkan ke dalam blok program utama, sehingga di dalam setiap prosedur hanya program kita pindahkan ke dalam blok program utama, sehingga di dalam setiap prosedur hanya terdapat satu
terdapat satu statement statement saja, saja, hasilnya hasilnya seperti dseperti diba&ah iiba&ah ini.ni.
; ;
+ambar 1'.
+ambar 1'. Program PersegipanjangProgram Persegipanjang , bila variabel lokal dipanggil dari luar , bila variabel lokal dipanggil dari luar
ila program tersebut di
ila program tersebut dicompilecompile makamaka akan terjadiakan terjadi error error karena variabel karena variabel lsls dandan kel
kel titidadak dikek dikenanalili (un(un#n#nown own ideidentintifiefier)r) di dalam blok program utamadi dalam blok program utama.. ProseProsedur dur yangyang terda
terdapat di pat di daladalam m progprogram pada ram pada listinlisting g diatadiatas s adaladalah ah contocontoh h proseprosedur tanpa dur tanpa paramparameter.eter... ila prosedur tidak memiliki parameter maka tanda kurung setelah nama prosedur tidak ila prosedur tidak memiliki parameter maka tanda kurung setelah nama prosedur tidak perlu disertakan. -gar listing program pada gambar 1' tidak terjadi
perlu disertakan. -gar listing program pada gambar 1' tidak terjadi errorerror ketika diketika dicompilecompile,, maka dapat
maka dapat dilakukan dilakukan cara sebacara sebagai berikut "gai berikut " 1.
1. DiDibubuat bat berersisi$a$at glt globobalal %upay
%upaya a suatsuatu u variavariabel bersi$at global, maka bel bersi$at global, maka harus didekharus dideklaraslarasikan di ikan di atas modul yangatas modul yang mengg
menggunakunakannyannya. a. isalisalnya nya listinlisting g progrprogram am pada gambar pada gambar 1' 1' dikemdikembalikbalikan an sepesepertiirtii listing program pada gambar 11.
listing program pada gambar 11. '.
'. DikiriDikirim sebam sebagai pargai parameteameter ke modur ke modul yang mel yang membutumbutuhkannhkannya.ya.
agaimana caranya, apa yang dimaksud dengan parameter, semoga tulisan berikut ini agaimana caranya, apa yang dimaksud dengan parameter, semoga tulisan berikut ini bisa menja&ab kedua pertanyaan tersebut.
F
F.. PaParraamemeteterr
%ecara sederhana parameter merupakan variabel yang dituliskan di dalam kurung %ecara sederhana parameter merupakan variabel yang dituliskan di dalam kurung set
setelaelah h namnama a proprosesedur dur ataatau u $un$ungsgsi. i. DalDalam am pempembuabuatan tan proprogragram m biabiasasanya nya dipdiperlerlukaukann pertukaran in$ormasi antara prosedur atau $ungsi, serta pada blok progam utama dimana pertukaran in$ormasi antara prosedur atau $ungsi, serta pada blok progam utama dimana nama prosedur atau $ungsi tersebut dipanggil.
nama prosedur atau $ungsi tersebut dipanggil.
erdasarkan penulisannya terdapat ' jenis parameter, yaitu "
erdasarkan penulisannya terdapat ' jenis parameter, yaitu " parameter 0ormalparameter 0ormal (formal parameter)
(formal parameter) dan dan parameter aktualparameter aktual (actual parameter)(actual parameter).. Parameter 0ormalParameter 0ormal adalah adalah parameter yang
parameter yang disertakan<dituliskan disertakan<dituliskan pada saat pada saat pende$inisian ppende$inisian prosedur<$ungsi rosedur<$ungsi itu sendiri.itu sendiri. %edangkan
%edangkan parameter aktualparameter aktual adalah parameter yang disertakan pada saat pemanggilan adalah parameter yang disertakan pada saat pemanggilan prosedur<$ungsi tersebut di blok program utama.
prosedur<$ungsi tersebut di blok program utama.
erdasarkan tujuannya terdapat jenis parameter $ormal " erdasarkan tujuannya terdapat jenis parameter $ormal " 1
1.. PPaarraammeetteer r mmaassuukkaann (inpu(input t paramparameter)eter), , yaiyaitu tu " " parparameameter ter yanyang g nilnilainainya ya berber$un$ungsigsi seb
sebagaagai i masmasukaukan n untuntuk uk proprosedsedur<ur<$un$ungsigsi, , jenjenis is parparameameter ter ini ini kakadandang g disdisebebut ut jugjugaa parameter nilai )
parameter nilai )value parameter value parameter atau atau parameter by value parameter by value*.*. '
'.. PPaarraammeetteer r kkeelluuaararann (outp(output ut paramparameter)eter), , yayaitu itu " " papararamemeteter r yayang ng beber$r$unungsgsi i ununtutukk menampung keluaran yang dihasilkan oleh prosedur.
menampung keluaran yang dihasilkan oleh prosedur. .
. PaPararamemeteter r mamasusukakan<n<kekeluluararan an ))inputinput$outp$output ut paramparameter eter * * adadalalah ah papararamemeteter r yayangng be
ber$r$unungsgsi i sesebabagagai i BpBpinintutuC C mamasusuk k dadan n kekeluluar ar babagi gi prprososededur ur tetersrsebebutut. . PaPararamemeteterr keluaran )
keluaran )output parameter output parameter * dan parameter masukan<keluaran )* dan parameter masukan<keluaran )input$output parameter input$output parameter ** kadang disebut parameter acuan )
kadang disebut parameter acuan )reference parameter reference parameter atau atau paramater by reference paramater by reference*.*.
10 10
(ntuk lebih jelasnya, kita langsung praktekannya saja, seperti biasa kita modi$ikasi listing (ntuk lebih jelasnya, kita langsung praktekannya saja, seperti biasa kita modi$ikasi listing program pada gambar 1', sehingga hasilnya seperti diba&ah ini.
program pada gambar 1', sehingga hasilnya seperti diba&ah ini.
+ambar 1.
+ambar 1. Program PersegipanjangProgram Persegipanjang , dengan parameter , dengan parameter
Par
Parameameter ter inpinput ut adadalaalah h parparameameter ter yanyang g nilnilainainya ya berber$un$ungsi gsi sesebagbagai ai masmasukaukann untuk prosedur. ilai yang dimasukan adalah nilai dari parameter aktual. Pada listing untuk prosedur. ilai yang dimasukan adalah nilai dari parameter aktual. Pada listing program gambar 1 diatas,
program gambar 1 diatas, parameter aktual<nyataparameter aktual<nyata (actual parameter)(actual parameter) adalah adalah pj pj dan dan lbrlbr11 sedangkan
sedangkan p p dan dan ll adalah parameter $ormaladalah parameter $ormal (formal parameter)(formal parameter). ama parameter aktual. ama parameter aktual dan parameter $ormal boleh berbeda, yang penting tipe datanya sama,
dan parameter $ormal boleh berbeda, yang penting tipe datanya sama, p p da dann ll yang yang ditulis di dalam kurung setelah nama prosedur seperti listing program diatas termasuk ke ditulis di dalam kurung setelah nama prosedur seperti listing program diatas termasuk ke dalam parameter input. aksudnya bah&a
dalam parameter input. aksudnya bah&a p p dan dan ll ber$ungsi sebagai pintu masuk databer$ungsi sebagai pintu masuk data ba
bagi gi prprososededurur Hitung_LuasHitung_Luas d daann Hitung_KelilingHitung_Keliling. . DaData ta yayang ng mamasusuk k kke e dadalalamm parameter
parameter p p berasal dari parameter aktual berasal dari parameter aktual pj pj, dan data yang masuk ke dalam parameter, dan data yang masuk ke dalam parameter l
l berasal dari parameter aktual berasal dari parameter aktual lbrlbr. ila diketikan di editor Turbo Pascal kurang lebih. ila diketikan di editor Turbo Pascal kurang lebih hasilnya sebagai berikut "
hasilnya sebagai berikut " Program
Program PersegiPanjangPersegiPanjang ; ; {&udul {&udul "rogram "rogram #tama}#tama} uses
uses $rt; $rt; Procedure
Procedure Hitung_LuasHitung_Luas(( p,l p,l:integer); :integer); {"rosedur {"rosedur dengan dengan parameter}parameter} var var l lss::iinntteeggeerr;; {{%%aarriiaabbeel l llookkaall}} begin begin ls:+pl; ls:+pl; 'riteln(0ua 'riteln(0uas s :,ls);:,ls); end; end; Procedure
Procedure Hitung_KelilingHitung_Keliling p,l p,l(( :i:intntegegerer);); {"ro{"rosesedudur r dedengngan an papararamemeteter}r} var var k keell::iinntteeggeerr;; {{%%aarriiaabbeel l llookkaall}} begin begin kel:+(2p)/(2l); kel:+(2p)/(2l); 'riteln(.e
'riteln(.eliling liling :,kel);:,kel); end; end; {+++program utama+++} {+++program utama+++} var var p&,lbr:integer; p&,lbr:integer; begin begin $lrs$r; $lrs$r; 'riteln("ro
'riteln("rogram gram #ntuk #ntuk eng*itung eng*itung luas luas dan dan keliling keliling persegipan&apersegipan&ang);ng); 'riteln;
'riteln; 'rite(asuk
'rite(asukan an pan&ang pan&ang : : );readln(p&);readln(p&);); 'rite(asuk
'rite(asukan an lebar lebar : : );readln(lb);readln(lbr);r); 'riteln;
'riteln; Hitung_Luas
Hitung_Luas(( pj,lbr pj,lbr); ); {emanggil {emanggil prosedur prosedur itung_0uas}itung_0uas} Hitung_Keliling
Hitung_Keliling(( pj,lbr pj,lbr); ); {emanggil {emanggil prosedur prosedur itung_.eliliitung_.eliling}ng} readln;
readln; end.
+ambar 15. Tampilan di 2ditor Turbo Pascal,
+ambar 15. Tampilan di 2ditor Turbo Pascal, Program PersegipanjangProgram Persegipanjang , dengan parameter , dengan parameter
.
. Pa%%in" Parameter Pa%%in" Parameter Pro
Proses ses penpengirgirimaiman n datdata a dardari i parparameameter ter aktaktual ual ke ke parparameameter ter $or$ormal mal disdisebuebutt dengan trans$er parameter
dengan trans$er parameter (passing parameter)%(passing parameter)% ama Parameter aktual dan parameter ama Parameter aktual dan parameter $ormal boleh berbeda, tetapi harus memiliki tipe data yang sama selain itu juga jumlah $ormal boleh berbeda, tetapi harus memiliki tipe data yang sama selain itu juga jumlah param
parameter aktuaeter aktual dan parametl dan parameter $ormal harus saer $ormal harus sama. ma. Di Turbo PascDi Turbo Pascal, al, paramparameter dapaeter dapatt dikirim<ditrans$er secara nilai
dikirim<ditrans$er secara nilai (by value)(by value) atau secara acuan atau secara acuan (by reference)%(by reference)%
#.
#. PenPengirgirimaiman paran parametmeter secer secarara nilaia nilai (&y value)(&y value) /i
/ika ka papararamemeteter r didikikiririm m sesecacara ra ninilalaii (by (by valvalue)ue), , makmaka a parparameameter ter $or$ormal mal yanyangg terletak di dalam pende$inisan prosedur akan berisi nilai yang dikirimkan dari parameter terletak di dalam pende$inisan prosedur akan berisi nilai yang dikirimkan dari parameter aktual, yang kemudian bersi$at lokal di prosedur tersebut. ila nilai parameter $ormal di aktual, yang kemudian bersi$at lokal di prosedur tersebut. ila nilai parameter $ormal di dalam prosedur tersebut berubah, maka tidak akan mempengaruhi nilai parameter aktual dalam prosedur tersebut berubah, maka tidak akan mempengaruhi nilai parameter aktual )nilai paramet
)nilai parameter er aktuaktual al tetaptetap*. *. PengPengiriman parametiriman parameter er secasecara ra nilai )nilai )by valueby value* biasanya* biasanya terjadi pada jenis parameter masukan
terjadi pada jenis parameter masukan (input parameter)%(input parameter)% -gar lebih jelas seperti biasa kita -gar lebih jelas seperti biasa kita modi$ikasi listing program +ambar 15, sehingga lebih pendek dan agar lebih sederhana modi$ikasi listing program +ambar 15, sehingga lebih pendek dan agar lebih sederhana kita buat hanya terdapat satu prosedur saja, hasil modi$ikasinya dapat dilihat pada gambar kita buat hanya terdapat satu prosedur saja, hasil modi$ikasinya dapat dilihat pada gambar diba&ah ini.
diba&ah ini.
1' 1'
+ambar 19.
+ambar 19. Program PersegipanjangProgram Persegipanjang , dengan pengiriman parameter secara nilai, dengan pengiriman parameter secara nilai
ilai!
ilai!nilai parametenilai parameter r aktuaaktuall pj pj ,, lbrlbr dandan luas luas di dalam blok program utamadi dalam blok program utama dik
dikirimirimkan ke kan ke parparameameter ter $or$ormalmal p, p, ll dandan lsls di prosedudi prosedur r Hitung_Luas Hitung_Luas. . DenDengangan demikian, nilai parameter
demikian, nilai parameter p, p, ll dandan ls ls di prosedur di prosedur Hitung_LuasHitung_Luas akan berisi nilai yang akan berisi nilai yang sama
sama dengdengan an paramparameter eter pjpj ,, llbbrr dandan l luuaass di dalam blok program utama. iladi dalam blok program utama. ila program dijalankan maka hasilnya seperti diba&ah ini.
program dijalankan maka hasilnya seperti diba&ah ini.
+ambar 16. Tampilan
+ambar 16. Tampilan program hasil running program hasil running 1
1 Program PersegiPanjangProgram PersegiPanjang ; ; {&udul {&udul "rogram "rogram #tama}#tama} 2
2 usesuses $rt; $rt;
Procedure Hitung_LuasProcedure Hitung_Luas(p,l,ls:int(p,l,ls:integer); eger); {"rosedur {"rosedur dengan dengan parameter}parameter} begin begin 4 4 ls:+pl; ls:+pl; 5 5 'riteln(p 'riteln(p + + ,p);,p); 7 7 'riteln(l 'riteln(l + + ,l);,l); 8 8 'riteln(ls 'riteln(ls + + ,ls);,ls); ! ! end;end; 19
19 {+++program utama+++}{+++program utama+++} 11 11 varvar 12 12 p&,lbr,luas:integer; p&,lbr,luas:integer; 1" 1" begin begin 13 13 $lrs$r; $lrs$r; 14
14 'riteln("ro'riteln("rogram gram #ntuk #ntuk eng*itung eng*itung luas luas persegipan&persegipan&ang);ang); 15 15 p&:+19; p&:+19; 17 17 lbr:+5; lbr:+5; 18 18 luas:+9; luas:+9; 1 1 'riteln; 'riteln; 29
29 Hitung_Luas Hitung_Luas(p&,lbr,luas)(p&,lbr,luas); ; {emanggil {emanggil prosedur prosedur itung_0uas}itung_0uas} 21
21 'riteln; 'riteln; 22
22 'riteln(p& 'riteln(p& + + ,p&);,p&); 2
2 'riteln(lbr 'riteln(lbr + + ,lbr);,lbr); 23
23 'riteln(lua'riteln(luas s + + ,luas);,luas); 24
24 readln; readln; 2#
Par
Parameameter ter $or$ormalmal p p akaakan n berberisi nilai isi nilai yanyang g samsama a dendengan paragan parametmeter er aktaktualual pj pj,, yaitu 10. Parameter $ormal
yaitu 10. Parameter $ormal l l akan berisi nilai yang sama dengan parameter aktual akan berisi nilai yang sama dengan parameter aktual lbr lbr,, yaitu 6. Parameter $ormal
yaitu 6. Parameter $ormal lsls akan berisi nilai yang sama dengan parameter aktual akan berisi nilai yang sama dengan parameter aktual luas luas,, ya
yaitu itu 0. 0. %e%elalanjnjututnynya a papada da prprososededurur Hitung_LuasHitung_Luas, , papararamemeteter r $o$ormrmalal lsls kemudian kemudian berganti nilai sebesar nilai
berganti nilai sebesar nilai p p dikali nilai dikali nilai l l, sehingga nilai parameter $ormal, sehingga nilai parameter $ormal lsls menjadi 10 menjadi 10 E 6 8 60. ilai akhir parameter $ormal
E 6 8 60. ilai akhir parameter $ormal p, l p, l dandan ls ls adalah " adalah " p $ 1% p $ 1% l $ # l $ # ls $ #% ls $ #% +am
+ambar bar diadiatas tas adadalaalah h concontoh toh penpengirgirimaiman n parparameameter ter secsecara ara nilnilaiai (by (by valuvalue)e),, pengiriman parameter seperti ini si$atnya lokal, maksudnya perubahan nilai parameter di pengiriman parameter seperti ini si$atnya lokal, maksudnya perubahan nilai parameter di dalam prosedur tidak akan mempengaruhi nilai parameter aktual di blok program utama, dalam prosedur tidak akan mempengaruhi nilai parameter aktual di blok program utama, sehin
sehingga nilai gga nilai paramparametereter luasluas tidak akan dipengtidak akan dipengaruharuhi i oleh perubaoleh perubahan nilaihan nilai lsls, jadi nilai, jadi nilai parameter
parameter luasluas masih tetap 0. masih tetap 0. /a
/adi di pepengngiriirimaman n papararamemeteter r sesecacara ra ninilalai i ))by by vavaluluee* * memmempupunyanyai i karkaraktakterierististikk sebagai berikut "
sebagai berikut " 1.
1. Data yData yang dang dikirim ikirim dari pdari paramearameter akter aktual dtual di blok i blok progrprogram utam utama ke ama ke paramparameter $oeter $ormal rmal didi prosedur adalah nilai dari datanya bukan alamat memori letak
prosedur adalah nilai dari datanya bukan alamat memori letak dari datanya.dari datanya. '.
'. ProProsedsedur<ur<#un#ungsi yang menegsi yang menerimrima a nilnilai ai ini akan menyini akan menyimpimpan data tersean data tersebut di but di alaalamatmat memori yang berbeda dari nilai aslinya yang digunakan oleh bagian program yang memori yang berbeda dari nilai aslinya yang digunakan oleh bagian program yang memanggil $ungsi<prosedur tersebut di blok program utama.
memanggil $ungsi<prosedur tersebut di blok program utama. .
. KarKarena terdena terdapaapat t alaalamamat t memmemori yang berbori yang berbedaeda, , makmaka a perperubaubahan nilahan nilai i di $ungsdi $ungsi i tidtidakak akan merubah nilai asli di
akan merubah nilai asli di bagian program yang memanggil prosedur<$ungsi tersebut.bagian program yang memanggil prosedur<$ungsi tersebut.
15 15
$.
$. PenPengirgirimaiman paran parametmeter secer secarara acuaa acuann (&y re'erence)(&y re'erence)
ila parameter dikirimkan secara acuan
ila parameter dikirimkan secara acuan (by refence)(by refence), maka , maka perubahan!perubaperubahan!perubahanhan yang terjadi pada nilai parameter $ormal di prosedur akan mempengaruhi nilai parameter yang terjadi pada nilai parameter $ormal di prosedur akan mempengaruhi nilai parameter akt
aktual ual di di bloblok k proprogragram m utautama. ma. /en/enis is parparameameter ter ini ini diddidekleklaraarasiksikan an di di daldalam am proprosedsedurur deng
dengan an mengmenggunagunakan kata kan kata cadacadanganngan var var . %eperti biasa, kita modi$ikasi program pada. %eperti biasa, kita modi$ikasi program pada gambar 19, yaitu dengan menambahkan kata var pada paramaternya, sehingga hasilnya gambar 19, yaitu dengan menambahkan kata var pada paramaternya, sehingga hasilnya sebagai berikut "
sebagai berikut "
+ambar 17.
+ambar 17. Program PersegipanjangProgram Persegipanjang , dengan , dengan pengiriman parameterpengiriman parameter by referenceby reference
ilai!
ilai!nilai parametenilai parameter r aktuaaktuall pj pj ,, lbrlbr dandan luas luas di dalam blok program utamadi dalam blok program utama dikirimkan ke parameter $ormal
dikirimkan ke parameter $ormal p, l p, l dandan ls ls di prosedur di prosedur Hitung_Luas Hitung_Luas. Tetapi karena. Tetapi karena penulisan kata
penulisan kata varvar s sebeluebelumm lsls pada paramete pada parameter r $orma$ormal, maka parametel, maka parameterr lsls ber$ungsi ber$ungsi sebagai parmeter input<output. /enis pengiriman parameter seperti ini disebut pengiriman sebagai parmeter input<output. /enis pengiriman parameter seperti ini disebut pengiriman pa
pararamemeteter r sesecacara ra acacuauan n ))by by rerefefencncee*. *. %e%ehihingngga ga hahasisil l peperhrhititunungagan n di di prprososededurur Hitung_Luas
Hitung_Luas yayang ditng ditamampupung ding di lsls akakan dile&an dile&atkatkan ke an ke parparameameterter lsls di proseddi prosedurur ter
tersebsebut, ut, selselanjanjutnutnya ya dikdikirimirimkan kan kemkembalbali i ke ke parparameameterter luasluas di di bloblok k proprogragram m utautama.ma. 1
1 Program Program PersegiPanjangPersegiPanjang ; ; {&udul {&udul "rogram "rogram #tama}#tama} 2
2 usesuses $rt; $rt;
ProcedureProcedure Hitung_LuasHitung_Luas(p,l:integer; %ar ls:integer);(p,l:integer; %ar ls:integer);{"rosedur dgn{"rosedur dgn parameter} parameter} begin begin 4 4 ls:+pl; ls:+pl; 5 5 'riteln(p 'riteln(p + + ,p);,p); 7 7 'riteln(l 'riteln(l + + ,l);,l); 8 8 'riteln(ls 'riteln(ls + + ,ls);,ls); ! ! end;end; 19
19 {+++program utama+++}{+++program utama+++} 11 11 varvar 12 12 p&,lbr,luas:integer; p&,lbr,luas:integer; 1" 1" begin begin 13 13 $lrs$r; $lrs$r; 14
14 'riteln("ro'riteln("rogram gram #ntuk #ntuk eng*itung eng*itung luas luas persegipan&anpersegipan&ang);g); 15 15 p&:+19; p&:+19; 17 17 lbr:+5; lbr:+5; 18 18 luas:+9; luas:+9; 1 1 'riteln; 'riteln; 29
29 Hitung_Luas Hitung_Luas(p&,lbr,luas(p&,lbr,luas); ); {emanggil {emanggil prosedur prosedur itung_0uas}itung_0uas} 21
21 'riteln; 'riteln; 22
22 'riteln(p& 'riteln(p& + + ,p&);,p&); 2
2 'riteln(lbr 'riteln(lbr + + ,lbr);,lbr); 23
23 'riteln(lua'riteln(luas s + + ,luas);,luas); 24 24 readln; readln; 2# 2# end.end. 2 2 1 1 3 3
Dengan demikian parameter
Dengan demikian parameter lsls di prosedur di prosedur Hitung_LuasHitung_Luas akan berisi nilai yang sama akan berisi nilai yang sama dengan parameter
dengan parameter lu luasas di dalam blok progdi dalam blok program utamram utama a yaiyaitutu #%#%. Pada gambar diatas. Pada gambar diatas diberikan nomor urut 1, ' dan untuk menggambarkan urutan langkah trans$er parameter diberikan nomor urut 1, ' dan untuk menggambarkan urutan langkah trans$er parameter dan juga menggunakan &arna berbeda agar
dan juga menggunakan &arna berbeda agar mudah membedakannnya.mudah membedakannnya. ila program dijalankan maka hasilnya seperti diba&ah ini.
ila program dijalankan maka hasilnya seperti diba&ah ini.
+ambar 1;. Tampilan
+ambar 1;. Tampilan program hasil running program hasil running
Peng
Pengiriman parameteiriman parameter r secarsecara a acuaacuan n ))by by refencrefencee* * biabiasansanya ya terterjadjadi i padpada a jenjenisis parameter keluaran )
parameter keluaran )output parameter output parameter * dan parameter masukan<keluaran )* dan parameter masukan<keluaran )input$outputinput$output parameter
parameter *. Pengiriman parameter secara acuan )*. Pengiriman parameter secara acuan )by referenceby reference* mempunyai karakteristik* mempunyai karakteristik sebagai berikut "
sebagai berikut " 1.
1. Pada saPada saat pengiat pengiriman niriman nilai, yang dlai, yang dikirim darikirim dari parameti parameter aktuaer aktual di blok progral di blok program utamam utama ke parameter $ormal
ke parameter $ormal di prosedur adadi prosedur adalah alamat letak dlah alamat letak dari nilai datanya ari nilai datanya bukan.bukan. '.
'. ProProsedsedur<ur<#un#ungsi yang menegsi yang menerimrima a nilnilai ai ini akan menggini akan menggunaunakakan n alaalamat memomat memori ri yanyangg sama dengan nilai aslinya yang digunakan oleh bagian program yang memanggil sama dengan nilai aslinya yang digunakan oleh bagian program yang memanggil $ungsi<prosedur tersebut di blok program utama.
$ungsi<prosedur tersebut di blok program utama. .
. KaKarerenna a mmenenggggununaakakan n aalalamamat t mmememorori i yayanng g sasamama, , mmakaka a peperurubabahahan n nnililaai i ddii pr
prososededurur<$<$unungsgsi i akakan an memerurubabah h ninilalai i asasli li di di babagigian an prprogograram m yayang ng mememamangnggigill prosedur<$ungsi tersebut.
prosedur<$ungsi tersebut.
16 16
H.
H. PenPenuliulisan san FunFungsigsi (Function)(Function)
-pa yang dimaksud dengan $ungsi. #ungsi tidak j
-pa yang dimaksud dengan $ungsi. #ungsi tidak jauh berbeda dengan prosedur,auh berbeda dengan prosedur, yai
yaitu tu suasuatu tu modmodul ul proprogragram m terterpispisah ah dadari ri proprogam gam utautama ma yanyang g dildiletaetakan kan daldalam am bloblokk tersendiri yang ber$ungsi sebagai bagian dari program. amun $ungsi memiliki perbedaan tersendiri yang ber$ungsi sebagai bagian dari program. amun $ungsi memiliki perbedaan men
mendasdasar ar dendengan gan proprosedsedur ur yaiyaitu tu " " $un$ungsi gsi memmemberberikaikan n nilnilai ai balbalikik (return)(return) sedangkan sedangkan prosedur tidak. ara penulisan $ungsi di Turbo Pascal seperti
prosedur tidak. ara penulisan $ungsi di Turbo Pascal seperti diba&ah ini "diba&ah ini "
+ambar 14. ara Penulisan #ungsi +ambar 14. ara Penulisan #ungsi
+ambar '0. %truktur blok program beserta #ungsi +ambar '0. %truktur blok program beserta #ungsi
/ika kita ketikan di editor Turbo Pascal, kira!kira tampilannya seperti terlihat pada /ika kita ketikan di editor Turbo Pascal, kira!kira tampilannya seperti terlihat pada gambar diba&ah ini "
gambar diba&ah ini " &unction
&unction Nama_&ungsi Nama_&ungsi(param_formal:tipe_param,666):tipe_*asil;(param_formal:tipe_param,666):tipe_*asil;
var var
{bagian deklarasi fungsi, sifatnya lokal} {bagian deklarasi fungsi, sifatnya lokal}
begin begin statement1; statement1; statement2; statement2; ………… ………… !tatementn; !tatementn; ama_<ungsi:+*asil; ama_<ungsi:+*asil; end; end; Program PersegiPanjang; Program PersegiPanjang; uses $rt; uses $rt; &unction
&unction LuasLuas(p,l:integer ):integer;(p,l:integer ):integer;
begin begin 0uas:+pl; 0uas:+pl; end; end; {+++program utama+++} {+++program utama+++} var var p&,lbr:integer; p&,lbr:integer; begin begin $lrs$r; $lrs$r; 'riteln("rogram
'riteln("rogram #ntuk #ntuk eng*itung eng*itung luas luas persegipan&ang);persegipan&ang); 'riteln;
'riteln;
'rite(asukan
'rite(asukan pan&ang pan&ang : : );readln(p&););readln(p&); 'rite(asukan
'rite(asukan lebar lebar : : );readln(lbr););readln(lbr); 'rite(0uasnya
'rite(0uasnya + + ,,LuasLuas(p&,lbr));(p&,lbr)); readln; readln; end. end. 3 3 2 2 1 1
+ambar '1. Tampilan di 2ditor
+ambar '1. Tampilan di 2ditor Turbo Pascal,Turbo Pascal, Program
Program PersegipanPersegipanjangjang dengan #ungsidengan #ungsi
%ama seperti prosedur, untuk mengakses setiap #ungsi kita harus memanggil %ama seperti prosedur, untuk mengakses setiap #ungsi kita harus memanggil namanya. #ungsi juda dapat memiliki parameter, tetapi parameter yang terdapat dalam namanya. #ungsi juda dapat memiliki parameter, tetapi parameter yang terdapat dalam $ungsi selalu merupakan parameter masukan )
$ungsi selalu merupakan parameter masukan )input parameter input parameter *.*. Tipe 2asilTipe 2asil di dalam suatu di dalam suatu $ungsi merupakan tipe nilai balik )
$ungsi merupakan tipe nilai balik )returnreturn* * yang dyang diberikan iberikan oleh $uoleh $ungsi. ila ngsi. ila kita perkita perhatikanhatikan listin
listing g progrprogram am diatadiatas, s, terdaterdapat pat sebusebuah ah #ung#ungsi<si<FunctionFunction dendengan namagan nama LLuuaass yangyang
memiliki parameter
memiliki parameter p p dandan ll, sedangkan tipe nilai balik ), sedangkan tipe nilai balik )returnreturn* yang dihasilkan oleh $ungsi* yang dihasilkan oleh $ungsi terse
tersebut adalahbut adalah inte"er inte"er . Pada contoh diatas. Pada contoh diatas LuasLuas digunakan sebagai nama $ungsi, dan digunakan sebagai nama $ungsi, dan
di
didadalalam m $u$ungngsi si tetersrsebebutut,, LLuuaass digdigunaunakan kan sebsebagaagai i varvariabiabel el ununtuk tuk menmenampampung ung hashasilil
perhitungan pada $ungsi tersebut. perhitungan pada $ungsi tersebut.
-pakah
-pakah suatu suatu modul modul program program harus harus dibuat dibuat menjadi menjadi $ungsi $ungsi atau atau prosedur prosedur ,, ja&abannya
ja&abannya adalah adalah terserah terserah anda, anda, karena karena ini ini semua semua tergantung tergantung dari dari kebutuhan kebutuhan dandan kemampuan seorang programmer. amun biasanya $ungsi digunakan bila suatu modul kemampuan seorang programmer. amun biasanya $ungsi digunakan bila suatu modul program mengembalikan suatu nilai sedangkan prosedur digunakan untuk menghasilkan program mengembalikan suatu nilai sedangkan prosedur digunakan untuk menghasilkan sekumpulan aksi. %emoga tulisan ini dapat berman$aat bagi setiap pembacanya, bila ada sekumpulan aksi. %emoga tulisan ini dapat berman$aat bagi setiap pembacanya, bila ada kririk dan saran silahkan kirim ke
kririk dan saran silahkan kirim ke " rohmatgFyahoo.com." rohmatgFyahoo.com.
1; 1;
3e0erensi 4 3e0erensi 4
!! //ooggiiaanntto o GGaarrttoonnoo, , --, , PPhh. . DD.., , BBKonsKonsep ep asar Pemrograsar Pemrograman Ba2asa aman Ba2asa CCC, -ndiC, -ndi Hogyakarta, '00
Hogyakarta, '00
!! IIiinnaallddi i uunniirr, B, BAlgoritma dan Pemrograman dalam Ba2asa Pascal dan C Buku #Algoritma dan Pemrograman dalam Ba2asa Pascal dan C Buku # C,C, @n$ormatika andung, '005.
@n$ormatika andung, '005.
!! IIiinnaallddi i uunniirr, B, BAlgoritma dan Pemrograman dalam Ba2asa Pascal dan C Buku $Algoritma dan Pemrograman dalam Ba2asa Pascal dan C Buku $ C,C, @n$ormatika andung, '001.
@n$ormatika andung, '001.
!! @@rr. -. -bbdduul kl kaaddiirr, B, BPemrPemrograograman man PascPascal al !eng!enggunagunakan kan TurbTurbo o PascPascal al ).56B).56Borlanorlandd Pascal ).5 !emba2as Pemrograman Berorientasi 7bjek Buku $
Pascal ).5 !emba2as Pemrograman Berorientasi 7bjek Buku $C, -ndi Hogyakarta,C, -ndi Hogyakarta, '00'.
'00'.
3o2m
3o2mat at unauna8an8an, , aahihir r di di %u%ummeendndaanng g ! ! //aa&a &a ararat at ,, me
menanamamatktkan an pependndididikikan an mumulalai i dadari ri TKTK!%!%D!D!%%P!P!%%- - didi %u
%umemedadangng. . uululus s D D aananajejememen n inin$o$ormrmatatikika a %T%T@@K!DK!D@@ Tasikmalaya
Tasikmalaya Tahun '00Tahun '005. %aat ini sedang 5. %aat ini sedang menyelesaikan menyelesaikan studistudi %1
%1 di di /u/ururusasan n TeTeknknik ik @n@n$o$ormrmatatikika a (n(niviverersisitatas s %%ilili&i&anangigi Tasikmalaya.
Tasikmalaya. %a
%angangat t tertertartarik ik dendengagan n tekteknolnologi ogi in$in$ormormasi asi dan dan komkomputputer,er, ter
terutautama ma dendengagan n DatDatabaabasese, , >>P>>P, , ininuE, uE, Jeb Jeb ProProgragraminming,g,
eett&&oorrkkiinng g jjuugga a --nniimmaassii. . DDaappaat t ddiihhuubbuunnggi i ddii rohmatgFyahoo.com