0% menganggap dokumen ini bermanfaat (0 suara)
1K tayangan

Modul Soal Prosedur Function

Program ini membuat fungsi untuk mencari bilangan terbesar dari dua bilangan dan prosedur untuk menukar posisi kedua bilangan tersebut. Program membaca dua bilangan, memanggil fungsi untuk menentukan bilangan terbesar, kemudian memanggil prosedur untuk menukar posisi kedua bilangan.

Diunggah oleh

yuda90
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
1K tayangan

Modul Soal Prosedur Function

Program ini membuat fungsi untuk mencari bilangan terbesar dari dua bilangan dan prosedur untuk menukar posisi kedua bilangan tersebut. Program membaca dua bilangan, memanggil fungsi untuk menentukan bilangan terbesar, kemudian memanggil prosedur untuk menukar posisi kedua bilangan.

Diunggah oleh

yuda90
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 25

SOAL PRE-TEST A. Tingkat Kesulitan: Sangat Mudah 1. Beda Procedure dengan Function adalah ...

a. b. c. d.

Procedure mengembalikan suatu nilai, sedangkan function tidak Procedure tidak mengembalikan suatu nilai, function mengembalikan suatu nilai * Procedure dan function mengembalikan suatu nilai Procedure dan function tidak mengembalikan suatu nilai

2. Pernyataan dibawah ini semua benar kecuali : a. Prosedur Val mengubah sebuah string menjadi nilai numerik b. Prosedur STR mengubah sebuah nilai numerik menjadi string c. Fungsi POS untuk mengambil sebagian string dari suatu string * d. Fungsi POS untuk menentukan letak sebuah string pada string lain 3. Suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram disebut : a. fungsi b. prosedur * c. blok statemen d. looping 4. Prosedur dan fungsi didefinisikan pada pascal didefinisikan pada bagian ... a. Header(judul) b. Blok c. Deklarasi* d. Sub program 5. Yang tidak termasuk dalam Blok Deklarasi adalah : a. Count * b. Prosedur c. Fungsi d. Type Tingkat Kesulitan: Mudah 6. Pernyataan berikut salah kecuali a. Procedure mengembalikan suatu nilai, sedangkan function tidak b. Procedure tidak mengembalikan suatu nilai, function mengembalikan suatu nilai *

c. Procedure dan function mengembalikan suatu nilai d. Procedure dan function tidak mengembalikan suatu nilai 7. Deklarasi prosedur manakah yang dibenarkan? a. b. c. d. procedure hapus; procedure hapus(s:string); procedure hapus(var s:string); procedure hapus(s:string):boolean;*

8. Deklarasi function manakah yang tidak diizinkan? a. Function density(x:real):real; b. Function density(b:byte):byte; c. Function density(var s:string):real; d. Function density * 9. Parameter yang terdapat dalam prosedur adalah a. Parameter Formal dan actual* b. Parameter nilai dan perubah c. Parameter perubah dan formal d. Parameter actual dan nilai 10. Macam dari parameter formal adalah a. Nilai dan perubah* b. Nilai c. Perubah d. Actual Tingkat Kesulitan: Sulit 11. Function Hasil(Var A,B : Integer) : Integer; Begin A := A + B; Hasil := A-B; End; Var X,Y : Integer; Begin Readln(X); Readln(Y);Writeln(Hasil(X,Y); End. Jika X = 5 Dan Y = 4 Maka Hasil = ..... a. 3 b. 6 c. 4

d. 5* 12. Perhatikan program dibawh ini Var A,B : Integer; Procedure Uji(A : Integer); Begin A := A + 1; Write(A:3); End; Begin A := 2; Write(A:3); Uji(A); Write(A:3); End; Output dari program di atas adalah : a. 2 3 2 * b. 2 2 3 c. 1 2 3 d. 1 1 2 13. Ouput program di bawah ini adalah : Procedure satu; Begin Writeln(PASCAL);writeln(------------); end; Procedure dua; Begin Writeln(BAHASA); end; Begin dua; Writeln(------------); satu; Writeln(------------); END. a. PASCAL __________ __________ PASCAL BAHASA b. PASCAL __________ BAHASA __________ __________* c. BAHASA __________ PASCAL __________ d. __________ PASCAL

BAHASA __________ 14. Apakah output program berikut : procedure satu; Begin Writeln(Procedure satu); End; procedure dua; Begin Writeln(Procedure dua); End; Begin Writeln(Program utama); Dua; satu; End. a. Prosedur satu Prosedur utama Prosedur dua b. Prosedur dua Prosedur satu Prosedur utama c. Program utama Prosedur dua Prosedur satu* d. Program utama Prosedur satu Prosedur dua 15. Output program berikut : procedure dua(var g,h : integer; i : integer); Begin Inc(g); Dec(h); End; procedure satu(var d,e,f : integer); Begin Inc (d,f); dua(d,e,f); End; Begin A :=1; B := 3; C := 5;Writeln(A:2),B:2,C:2); Satu(A,B,C); Writeln(A:2),B:2,C:2); End. a. 1 3 5 135 b. 1 3 5 245 c. 1 3 5 7 2 5* d. 2 4 5 255 16. Procedure hitung(a,b : integer, var c : integer); Begin C := a+ b;

