PROSEDUR DAN FUNGSI

PROSEDUR DAN FUNGSI

Konsep subprogram atau modul merupakan konsep yang sangat bermanfaat dalam penyusunan sebuah program yang besar. Subprogram atau modul berkembang sejalan dengan teknik pemrograman terstruktur, yaitu membagi masalah yang besar menjadi masalah-masalah kecil yang diselesaikan dalam sebuah subprogram. Jika subprogram telah benar untuk memecahkan masalah-masalah kecil, maka diharapkan dalam penyusunan program yang besar, program dapat lebih disederhanakan sehingga memudahkan memecahkan masalah utama.

Dalam Pascal ada 2 macam subprogram, yaitu prosedur ( procedure ) dan fungsi ( function ). Bentuk umum penulisan prosedur atau fungsi dalam Pascal adalah:

PROGRAM na ma ( f i l e 1, f i l e 2, f i l e 3) ; CONST

de kl a r a s i kons t a nt a ; VAR

de kl a r a s i va r i a be l ; TYPE

de kl a r a s i t ype ; LABEL

de kl a r a s i l a be l ; FUNCTI ON

de kl a r a s i f ungs i ; PROCEDURE

de kl a r a s i pr os e dur ;

PROCEDURE l a i n1; BEGI N

s t a t e me nt 1; s t a t e me nt 2; ...

END;

FUNCTI ON l a i n2: t i pe da t a ; BEGI N

BEGI N s t a t e me nt 1;

s t a t e me nt 2; s t a t e me nt 3; ...

END.

Re fe re nsi Pa sc a l 61

Procedure

Prosedur mempunyai struktur yang sama dengan struktur program, yaitu terdiri dari nama prosedur, deklarasi-deklarasi dan bagian utama dari prosedur itu sendiri. Di dalam prosedur tersebut, dimungkinkan ada prosedur lagi yang strukturnya sama. Bentuk prosedur dalam prosedur tersebut disebut dengan

prosedur tersarang ( nested procedure ). Struktur penulisan prosedur adalah sebagai berikut: PROCEDURE na ma pr oc e dur e ( da f t a r pa r a me t e r f or ma l ) ;

{ba gi a n de kl a r a s i } BEGI N

St a t e me nt 1; St a t e me nt 2; St a t e me nt 3;

... END;

Daftar parameter formal dan tanda kurung (setelah namaprocedure) bersifat opsional. Artinya bisa digunakan, bisa juga tidak. Parameter formal terdiri dari 2 macam, yaitu:

? Parameter nilai ( value parameter ) Parameter perubah ( variable parameter )

? Sebelum membahas kedua parameter tersebut, maka sebelumnya harus diketahui bagaimana mekanisme suatu pemanggilan prosedur. Misalnya diketahui sebuah program sebagai berikut: USES c r t ;

PROCEDURE t ul i s ( x, y: i nt e ge r ; s : s t r i ng) ; BEGI N

GOTOXY( x, y) ; WRI TE( s ) ;

END;

BEGI N Tul i s ( 10, 2, ’ He l l o Wor l d’ ) ; END.

Dari program di atas, yang dimaksud dengan parameter aktual adalah 10, 2, dan ‘Hello World’ (pada

pemanggilan prosedur tulis). Sedangkan pada deklarasi prosedur tulis, x, y, dan s disebut sebagai parameter

formal .

Mekanisme pemanggilan prosedur tulis tersebut adalah: Program bekerja dari program utama, yaitu memanggil procedure tulis. Pada waktu terjadi pemanggilan procedure tulis, maka isi parameter aktual diberikan diberikan pad a parameter formalnya. Nilai ini mungkin diproses dalam procedure tersebut. Nilai terakhir dari parameter formal tersebut TIDAK dikembalikan pada parameter aktualnya. Parameter seperti inilah yang disebut dengan parameter nilai . Yang dapat digunakan sebagai parameter nilai adalah: konstanta, variabel dan ekspresi.

62 Re fe re nsi Pa sc a l

VAR x, y: i nt e ge r ;

PROCEDURE t uka r ( va r a , b: i nt e ge r ) ; Va r c : i nt e ge r ; BEGI N c : =a ; a : =b;

b: =c ; END;

BEGI N x: =5; y: =1;

t uka r ( x, y) ; END.

Parameter aktual dari program di atas adalah x dan y. Sedangkan parameter formalnya adalah a dan b.