End; Var x,y,z : integer; Begin X :=2; Y := 3; Hitung(x,y,z); Write(x,y,z); End. Hasil yang diperoleh adalah : a. 352 b. 235* c. 523 d. 325 17. Perhatikan program berikut function P(x, y: integer): integer; begin if (x = 0) then P := y else begin P := P(x-1, y+1); end; end; Berapakah nilai writeln(P(5,10) 5,10 4,5 10,11 4,11* 18. Perhatikan program dibawah ini function F2(b, a : integer) : integer; begin F2 := F1(2 * a, b) + 1; while (a < b) do begin F2 := F1(a, b); a := 2 * a; end; end; berapa hasil dari f2(1,1)? a. b. c. d. 1,1 2,1 2,2 3,2*
a. b. c. d.

19. Perhatikan program dibawah ini function ABC(k : integer); var i,j : integer; begin j:=1; for i:=l to k do j:=j*2; ABC:=j; end; begin writeln(ABC(4)); end. Output program diatas adalah 16 b. 13 c. Program tidak dapat dijalankan * d. 10 20. Perhatikan program dibawah ini
a.

Function Sum(const A,B:Integer): Integer; Begin Sum:=A+B; end; Begin Writeln(Sum(5,10)); End Hasil program diatas adalah
a. b. c. d.

5 10 15* 20

21. Perhatikan program berikut procedure ABC(n,k:integer;s:string); var l:integer; x:char; begin if n=k then writeln(s) else begin x:=s[1];s[1]:=s[n];s[n]:=x; ABC(n+1,k,s); end; end; begin s:='ABC'; ABC(1,3,s); end. Apakah hasil dari output diatas 1. ABC ACB BAC BCA CAB CBA 2. CBA CAB BCA BAC ACB 3. CAB CBA BAC BCA ABC 4. Tidak ada jawaban yang benar*

22. Perhatikan program berikut function A:boolean; begin write('A'); A:=true; end; function B:boolean; begin write('B'); B:=False; end; begin if (A and B) then Write('C'); Writeln('D') End Program diatas menghasilkan a. Huruf ABCD b. Huruf ABD* c. Huruf ABC d. Huruf BCD 23. Perhatikan program dibawah ini procedure Sum(Var a,b:integer; c:Integer); Begin a:=1; b:=2; c:=a+b; end; Var i,j,k: Integer; Begin i:=10; j:=20; k:=30; Sum(i,j,k); end. Isi dari variabel i,j,k adalah a. 1,10,20 b. 2,10,30 c. 1,2,30* d. 1,2,3 24. Cermati program dibawah ini function A(const a:Longint):Boolean; var x,y:Longint; Begin

x:=Trunc(Sqrt(a))+1; y:=2; while x<>y do if (a mod y)>0 then Inc(y) else break; A:=x=y; end; Begin if A(1) then Write('A'); if A(2) then Write('B'); if A(3) then Write('C'); if A(4) then Write('D'); if A(5) then Write('E'); Apakah hasil dari program diatas ? a. Program eror* b. A,B,C,D c. B,C,A,D d. A,B,A,C 25. Apakah output dari program ini procedure P(x:integer); var j:integer; begin if (x=1) then writeln(k) else begin k:=k*x; P(x-1); end; end; begin k:=1; P(5); P(3); end. a. 120 720 b. 120 720 c. 720 120 d. Semua jawaban salah* 26. Perhatikan program berikut var i:integer; function f(x:integer):integer; begin f:=x*x+1; end; function g(x:integer):integer; begin

g:=(x-3)*x; end; begin for i:=1 to 5 do begin write(f(g(i)),' '); end; end. Output dari program di atas adalah a. 5 4 3 2 1 b. 1 2 3 4 5 c. 101 17 1 5 5 d. Semua jawaban di atas salah.* 27. Perhatikan program dibawah ini type Matrix=array[1..100] of byte; procedure Sort(var A:Matrix); var i,j,k:byte; B:array[0..255] of byte; begin fillchar(B,256,0); for i:=1 to 100 do begin inc(B[A[i]]); end; k:=1; for i:=0 to 255 do begin for j:=1 to B[i] do begin A[k]:=i; inc(k); end; end; end; Program diatas adalah teknik sorting a. Bubble Sort b. Merge Sort c. Quick Sort d. tidak ada jawaban yang benar* 28. var I : integer; procedure a begin writeln('pemangilan procedure ke-',i:5); i:=i+1; if i < 5 then a;

end; {modul utama} begin clrscr; i:=1; a; readln; end. Program diatas adalah tipe prosedur? a. Rekursi* b. Parameter acuan c. Parameter nilai d. formal 29. perhatikan penggalan program berikut function besar(a,b :real) : real; begin if a>b then besar:=a else besar:=b; end; program diatas adalah function menggunakan a. parameter nilai* b. parameter acuan c. parameter global d. aktual 30. perhatikan program berikut function kali(var bil1,bil2,jumlah : integer) : integer; begin kali:=bil1*bil2; jumlah:=bil1+bil2; end; diatas merupakan program a. function secara acuan* b. function secara nilai

c. function formal d. function actual B. ACTIVITY LAB Permasalahan : Buatlah program yang mencari bilangan terbesar dari 2 bilangan dan kemudian ditukar posisi-nya menggunakan function. Langkah penyelesaian I: 1. Buka program pascal 7.0 2. Klik file new

3.

4. Lalu ketikan program berikut


var a, b : integer; (1) begin (* mencari maksimum dua bilangan bulat *) if a>=b then begin maxab := a; end else begin maxab := b; end; end;
..(2) (* menukar nilai dua buah variabel a dan b *) (* parameter input/output *) var temp : integer; begin (* menukar dua bilangan bulat *) temp := a; a := b; b := temp; end;

SOAL : (MC) 1. Deklarasikan fungsi untuk mencari bilangan bulat maxab dengan tipe integer, dan procedur tukar untuk menukar bilangan a. Procedure tukar (a,b:integer);* b. Procedure tukar (a,b:integer):integer; c. Function maxab(a,b: integer);integer; d. Function maxab(a,b:integer):integer;* Langkah II :

Lanjutkan program yang telah anda buat tadi dengan program berikut :
begin (* program utama *) (* Membaca dua bilangan integer *) (* Menuliskan maksimum dua bilangan yang dibaca dg memanggil

fungsi*) (* Menukar kedua bilangan dengan 'prosedur' *) writeln ( 'Maksimum dua bilangan : '); writeln ( 'Ketikkan bilangan pertama : '); (3) writeln ( 'Ketikkan bilangan kedua : '); (4) writeln ( 'Ke dua bilangan : a = ',a) ; writeln ( ' b = ',b) ; writeln ( 'Maksimum = ', maxab (a,b) ) ; writeln ( 'Tukar kedua bilangan... ') ; tukar ( a, b ) ; writeln ( 'Ke dua bilangan setelah tukar: a = ',a) ; writeln ( ' b = ',b) ; end.

SOAL : (SC) 2. a. b. c. d. Apakah perintah yang tepat untuk mengisi jawaban diatas? Readln(a); readln(b);* Readln(b);readln(a); Readln a; Readln b;

Langkah III : Compile program diatas bila masih ada eror benarkan lalu simpan dengan nama pro1.pas dan submit

Soal : (SC) 3. Bagaimanakah tampilan program diatas? a. Masukan bilangan pertama : 5 Masukan bilangan kedua : 6 Ke dua bilangan : a=5 b= 6 Maksimum : a=6 Bilangan setelah tukar : a=6 b=5 b. Maksimum dua bilangan Ketikan bilangan pertama : 5 Ketikan bilangan kedua : 6 Ke dua bilangan : a=5 b=6 Maksimum = 6 Tukar kedua bilangan Ke dua bilangan setelah tukar : a=6 b=5* c. Ketikan bilangan pertama : 5 Ketikan bilangan kedua : 6 Ke dua bilangan : a=5 b=6 Maksimum = 6 Tukar kedua bilangan Ke dua bilangan setelah tukar : a=6 b=5 d. Maksimum dua bilangan Masukan bilangan pertama : 5 Masukan bilangan kedua : 6 Ke dua bilangan : a=5 b= 6 Maksimum : a=6 Bilangan setelah tukar : a=6 b=5

POST TEST TINGKAT KESULITAN : SANGAT MUDAH 1. Apa saja yang termasuk subprogram a. Function dan procedure * b. Function c. Prosdedure d. Enumerasi 2. Yang dapat dijadikan sebagai parameter nilai dalam prosedur adalah a. Kostanta, variabel , ekspresi* b. Kondisi, string, variabel c. Variabel, integer, real d. Real, string , float 3. Yang dapat dijadikan sebagai parameter peubah dalam prosedur adalah a. Integer b. Ekspresi c. Variabel* d. Kostanta 4. Di bawah ini skema umum penulisan prosedur yang benar ] a. procedure nama_prosedur(nama_parameter_input:tipe_data; var nama_parameter_output:tipe_data ); * b. procedure nama_prosedur(nama_parameter_output:tipe_data; nama_parameter_input:tipe_data; ); c. procedure nama_parameter(nama_prosedure:tipe_data; var nama_parameter_output:tipe_data ); d. salah semua 5. Di bawah ini skema umum penulisan fungsi yang benar a. Function nama_parameter_input(nama_fungsi:tipe_data):tipe_data_keluaran; b. function nama_fungsi(nama_parameter_input:tipe_data):tipe_data_keluaran;* c. function nama_fungsi(nama_parameter_output:tipe_data):tipe_data_input; d. salah semua 6. Prosedur atau Fungsi banyak digunakan pada program terstruktur, karena a. Merupakan penerapan konsep modular, yaitu memecah program menjadi modul-modul atau subprogram-subprogam yang lebih sederhana. b. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan. c. a dan b benar * d. a dan b salah TINGKAT KESULITAN MUDAH 7. Perbedaan procedure dan fungsi di pascal.. a. Procedure tidak mengembalikan nilai ke program utama, sedangkan fungsi akan mengembalikan nilai ke program utama, itu sebabnya fungsi harus ada tipe datanya (integer, char atau string). b. Procedure outputnya diletakkan di dalam procedure, kalau fungsi outputnya di letakkan di program utama.