Dalam parameter formal, terdapat kata var yang menunjukkan bahwa parameter tersebut adalah parameter

perubah .

Pada waktu procedure yang mempunyai parameter perubah dipanggil, parameter aktual (x dan y) pada pemanggilnya akan digantikan parameter formal. Jadi yang diolah pada procedure di ata s adalah parameter aktualnya (x dan y). Konsekuensi pemanggilan procedure dengan menggunakan parameter perubah adalah setiap perubahan nilai yang terjadi dari parameter aktual (di dalam procedure) akan mengakibatkan turut berubahnya nilai parameter aktual (di dalam pemanggil atau program utama).

Yang dapat dijadikan parameter perubah adalah hanya variabel, sedangkan konstanta dan ekspresi TIDAK dapat dijadikan sebagai parameter perubah .

Function

Sebenarnya, secara prinsip fungsi sama seperti prosedur (sama-sama merupakan subprogram). Perbedaan fungsi dan prosedur adalah fungsi dapat langsung memberikan nilai kembali sedangkan pada procedure harus menggunakan parameter perubah agar dapat mengembalikan suatu nilai.

Bentuk umum suatu fungsi dalam Pascal adalah sebagai berikut:

FUNCTI ON na ma f ungs i ( da f t a r pa r a me t e r f or ma l ) : t i pe da t a ; {ba gi a n de kl a r a s i } BEGI N

St a t e me nt 1; St a t e me nt 2; St a t e me nt 3; ... na ma f ungs i : =ni l a i ;

END;

Re fe re nsi Pa sc a l 63

Dalam fungsi, semua parameter formal sebaiknya merupakan parameter nilai walaupun diperbolehkan menggunakan parameter perubah.

Rekursi

Proses rekursi adalah suatu proses di mana sebuah subprogram dapat memanggil dirinya sendiri. Penggunaan rekursi ini akan sangat membantu pemecahan-pemecahan soal yang tidak dapat diselesaikan dengan menggunakan teknik iterasi biasa.

Karena rekursi merupakan pemanggilan dirinya sendiri (procedure atau fungsi), maka dalam rekursi tersebut haruslah ada yang namanya proses terminasi/ point sentinel (kapan berhenti memanggil dirinya sendiri), ini menghindari proses rekursi yang tak terdefinisikan (terus menerus memanggil dirinya sendiri). Proses terminasi ini biasanya berupa kondisi. Perhatikan program di bawah ini: FUNCTI ON j uml a h( n: i nt e ge r ) : i nt e ge r ; BEGI N

I F n=1 THEN j uml a h: =1;

ELSE j uml a h: =j uml a h( n- 1) +n; END;

BEGI N wr i t e l n( j uml a h( 3) ) ; END.

Cara kerja rekursi adalah secara terbalik/ mundur sehingga terbentur dengan proses terminasi atau point sentinel. Setelah terbentur dengan point sentinel, maka proses akan berjalan maju dengan membawa proses perhitungan pada saat proses terbentur dengan point sentinel tadi.

Pada proses di atas, point sentinel adalah pada saat n=1. Selama n tidak sama dengan 1, maka function jumlah akan terus menerus dipanggil sampai terbentur dengan point sentinel (yaitu n=1).

Jika function jumlah dipanggil dengan: j uml a h( 3) ,

Maka proses yang terj adi adalah: Jumlah(3) akan memanggil: jumlah(2) + 3

Jumlah(2) akan memanggil: Jumlah(1) + 2 Jumlah(1) akan menghasilkan 1 (karena terbentur dengan point sentinel, sehingga tidak memanggil dirinya sendiri lagi).

64 Re fe re nsi Pa sc a l

Setelah terbentur dengan point sentinel (dengan membawa hasil 1), maka proses akan berjalan maju untuk menyelesaikan tugasnya, yaitu kembali pada:

Jumlah(1) + 2, karena jumlah(1) membawa atau bernilai 1, maka pada proses ini akan menghasilkan nilai 3. Nilai 3 ini akan dibawa ke pemanggil berikutnya, yaitu jumlah(2).

Pada jumlah(2) + 3, akan terjadi proses 3 + 3 (karena jumlah(2) membawa hasil 3), sehingga pemanggilan jumlah(3) akan menghasilkan 6.

Standard Input / Output

Sebuah program komputer, selalu bekerja dengan 3 tahap, yaitu: - Tahap 1 : MASUKAN - Tahap II : PROSES - Tahap III : KELUARAN