Prosedur di panggil diprogram utama dengan menuliskan nama procedure tersebut di program utama. d. benar semua * 8. program coba_nama; uses crt; procedure nama; var nm: string; begin write('masukkan nama anda '); readln(nm); write('haloo ', nm); end; begin writeln('-======Program Procedure Input Nama======-'); nama; end. nama prosedure dari program di atas adalah .. a. coba_nama b. nama * c. nm d. Input nama 9. parameter output dari program di atas adalah a. (var nm:string) * b. nama; c. procedure nama; d. salah semua 10. memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsi-fungsi kecil (procedure dan function) yang dapat dipergunakan berulang-ulang. merupakan kelebihan yang di miliki program pascal yang bersifat a. Sederhana dan Ekspresif b. Strongly-typed c. Terstruktur * d. tidak ada yang benar 11. Tipe Data boolean bernilai.. a. true b. false c. a dan b benar * d. a dan b salah

c.

TINGKAT KESULITAN : SULIT

12. Manakah yang salah: a. function Gamma(I:Real):Real; b. function Gamma(var I:Real):Real; c. function Gamma(var I):Real; d. function Gamma(I:Real);* 13. Penggalan program Pascal sbb: Function fakto(n:byte):longint begin if n=0 then fakto:=0 else fakto:=n*fakto(n-1) end; function di atas bila dipanggil dengan statemen y:=fakto(5) ; maka y berharga: a. 0* b. 5 c. 120 d. salah semua 14. Apakah hasil dari program ini
procedure x (n : in teger ) ; var i , j : in teger ; begin for i :=1 to n do begin for j :=1 to i do write ( ) ; writeln ; end ; end ; Jika n bernilai = 4

a. * ** *** ****(*) b.* *** ** *

c. ** *** *** ** d.**** *** ** * 15. Apakah output program berikut


procedure a (m, n : in teger ) ; var i , j : in teger ; begin for i :=1 to m do begin for j :=1 to n do write ( ) ; writeln ; end ; 9 end ;

Jika m=4 n=5 a. **** **** **** **** **** b. ***** ***** ***** *****(*) c. **** **** **** **** d. ***** 16. Perhatikan program dibawah ini
procedure Kotak2 (m, n : in teger ) ; var i , j : in teger ; begin for i :=1 to m do begin for j :=1 to n do i f ( i=1) or ( i=m) or ( j=1) or ( j=m) then wr ite ( ) e l se write ( ) ; writeln ; end ;

end ; Jika m bernilai 4 n bernilai 5 a. *****

* * * * *****(*) b. * * * * * * * * c. ***** ***** ***** ***** d. * * ***** ***** ***** 17. Perhatikan program berikut
procedure b (n : in teger ) ; var i , j : in teger ; begin for i :=1 to n do begin for j :=1 to i do i f ( j=1) or ( i=n) or ( i=j ) then wr ite ( ) e l se write ( ) ; writeln ; end ; end ; jika n =5 apakah output yang dihasilkan

a. * ** * * * * ****(*)