Contoh: Program untuk menghitung nilai dua bilangan bulat A dan B, maka:

Dalam bahasa Pascal: va r a , b, c : wor d;

Standard M asukan

Standard masukan pada Pascal adalah keyboard. Artinya semua masukan dimasukkan lewat keyboard. Standard output pada Pascal adalah monitor. Artinya semua output ditampilkan pada layar monitor.

Misalkan diminta untuk membuat program yang mencari nilai terbesar dari 1.000 buah data. Untuk program tersebut, entry data satu persatu melalui keyboard menjadi cara yang tidak efisien, karena setiap kali program di-RUN, akan meminta 1.000 masukan. Untuk itu, standard input dapat dialihkan ke sebuah file teks. Artinya, input tidak lagi dimasukkan dari keyboard, melainkan lewat sebuah file teks. Nantinya file teks inilah yang dibaca setiap kali program di-RUN (sehingga user tidak perlu menginput lagi).

66 Re fe re nsi Pa sc a l

Pada Pascal, untuk merubah standard input ke file teks adalah dengan perintah:

As s i gn( i nput , na ma f i l e ) ; Re s e t ( i nput ) ;

Namafile pada perintah assign berupa string yang menunjukkan nama file untuk file yang hendak dibaca. Setelah kedua perintah tersebut, semua perintah READLN, langsung akan membaca dari namafile.

Standard Keluaran

Standard keluaran pada Pascal adalah layar monitor. Namun layar monitor hanya dapat menampilkan maksimal 25 baris dan 80 karakter tiap barisnya. Jika diminta untuk membuat program yang dapat menampilkan output lebih dari 25 baris, maka layar monitor tidak lagi dapat menjadi standard output yang baik.

Untuk merubah standard output pada Pascal: As s i gn( out put , na ma f i l e ) ;

Re wr i t e ( out put ) ;

Namafile berupa string yang menunjukkan nama file yang hendak dibuat / ditulis. nSetelah kedua perintah tersebut, hasil output (dari perintah write), akan ditulis pada namafile.

Cara lain untuk merubah standard input atau output adalah dengan mendeklarasikan sebuah variabel bertipe text.

Contoh:

Va r f i nput , f out put : t e xt ; Be gi n a s s i gn( f i nput , ’ I nput . i n’ ) ; r e s e t ( f i nput ) ; r e a dl n( f i nput , a , b, c ) ;

c l os e ( i nput )

{. . . pr os e s . . . }

a s s i gn( f out put , ’ out put . out ’ ) ; r e wr i t e ( f out put ) ; wr i t e ( f out put , ’ s ome t hi ng’ ) ;

c l os e ( f out put ) ; End.

Re fe re nsi Pa sc a l 67

Perlu diperhatikan agar seperlunya saja membuka file. Jika file tersebut sudah tidak diperlukan lagi, maka sebaiknya diberikan perintah close(f). Begitu juga untuk membuat file, jika output belum siap ditulis karena masih dalam proses, sebaiknya file tersebut tidak di-rewrite terlebih dulu.

68 Re fe re nsi Pa sc a l

INDEX

CASE OF · 57

A Character · 30, 39 CHR · 39

FAR · 17 Array · 30, 31, 40, 43

Aritmatika · 51

Comments · 12 Comp · 39

Field · 45 ARRAY · 49

File · 10, 17, 30, 31, 46, 47 ASCII · 18, 39

compiler 32 bit · 17

Completion · 12

FINALLY · 17 Assembler · 1, 7, 12 Assignment · 54, 55

Compound · 54, 55

CONST · 24, 25, 60

floating point · 8, 39

Constant · 30, 48

FOR – TO – DO · 54 FOR – TO / DOWNTO – DO · 56

Constant string · 30 Ctrl · 11, 13, 14, 15, 16, 19, 20, 21,

FORTRAN · 2, 3

Free Pascal · 7, 8, 10, 16, 17, 24

FUNC · 36 Bahasa C · 2, 5

Function · 17, 26, 47, 62 BAHASA C · 5

FUNCTION · 24, 26, 60, 62, 63

Based Types · 30, 33 fungsi · 7, 17, 18, 25, 28, 33, 34, 35, BASIC · 2, 4

36, 39, 40, 60, 62, 63 Biner · 29

Debug · 14, 15, 16 DEC · 33

Blok · 11, 21 Bookmark · 11

53 48 Goto · 14, 28, 54 Byte · 30, 37

difference · 44 Directive · 12 Double · 39, 48

E Hex Number, · 12

C++ · 6 HIGH · 33 Calculator · 19

himpunan · 43, 51, 53 Cardinal · 37

Enumerated · 30, 33

CASE – OF · 54

equality · 44 EXCEPT · 17

Re fe re nsi Pa sc a l 69

I PROCEDURE · 4, 24, 26, 60, 61, 62

membership · 44

modul · 60

Procedure Call · 54 program · 1, 2, 3, 4, 5, 6, 7, 8, 10, 14,

IF – THEN – ELSE · 54, 55, 56

44, 47, 54, 55, 60, 61, 62, 63, 65, INC · 33

indentifier · 29 prosedur · 7, 25, 28, 33, 39, 57, 60, inequality · 44

prosedur dec · 39 Input · 65, 66

Null terminated string · 30

prosedur inc · 39 Insert · 11, 22

Numbers · 12, 29

PROTECTED · 17 Int64 · 37

PUBLIC · 17 Integer · 26, 30, 37, 41, 45, 47, 48, 49,

PUBLISHED · 17

50 Integrated Developing Environment ·

ordinal types · 30 Output · 65

Keluaran · 66

RAISE · 17 Kompiler · 2

Real · 30, 38, 39, 45, 47, 49, 50

parameter formal · 61, 62, 63

real types · 30 record · 17, 28, 45, 46, 47, 49, 59

Parameter list · 17

parameter nilai · 61, 63

Record · 30, 31, 45

Rekursi · 63 LABEL · 24, 25, 60

Repeat – Until · 57 REPEAT – UNTIL · 54

Logika · 52

reserved word · 17, 29 Longint · 30, 37, 51, 52

Reserved Word, · 12 LOW · 33

Reserved Words · 27 Run · 13, 14

pred · 34, 35, 39 PRED · 33

M Preferences · 12

Procedural · 47 Procedure · 26, 47, 54, 61

Masukan · 65

70 Re fe re nsi Pa sc a l

S Subrange · 30, 35

union · 44 Set · 30, 31, 43

SUCC · 33

UpCase · 40, 41 SET · 9, 49

superset · 44

Symbol, · 12

Short strings · 30

Shortint · 30, 37 shortstring · 41

Single · 39 VAR · 5, 24, 25, 60, 62 Sintaks · 26, 46, 54, 55, 56, 57, 58, 59

smallint · 37 Smallint · 37

Tabs · 12

statement · 25, 27, 46, 51, 52, 54, 55,

Tipe Prosedur · 31

Watch · 15, 20 string · 12, 26, 28, 30, 40, 41, 42, 46,

TRY · 17

Turbo Pascal · 8, 10, 16, 17, 28, 47

While – Do · 58

WHILE – DO · 54 String · 6, 30, 40, 41, 42, 52

Type · 30, 34, 39, 42, 45, 47

Whitespace · 12 Strings · 12, 30

TYPE · 24, 25, 60

With · 46, 59 Structured types · 31

WITH · 54 Subprogram · 60

Word · 12, 29, 30, 37

Re fe re nsi Pa sc a l 71

Lampiran

Pada lampiran ini akan diberikan contoh soal dasar teori Pascal dan pembahasannya.

Soal 1.

Deklarasi konstanta manakah yang salah? a . c ons t r a t a - r a t a =10;

b. c ons t t i nggi ba da n=150; c . c ons t pi =22/ 4; d. c ons t s uhu=20000;

e . c ons t dua xt i ga =8; Jawab:

a. const rata-rata=10

Pembahasan: Salah satu syarat dari penamaan identifier adalah: Karakter ke dua dan selanjutnya dapat berupa huruf, angka, atau underscore

Soal 2.

Manakah yang benar dari deklarasi di bawah ini?

a. Pr ogr a m a bc ; Va r x, y: r e a l ;

b. Pr ogr a m pqr s t u2343; Va r x, y=r e a l ;

c. Pr ogr a m 4343; Va r x: =bool e a n; b: =i nt e ge r ; d. Pr ogr a m ku; va r z , y: c ha r =’ a ’ ; e. Pr ogr a m ga mpa ng; Va r a : byt e , c : r e a l ;

Jawab: a . Pr ogr a m a bc ; Va r x, y: r e a l ;

Pembahasan:

- Opsi b, c dan d salah karena memberikan tidak memberikan tipe variabel dengan tanda: . - Opsi e salah karena memisahkan antar variabel dengan tanda , (s eharusnya tanda ; )