b. * ** *** **** *****

* ** *** **** ***** d. * * * * * **** *** ** * 18. Diberikan program sebagai berikut Procedure x(A,B : integer); Var C : integer; Begin C := A + B; Writeln(Nilai C = ,C) End; Var X,Y : integer; Begin Write(Nilai X ? ); Readln(X); Write(Nilai Y ?); Readln(Y); Hitung(X,Y); End. Berapakah nilai c bila diketahui x=4 y=5 a. 4,5 b. 9* c. 1 d. -1

c.

19. Perhatikan program dibawh ini Var A,B : Integer; Procedure Uji(A : Integer); Begin A := A + 1; Write(A:3); End; Begin A := 2; Write(A:3); Uji(A); Write(A:3); End; Output dari program di atas adalah : a. 2 3 2 * b. 2 2 3 c. 1 2 3

d. 1 1 2 20. Output program berikut : procedure dua(var g,h : integer; i : integer); Begin Inc(g); Dec(h); End; procedure satu(var d,e,f : integer); Begin Inc (d,f); dua(d,e,f); End; Begin A :=1; B := 3; C := 5;Writeln(A:2),B:2,C:2); Satu(A,B,C); Writeln(A:2),B:2,C:2); End. a. 1 3 5 135 b. 1 3 5 245 c. 1 3 5 7 2 5* d. 2 4 5 2 55 21. Procedure hitung(a,b : integer, var c : integer); Begin C := a+ b; End; Var x,y,z : integer; Begin X :=2; Y := 3; Hitung(x,y,z); Write(x,y,z); End. Hasil yang diperoleh adalah : a. 352 b. 235* c. 523 d. 325 22. Perhatikan program berikut var i:integer; function f(x:integer):integer; begin f:=x*x+1; end; function g(x:integer):integer; begin g:=(x-3)*x; end; begin for i:=1 to 5 do begin write(f(g(i)),' '); end; end. Output dari program di atas adalah