72 Re fe re nsi Pa sc a l

Soal 3.

Manakah yang mendeklarasikan tipe enumerasi dengan tepat? a . Type a =i nt e ge r ;

b. Type a =1. . 300; c . Type a =( ba i k, j e l e k, bur uk) ; d. Type a =[ ba i k, j e l e k, bur uk] ; e . Type a =ba i k, j e l e k, bur uk;

Jawab: c . Type a =( ba i k, j e l e k, bur uk) ;

Soal 4.

Bagaimana mendeklaras ikan konstanta bertipe array 3 x 3? a . Cons t a : a r r a y[ 3, 3] =( ( 1, 2, 3) , ( 2, 3, 4) ,

b. Cons t a [ 3, 3] =( 1, 2, 3, 2, 3, 4, 3, 4, 5) ; c . Cons t a : a r r a y[ 1. . 3, 1. . 3] of byt e =

( ( 1, 2, 3) , ( 2, 3, 4) , ( 3, 4, 5) ) ; d. Cons t a : a r r a y[ 1. . 3, 1. . 3] of byt e = ( 1, 2, 3 2, 3, 4 3, 4, 5) ;

e . Cons t a : a r r a y[ 1. . 3] of a r r a y[ 1. . 3] of byt e = ( ( 1, 2, 3) , ( 2, 3, 4) ,

( 3, 4, 5) ) ; Jawab:

c . Cons t a : a r r a y[ 1. . 3, 1. . 3] of byt e =

atau e . Cons t a : a r r a y[ 1. . 3] of a r r a y[ 1. . 3] of byt e

Pembahasan: Baik c maupun e dapat mendeklarasikan array 3 x 3.

Soal 5.

Apakah output program berikut ini? va r U: I nt e ge r ,

be gi n U: =3;

Wr i t e l n( ‘ Umur s a ya ' , U: 3, ' t a hun' ) , End.

Re fe re nsi Pa sc a l 73

a. Umur saya 3 tahun

b. Umur saya 1 tahun

c. Umur saya 3 tahun

d. Umur saya 003 tahun

e. Umur saya 3.00 tahun

Jawab:

c. Umur saya 3 tahun

Soal 6.

Bagaimana cara anda mengetikkan input untuk program berikut ini? va r Umur , Ti nggi , Be r a t : Re a l ,

be gi n Wr i t e ( ‘ Ma s ukka n umur , t i nggi ' da n be r a t ba da n Anda : ' ) ; Re a dl n( Umur , Ti nggi , Be r a t ) ;

r : =147. 0; wr i t e i n( r : 0: 5) ,

e nd.

Apa tampilan program di atas ?

Penulisan bilangan real pada statement writeln adalah:

74 Re fe re nsi Pa sc a l

wr i t e l n( OutputVariable : NumChars [: Decimals ] ) Penulisan bilangan real pada statement writeln adalah: NumChars adalah banyaknya space yang disiapkan untuk penulisan, dan Decimals adalah banyaknya angka desimal (angka di belakang koma).

Soal 8.

va r i , j : byt e ; be gi n i : =100; j : =200; wr i t e l n( i *j ) e nd.

Apa tampilan program di atas?

Perhatikan source code di bawah inii va r

Ma i l : wor d; be gi n Ma i l : =’ TOKI ’ ; wr i t e i n ( ‘ TOKI ’ ) ; wr i t e l n ( Ma i l ) ;

e nd.

Output yang tercetak di layar setelah eksekusi adalah

a. TOKI

b. TOKITOKI

c. TOKITOKITOKI

d. terjadi compiler error

e. tidak ada jawaban yang benar

Jawab:

d. terjadi compiler error

Pembahasan:

Tipe data untuk variabel Mail adalah berjenis numerik (Word) sehingga tidak dapat diberikan nilai yang berjenis teks atau string 0101 shl 2 = 10100 = 20)

Re fe re nsi Pa sc a l 75

Soal 10.

Bagaimana keluaran program di bawah ini? Va r

I : i nt e ge r ; Be gi n I : =2; Ca s e I of 1, 3, 5, 7, 9: wr i t e l n( ‘ Ga nj i l ’ ) ; 2: wr i t e l n( ‘ Pr i ma ge na p’ ) ; 0. . 10: wr i t e l n( ‘ Nor ma l ’ ) ;

e l s e wr i t e l n( ‘ Ti da k nor ma l ’ ) ; e nd; e nd;

a. Prima genap

b. Normal

c. Prima genap Normal

d. Normal Prima genap

e. Prima genap Tidak normal

Jawab:

a. Prima genap

Pembahasan: Struktur kendali case akan segera keluar untuk menjalanakan statement berikutnya setelah menemukan nilai yang tepat.

Perhatikan program di bawah ini:

va r I , j , k: i nt e ge r ; L: byt e ; be gi n i : =3; j : =4; k: =32; L: =0; {I f – 1 }

i f i + j a nd k =0 t he n wr i t e l n( ‘ Be t ul ’ ) else wr i t e l n( ‘ Sa l a h) ; {I f – 2 } i f ( i = 2) a nd ( j < i ) or ( k > i ) t he n wr i t e l n( ‘ Be t ul ’ )

76 Re fe re nsi Pa sc a l

else wr i t e l n( ‘ Sa l a h) ; {I f – 3} i f not L i n [ 1. . 120] t he n wr i t e l n( ‘ Be t ul ’ ) else wr i t e l n( ‘ Sa l a h’ ) ; e nd.

Program ini berisi tiga perintah if then else yang saling tidak berkaitan, masing-masing IF diberi nama IF – 1, IF – 2, IF – 3.

Soal 11.

Perintah if manakah yang tidak dibenarkan:

e. Tidak ada if yang salah Jawab:

e. Tidak ada if yang salah

Pembahasan: Pada If – 1, ekspresi i+j and k adalah ekspresi matematika dengan urutan pengerjaan j and k kemudian ditambahkan dengan i. Ini merupakan ekspresi yang valid dalam bahasa Pascal Pada If – 3, ekspresi Not L akan dioperasikan terlebih dulu. Ini juga merupakan ekspresi yang valid dalam bahasa Pascal.

Soal 12.

Pada program di atas, if mana yang menghasilan output “Betul”?

e. Tidak ada if yang menghasilkan “Betul”

Jawab:

b. If - 2

Re fe re nsi Pa sc a l 77

Pembahasan: Urutan pengerjaan operator AND dan OR adalah AND akan dievaluasi terlebih dulu. Pada kondisi

pertama, ( i = 2) a nd ( j < i ) akan menghasilkan nilai FALSE, namun pada saat dievaluasi dengan menggunakan kondisi OR, yaitu (k>i), akan menghasilkan TRUE, sehingga yang dicetak adalah “Betul”

Soal 13.

Pada program di atas, manakah pernyataan yang benar?

a. Ekspresi not L in [1..120] ekivalen dengan L in [0,121..255]

b. Ekspresi I + J and K = 0 dalam if – 1 ekivalen dengan (I + J = 0 ) and (K = 0)

c. Kondisi pada if – 1 akan bernilai lain jika kondisi diubah menjadi (I + J) AND K = 0

d. Kondisi pada if – 2 akan bernilai lain jika kondisi diubah menjadi ((I=2) and (J<1)) or (k>1)

e. Kondisi pada if – 3 akan bernilai lain jika kondisi diubah menjadi {NOT L in [1..120]) OR (L in [121,122]) Jawab:

c. Kondisi pada if – 1 akan bernilai lain jika kondisi diubah menjadi (i + j) AND K = 0

Pembahasan: Hal ini disebabkan bahwa operator + dan AND yang dievaluasi terlebih dulu adalah operator AND. Jika tanda kurung diberikan untuk ekspresi (i+j), maka penjumlahan i dan j akan dijalankan terlebih dulu baru kemudian dioperasikan dengan AND.

Soal 14.

Berapa keluaran program bila pemakai memberi nilai M=9? Va r C, M, J : i nt e ge r ;

Be gi n J : =1; wr i t e ( ‘ M = ‘ ) ; r e a dl n( M) ; For c : =5 t o M do

J : = j * ( M- 4) ; Wr i t e l n( ‘ J = ‘ , J ) ; End.

a. J = 120

b. J = -120

c. J = 1

d. J = 24

e. Salah semua

Jawab:

e. Salah semua

78 Re fe re nsi Pa sc a l

Pembahasan: Dari perulangan di atas, instruksi j : =j * ( m- 4 ) akan diulang sebanyak 5 kali, sehingga dapat dirumuskan j adalah 5 x 5 x 5 x 5 = 3125.

Soal 15.

Va r i , j : Shor t i nt ; Be gi n f or i : =1 t o 200 do I nc ( j ) ; e nd.

Program diatas akan mengbasilkan:

a. Nilai j = 200;

b. Nilai j = 127;

c. Tidak dapal dipastikan

d. Terjadi error (code 76).

e. Program tidak dapat berhenti

Jawab:

d. Terjadi error (code 76).

Pembahasan:

Shortint adalah sebuah tipe data yang mempunyai jangkauan –128..127. Jika dipaksa diberikan nilai hingga 200, maka yang muncul adalah Error 76: Constant out of range.

unt i l i =10; i f h=j t he n wr i t e l n( ' GOLD' ) e l s e wr i t e l n( ' SI LVER' ) ;

e nd.

Apa keluaran program di atas

Re fe re nsi Pa sc a l 79

a. GOLD

b. SILVER

c. GOLD SILVER

d. SILVER GOLD

e. tidak ada keluaran

Jawab:

b . SILVER

Pembahasan:

h: =0; f or j : =1 t o 10 do i nc ( h) ; i : =1; j : =0;

Saat selesai mengeksekusi statement di atas, maka h akan bernilai 10, i bernilai 1 dan j bernilai 0. Selanjutnya program akan mengeksekusi statement:

r e pe a t i nc ( i ) ;

i nc ( j ) ; unt i l i =10;

Karena nilai i sebelumnya adalah 1, maka statement inc(i) dan inc(j) akan dijalankan sebanyak 9 kali, sehingga setelah keluar dari perulangan repeat until, nilai i akan bernilai 10 dan j bernilai 9.

i f h=j t he n wr i t e l n( ' GOLD' ) e l s e wr i t e l n( ' SI LVER' ) ;

Statement if di atas akan menjalankan statement sesudah else (karena nilai h tidak sama dengan j).

Output dari program di atas adalah

Program untuk 2 soal berikutnya 1. va r s : s t r i ng;

Output dari program di atas jika s=’SC!P!O’ adalah

a. s=’SC!!CS’

b. s=’SSSSSS’

c. s=’O!PP!O’

d. s=’CCCCCC’

e. s=’!O!O!O’

Jawab:

c. s=’O!PP!O’

Soal 19.

Output dari program di atas jika s=’HaShMaT’ dan baris ke-4 diubah menjadi "for i:=length(s) downto 1 " adalah

Re fe re nsi Pa sc a l 81

a. s=’TaMhMaT’

b. s=’HaShSaH’

c. s=’HHHHHHH’

d. s=’aaaaaaa’

e. s=’aHaHaHa’

Jawab:

b. s=’HaShSaH’

Soal 20.

f unc t i on ABC( k : i nt e ge r ) ; va r i , j : i nt e ge r ; be gi n j : =1; f or i : =l t o k do j : =j *2; ABC: =j ; e nd;

be gi n wr i t e l n( ABC( 4) ) ; e nd.

Apa keluaran program di atas ?

e. program tidak dapat dijalankan

Jawab:

e. program tidak dapat dijalankan

Pembahasan:

Soal ini merupakan soal jebakan. Perhatikan bahwa deklarasi dari sebuah function adalah: Function namafunction(parameter):tipe; Sebuah function harus mempunyai nilai kembali. Namun pada soal tidak terdapat nilai kembali.

Soal 21.

Func t i on Sum( c ons t A, B: I nt e ge r ) : I nt e ge r ; Be gi n

Sum: =A+B; e nd;

Be gi n Wr i t e l n( Sum( 5, 10) ) ; e nd.

82 Re fe re nsi Pa sc a l

Apa yang dihasilkan oleh program diatas.

e. Tidak bisa di compiJe.

Parameter const a,b:integer merupakan parameter konstanta (constant parameter).

Soal 22.

Be gi n As s i gn( Out put , ' ABC. TXT’ ) ; Re wr i t e ( Out pt ut ) ; Wr i t e ( ‘ GO GET GOLD’ ) ; Cl os e ( Out put ) ;

e nd. Program diatas akan menghasilkan:...

a. File'ABC’ dengan isi 'GO GET GOD’

b. Run-time error.

c. Tidak dapat dicompile karena variable 'Ouiput' tidak ada

d. Tidak menghasilkan apa-apa

e. Tidak ada yang benar

Jawab:

a. File 'ABC’ dengan isi 'GO GET GOD’

Pembahasan:

Perintah Assign(Output,’ABC.TXT’) adalah perintah yang mengarahkan standard output (keluaran) kepada file ABC.TXT. Jika tidak dirubah, maka standard output adalah pada monitor.

Soal 23.

Perintah mana yang tidak boleh digunakan untuk file bertipe text?

a. Assign

b. Reset

c. EOF

Re fe re nsi Pa sc a l 83

d. FilePos

e. Semua boleh digunakan untuk Text

Jawab:

d. FilePos

Pembahasan:

Perint ah FilePos adalah perintah untuk mengetahui posisi file pointer (penunjuk file), dan hanya dapat dioperasikan untuk file bertipe bukan text.

Gunakan program berikut ini untuk menjawab dua soal di bawah ini: pr ogr a m Uj i ;

va r T: Te xt ; i , j , k: i nt e ge r ; be gi n As s i gn( T, ' I NPUT. TXT’ ) ; Re s e t ( T) ; Re a dl n( T, i , j , k) ; Wr i t e l n( i , ’ ’ j , ’ ’ , k) ; Re a dl n( T, i ) ; Re a dl n( T, j ) ; Wr i t e l n( i , ’ ’ , j ) ; Cl os e ( T) ;

End.

Soal 24.

Misalkan file INPUT.TXT berisi baris-baris sebagai berikut:

Bagaimanakah output dari program tersebut?

a. 3149 526

b. 314

c. 314

84 Re fe re nsi Pa sc a l

d. 314

58

e. Terjadi runtime error karena isi file INPUT.TXT tidak sesuai untuk program ini.

Perintah Readln akan melakukan pembacaan di baris berikutnya. Perintah Readln pertama akan melakukan pembacaan pada file baris pertama, perintah Readln berikutnya melakukan pembacaan pada baris ke dua dan perintah Readln terakhir melakukan pembacaan pada baris ketiga.

Soal 25.

Bila isi file INPUT.TXT adalah sebagai befikut:

bagaimana output program ini?

a. 231

45

b. 100

32

c. 132

45

d. 132

56

e. Terjadi runtime error karena isi file INPUT.TXT tidak sesuai untuk program ini.

Jawab:

e. Terjadi runtime error karena isi file INPUT.TXT tidak sesuai untuk program ini

Dokumen yang terkait

BAB II KAJIAN TEORI - Institutional Repository | Satya Wacana Christian University: Evaluasi Kinerja Mengajar Guru Bahasa Inggris Pascasertifikasi Di SMA Negeri Sekecamatan Demak Tahun Pelajaran 2013/2014

0 0 38

BAB III METODE PENELITIAN - Institutional Repository | Satya Wacana Christian University: Evaluasi Kinerja Mengajar Guru Bahasa Inggris Pascasertifikasi Di SMA Negeri Sekecamatan Demak Tahun Pelajaran 2013/2014

0 0 14

BAB IV HASIL PENELITIAN DAN PEMBAHASAN - Institutional Repository | Satya Wacana Christian University: Evaluasi Kinerja Mengajar Guru Bahasa Inggris Pascasertifikasi Di SMA Negeri Sekecamatan Demak Tahun Pelajaran 2013/2014

0 0 22

Bahasa dan Sastra Indonesia

0 1 310

BAB 2 LANDASAN TEORI 2.1 Pengertian Komputer Dalam merancang sebuah sistem informasi, digunakan suatu alat pendukung yaitu komputer. Bahasa komputer berasal dari bahasa asing yaitu To Compute, yang artinya hitung. - Sistem Informasi Manajemen Koperasi Sim

0 3 11

BAB I PENDAHULUAN 1.1 Latar Belakang - Analisis Penggunaan Kata Pelengkap Buyu (补语) Dalam Kalimat Bahasa Mandarin Pada Koran Guoji Ribao 《国际日报》补语句子使用分析《Guójì Rìbào》Bǔyǔ Jùzi Shǐyòng Fēnxī

1 7 11

BAB II TINJAUAN PUSTAKA 2.1 Sanitasi Total Berbasis Masyarakat 2.1.1 Sejarah STBM - Sistem Kendali Pintu Parkir Otomatis Menggunakan Bahasa C Berbasis Atmega16

0 0 41

BAB I PENDAHULUAN 1.1 Latar Belakang - Sistem Kendali Pintu Parkir Otomatis Menggunakan Bahasa C Berbasis Atmega16

0 1 8

Ovulation Time Calculation Software Based on Pascal Language

0 0 5

Aspek Pedagogi Pengajaran Pemrograman Pertama

0 0 99