a. b. c. d.

54321 101 17 1 5 5 Semua jawaban di atas salah.* 12345

23. Perhatikan program dibawah ini function ABC(k : integer); var i,j : integer; begin j:=1; for i:=l to k do j:=j*2; ABC:=j; end; begin writeln(ABC(4)); end. Output program diatas adalah
a. b. c. d.

16 13 Program tidak dapat dijalankan * 10

24. Procedure hitung(a,b : integer, var c : integer); Begin C := a* b; End; Var x,y,z : integer; Begin X :=2; Y := 3; Hitung(x,y,z); Write(x,y,z); End. Hasil yang diperoleh adalah : a. 352 b. 235 c. 523 d. 236* 25. Perhatikan program berikut var i:integer; function f(x:integer):integer; begin f:=x*x+1; end; function g(x:integer):integer; begin

g:=(x-3)*x; end; begin for i:=1 to 5 do begin write(f(g(i)),' '); end; end. Output dari program di atas adalah a. 5 4 3 2 1 b. 101 17 1 5 5 c. Semua jawaban di atas salah. d. 5 5 1 17 101 5* 26. Perhatikan program dibawah ini function ABC(k : integer):integer; var i,j : integer; begin j:=1; for i:=l to k do j:=j*2; ABC:=j; end; begin writeln(ABC(4)); end. a. 16* b. 17 c. 18 d. 19 27. Perhatikan program berikut procedure ganti (ruangan1, ruangan2, ruangan3, ruangan4 : string); var ruangan5 : string; begin ruangan5 := ruangan4; ruangan4 := ruangan3; ruangan3 := ruangan2; ruangan2 := ruangan1; ruangan1 := ruangan5; writeln ('Yang lagi ngumpul siapa aja...? ',ruangan1,' ', ruangan2,' ', ruangan3,' ', ruangan4); end; var ruang1, ruang2, ruang3, ruang4 : string;

begin write ('Siapakah di ruang 1 = '); readln (ruang1); write ('Siapakah di ruang 2 = '); readln (ruang2); write ('Siapakah di ruang 3 = '); readln (ruang3); write ('Siapakah di ruang 4 = '); readln (ruang4); ganti (ruang1, ruang2, ruang3, ruang4); writeln ('Siapa yang lagi berduaan : ',ruang1,' & ', ruang2); end. Jika di masukan inputan untuk ruangan 1-4 dengan 1,2,3,4 apakah hasil yang ditampilkan? a. Siapa yang lagi berduaan : 2&3* b. Siapa yang lagi berduaan : 1&3 c. Siapa yang lagi berduaan : 4&3 d. Siapa yang lagi berduaan : 3&4 28. Jika dinputkan untuk ruangan 1-4 dengan 2413, apakah hasil yang ditampilkan? a. Siapa yang lagi berduaan : 2&3 b. Siapa yang lagi berduaan : 1&3 c. Siapa yang lagi berduaan : 4&1* d. Siapa yang lagi berduaan : 1&4 29. Jika dinputkan untuk ruangan 1-4 dengan 4132, apakah hasil yang ditampilkan? a. Siapa yang lagi berduaan : 2&3 b. Siapa yang lagi berduaan : 1&3* c. Siapa yang lagi berduaan : 4&1 d. Siapa yang lagi berduaan : 1&4 30. Jika dinputkan untuk ruangan 1-4 dengan 1324, apakah hasil yang ditampilkan? a. Siapa yang lagi berduaan : 2&3 b. Siapa yang lagi berduaan : 3&2* c. Siapa yang lagi berduaan : 4&1 d. Siapa yang lagi berduaan : 1&4

Anda mungkin juga menyukai