Anda di halaman 1dari 12

NUS: ___________

1. a. b. c. d. e. Deklarasi yang tepat adalah var A: String; const A: Integer := 25; type A = record; type MagicNumber: Integer; Jawaban (a) (d) benar semua b. type Anggota: record Nama = String; NomorAnggota = Word; End; c. type Anggota := record Nama := String[20]; NomorAnggota := Word; End; d. type Anggota = record Nama: String[]; NomorAnggota: Word; end; e. Semua deklarasi di atas salah 8. a. b. c. d. e. Deklarasi manakah yang dapat diterima? var F: File of Text; var F: File of Integer; var F: File[1..10] of Integer; var F: Text of Char; salah semua.

2. Pernyataan manakah yang boleh dipakai untuk mendeklarasikan variabel dalam Pascal? a. var A, B; b. var A: Real, B: Integer; c. var A; B: Integer; d. var (A, B): Integer; e. var A: Pointer; B: Integer; 3. a. b. c. d. e. Bagaimana cara mendeklarasikan konstanta bertipe? var A: Integer const = 100; const A: Integer = 100; const A = 100; var A: Integer = 100; const Integer A = 100;

4. Carilah deklarasi yang tidak diperbolehkan: a. const A = 14; B = A * 2.5; b. const E1 = 'Division by zero'; E2 = 'Overflow'; E3 = 'Invalid argument'; ErrMsg: array[1..3] of String = (E1, E2, E3); c. const A = 40; B: Integer = A * 15; d. const A = 123; B = Chr(A); e. Semua jawaban salah 5. a. b. c. d. e. 6. a. b. c. d. e. Deklarasi mana yang sahih dalam bahasa Pascal? var A: String[70]; var A = String; var A: String[1024]; var A: String[1..75]; Semua jawaban salah var var var var var Bagaimana cara mendeklarasikan array dua dimensi? A: array[1..10, 1..10] of Char; B: array[1 to 10, 1 to 10] of Char; C: matrix[1..10, 1..10] of Char; D: array[10, 10] of Char; E: matrix[10, 10] of Char;

9. Deklarasi manakah yang salah? a. type Rec = record X, Y: Real; end; var F: File of Rec; b. var F: File; c. type A = array[1..10] of Byte; var F: File of A; d. var F: File of array; e. Tidak ada deklarasi yang salah 10. Deklarasi manakah yang salah? a. var E: record X, Y: Integer end; b. var F: File of set of Char; c. var G: record F: File; U: Integer; end; d. var H: File of record X, Y: Integer end; e. Tidak ada deklarasi yang salah 11. Deklarasi manakah yang salah? a. var A: set of Real; b. var B: array[1..10,1..10] of record Flag: set of Byte; R: Real; end; c. var C: set of (Nasi, Roti, Bakmi, Bakpau); d. var D: array[1..10] of File; e. Tidak ada deklarasi yang salah 12. Deklarasi manakah yang benar? a. var R: array[True..False] of String; b. type P = set of Byte; var R: array[P] of String; c. var Q: set of String;
1 - 12 Seleksi Awal TOKI 98

7. Deklarasi manakah yang benar? a. type Anggota = record Nama: String[40]; NomorAnggota: Word; End;

Ujian Dasar Pemrograman Pascal

NUS: ___________
d. type S = array[1, 5, 7..10] of Real; e. Salah semua 13. a. b. c. d. e. Manakah yang salah? function Gamma(I: Real): Real; function Gamma(var I: Real): Real; function Gamma(var I): Real; function Gamma(I: Real); semua deklarasi di atas benar c. var X: LongInt; begin for X := -50 downto -400 do Writeln(X); end. d. var X: Real; begin for X := 0 to 5 do Writeln(X); end. e. Jawab (a) (d) benar semua 17. Tipe data manakah yang sanggup memuat nilai numerik sebesar 75000? a. Integer b. Byte c. Real d. Word e. String 18. a. b. c. d. e. Berapakah jangkauan tipe data Word? 0255 065536 065535 -3276832767 Salah semua

14. Penulisan program Pascal yang dibenarkan adalah a. program Sederhana; begin var C: Word; C := 275 * 400 + 5; Writeln(C); end. b. { program Sederhana; } var W: Word; begin W := 61224; Writeln(W - 50000); end. c. program Sederhana; var A: String; begin A := ' tahun lalu belum ada komputer'; A := 200 + A; Writeln(A); end. d. program Matematika; var Jari-jari: Real; begin Write('Jari-jari lingkaran = '); Readln(Jari-jari); Writeln('Keliling=',2 * Pi * Jari-jari); end. e. Semua program di atas salah! 15. Tipe data manakah yang dapat memuat bilangan pecahan? a. Byte b. Integer c. Boolean d. Real e. LongInt 16. Manakah yang salah: a. var X: Integer; begin for X := 1 to 25 do Writeln(X); end. b. var X: Char; begin for X := '1' to '9' do Writeln(X); end.

19. Turbo Pascal menyediakan tipe data enumerasi yang didefinisikan dengan menyebutkan nama-nama elemennya oleh pemakai. Bila tipe data Nilai dapat bernilai Jelek, Kurang, Cukup, dan Baik, bagaimanakah cara menulisnya? a. type Nilai = (Jelek, Kurang, Cukup, Baik); b. type Nilai = Jelek, Kurang, Cukup, Baik; c. type Nilai = 'Jelek, Kurang, Cukup, Baik'; d. type Nilai = [Jelek, Kurang, Cukup, Baik]; e. Salah semua. 20. Lihat kembali definisi Nilai di atas. Pernyataan manakah yang tidak benar? a. var Ket: array[Jelek..Baik] of Nilai; b. var Ket: array[Jelek..Baik] of String; c. var Ket: Jelek; d. var Ket: set of Nilai; e. Salah semua 21. Misalkan N adalah variabel bertipe Nilai (lihat soal di atas), maka operasi manakah yang tidak dibenarkan untuk N? a. Inc(N); b. N := N + Jelek; c. Writeln(Ord(N)); d. if N >= Cukup then Writeln('Lulus'); e. Semua salah 22. Berikut ini adalah deklarasi sebuah program: type IsiRoti = (Coklat, Pisang, Nanas); var Isi: IsiRoti; Manakah yang sahih di antara pernyataan-pernyataan berikut?
2 - 12 Seleksi Awal TOKI 98

Ujian Dasar Pemrograman Pascal

NUS: ___________
a. if Isi in IsiRoti then Writeln('Nah, ini baru enak.'); b. if Isi in [Coklat, Nanas] then Writeln('Saya suka itu!'); c. if 'Coklat' in Isi then Writeln('Suka roti coklat juga ya?'); d. if IsiRoti = [] then Writeln('Harus pilih salah satu!'); e. if [Nanas] in Isi then Writeln('Memilih roti nanas.'); 23. Dalam potongan program berikut, var Z1, Z2, Z3, Z4: set of Byte; begin Z1 := [1, 2, 6, 8, 9]; Z2 := [3, 6, 8, 12, 14]; Z3 := Z1 + Z2; Z4 := Z1 * Z2; end. Berapakah nilai akhir Z3 dan Z4? a. Z3 = [6, 7, 8] Z4 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] b. Z3 = [6, 8] Z4 = [1, 2, 3, 6, 8, 9, 12, 14] c. Z3 = [1, 2, 3, 6, 6, 8, 8, 9, 12, 14] Z4 = [6, 6, 8, 8] d. Z3 = [1, 2, 3, 6, 8, 9, 12, 14] Z4 = [6, 8] e. Salah semua 24. Manakah yang salah bila var Size: array[1..150] of Real; R: Real; I: Integer; Size[I] := I; Size[R] := 15.5; Size[I] := R; Size[2] := I / R; Tidak ada yang salah 26. Lihat kembali deklarasi di atas. Ekspresi manakah yang tidak sah dalam bahasa Pascal? a. C := A and F; b. D := A + C / 10; c. D := A + C div 10; d. if E = F then Writeln('Nilainya sama.'); e. semua ekspresi valid

27. Lihat kembali deklarasi di atas. Ekspresi mana yang dibenarkan dalam bahasa Pascal? a. A := D div 10; b. if B and (F > 5) then Writeln('Ulangi!'); c. C := A / 10; d. F := Ord(E + E); e. Semua ekspresi tidak benar 28. Lihat kembali deklarasi di atas. Ekspresi mana yang tidak benar? a. Inc(E); b. Inc(D); c. D := D + 1; d. E := Succ(E); e. semua ekspresi salah 29. Deklarasi mana yang salah dalam bahasa Pascal? a. var A: record Nama, Alamat: String; end; b. type InfoRec = record Nama, Alamat: String; end; var A: InfoRec; c. var A: InfoRec = record Nama, Alamat: String; end; d. Semua deklarasi di atas salah e. Semua deklarasi di atas betul dan diperbolehkan 30. Untuk variabel A di atas, bagaimana cara mengakses variabel yang betul? a. A.'Nama' := 'Raden'; b. A:Nama := 'Raden'; c. A.Nama := 'Raden'; d. Nama:A := 'Raden'; e. Nama.A := 'Raden'; 31. Bila variabel A di atas sudah tidak diperlukan lagi, maka untuk menghapus A digunakan statement: a. Delete(A); b. Dispose(A); c. FreeMem(A); d. FreeMem(A, SizeOf(A)); e. Salah semua

a. b. c. d. e.

Deklarasi variabel berikut ini digunakan untuk menjawab soalsoal berikut ini: var A: Integer; B: Boolean; C: Integer; D: Real; E: Char; F: Byte; 25. Dengan deklarasi variabel di atas, ekspresi manakah yang benar dalam bahasa Pascal? a. B := A + C > D; b. C := A * 5 + D; c. if A then C := C + A; d. A := (B + C) * 7; e. semua ekspresi salah

Ujian Dasar Pemrograman Pascal

3 - 12

Seleksi Awal TOKI 98

NUS: ___________
32. Cara mendeklarasikan elemen link list adalah a. type Elemen = linklist Nama: String; Umur: Integer; end; b. type ^Elemen = record Nama: String; Umur: Integer; Next: ^Elemen; end; c. type ElemenPtr = ^Elemen; Elemen = record Nama: String; Umur: Integer; Next: ElemenPtr; end; d. type ElemenPtr: ^Elemen; Elemen: Record Nama = String; Umur = Integer; Next = ElemenPtr; end; e. Salah semua 33. Bagaimana cara mendeklarasikan variabel dengan tipe data pada soal sebelumnya? a. var A: @ElemenPtr; b. var A^: Elemen; c. var A: Elemen; d. var ^A: Elemen; e. Salah semua 34. Sebelum variabel A (lihat soal sebelumnya) digunakan, perintah apakah yang harus dipanggil? a. GetMem(A); b. A.New; c. New(A); d. A := nil; e. variabel A tidak perlu dialokasikan lagi karena sudah dideklarasikan di awal program 35. Dengan A yang sama pada soal sebelumnya, bagaimana caranya memberi nilai pada variabel tersebut? a. A.Nama := 'TOKI'; A.Umur := 1998; b. A.Nama^ := 'TOKI'; A.Umur^ := 1998; c. A^.Nama := 'TOKI'; A^.Umur := 1998; d. A@.Nama := 'TOKI'; A@.Umur := 1998; e. Salah semua 36. Dalam link list, umumnya elemen pertama dikosongkan. Sebab itu seorang programmer merevisi program yang berisi variabel A (yang dibicarakan pada soal-soal di atas) dengan menambahkan rutin sebagai berikut: procedure Tambah(N: String; U: Integer); var P: ElemenPtr; begin P := Addr(A); while P^.Next <> nil do P := P^.Next; New(P^.Next); P := P^.Next; P^.Nama := N; P^.Umur := U; end; Pada badan program (di antara beginend.) ia menulis perintah Tambah('Soni', 17); Tambah('Budi', 19); Tambah('Yudi', 18); Dengan revisi tersebut, apakah keluaran perintah berikut ini? Write (A.Next^.Nama, ' ', A.Next^.Next^.Nama, ' ', A.Next^.Next^.Next^.Nama); a. Soni Budi Yudi b. Budi Soni Yudi c. Yudi Budi Soni d. Yudi Soni Budi e. Semua salah 37. Deklarasi manakah yang benar? a. type A = record ID: LongInt; Pesan: String; end; B = array[1..5] of A; b. type B = array[1..5] of A = record ID: LongInt; Pesan: String; end; c. type A: record ID = LongInt; Pesan = String; end; B: array[1..5] of A; d. type A = record ID: LongInt; Pesan: String; end; B: array[1..5] of A; e. Salah semua 38. Lihat kembali tipe data A dan B di atas. Misalkan variabel Msg dideklarasikan dengan tipe B. Penulisan manakah yang benar? a. var Msg: B; begin Msg.ID[3] := 9338; Msg.Pesan[3] := 'Segera pulang!'; end. b. var Msg: B; begin
Seleksi Awal TOKI 98

Ujian Dasar Pemrograman Pascal

4 - 12

NUS: ___________
Msg^[3].ID := 9338; Msg^[3].Pesan := 'Segera pulang!'; end. c. var Msg: B; begin Msg[3].ID := 9338; Msg[3].Pesan := 'Segera pulang!'; end. d. var Msg: B; begin Msg[3]^.ID := 9338; Msg[3]^.Pesan := 'Segera pulang!'; end. e. Salah semua 41. Output apa yang dihasilkan oleh program ini? Input yang diberikan pemakai adalah 1, 3, 4, 6, 8, 6, 9, 0, 7, 1. var Cnt: array[0..9] of Byte; A: array[0..9] of Byte; I: Integer; begin for I := 0 to 9 do Readln(A[I]); for I := 0 to 9 do Cnt[I] := 0; for I := 0 to 9 do Inc(Cnt[A[I] mod 5]); for I := 0 to 4 do Writeln(I, ': ', Cnt[I]); end. a. terjadi runtime error b. 0: 1 1: 4 2: 1 3: 2 4: 2 c. 0: 1 1: 2 2: 0 3: 1 4: 1 d. 0: 0 1: 1 2: 2 3: 3 4: 4 e. Salah semua Gunakan deklarasi berikut untuk mengerjakan soal-soal di bawah ini: type A = array[1..5,1..5] of Integer; B = record Data: A; S: String; end; C = record X: Char; end; D = array[1..10] of B; var AA: A; BB: B; CC: C; DD: D; 42. Apakah ada deklarasi yang salah? Bila ada, yang mana? a. A b. B c. C d. D e. Tidak ada deklarasi yang salah 43. Lihat deklarasi di atas. Ekspresi manakah yang tidak benar? a. CC.X

39. Lihat kembali variabel Msg di atas. Misalkan P bertipe integer, maka ekspresi manakah yang diperbolehkan? a. Msg.ID[P] b. Msg.ID c. Msg[4].Pesan[P] d. Msg.Pesan[P] e. Salah semua 40. Apakah output program berikut? var L: array[1..3, 1..3] of Integer; N: array[1..3] of Integer; I, J: Integer; begin N[1] := 3; N[2] := 2; N[3] := 1; for I := 1 to 3 do begin for J := 1 to 3 do begin N[J] := N[J] + J; L[J, I] := N[J]; Write(L[J, I], ' '); end; Writeln; end; end. 4 4 4 5 6 7 6 8 10 4 5 6 4 6 8 4 7 10 4 3 2 6 5 4 9 8 7 4 3 2 5 4 3 6 5 4 Salah semua

a. b. c. d. e.

Ujian Dasar Pemrograman Pascal

5 - 12

Seleksi Awal TOKI 98

NUS: ___________
b. c. d. e. DD[10].B DD[10].S AA[4] Semua ekspresi benar c. A := B^5; d. A := A^+5; e. Semua ekspresi di atas sah-sah saja 50. Program manakah yang tidak benar? a. var DiskVolume: String; begin Write('Masukkan label disk: '); Read(DiskVolume); end. b. var Label:String; begin Write('Masukkan label disk: '); Readln(Label); end. c. var Label_Disk: String; begin Write('Masukkan label disk: '); Readln(Label_Disk); end. d. var _Label: String; begin Write('Masukkan label disk: '); Readln(_Label); end. e. Tidak ada yang salah 51. Daftar kata manakah yang sama sekali tidak memuat reserved-word (kata-kata kunci) Pascal? a. Writeln, Case, Text, Endif b. Integer, Real, Char, String c. Begin, Record, Program, Implementation d. Exit, Round, Close, File e. Semua salah 52. Manakah yang menghasilkan Misalkan A bertipe Integer. a. Inc(A); dan A := Pred(A); b. Inc(A); dan A := Succ(A); c. Dec(A); dan A := Ord(A); d. Inc(A); dan A := Ord(A); e. Salah semua nilai yang sama?

44. Lihat kembali deklarasi di atas. Ekspresi manakah yang benar? a. AA[4].A b. DD[4].A[3, 4] c. BB[4, 2].A d. D[3].S[2] e. Semua salah 45. Daftar operator manakah yang diurutkan menurut prioritasnya, dari yang tertinggi ke yang terendah? a. =, NOT, AND, OR b. =, AND, OR, NOT c. NOT, AND, OR, = d. NOT, =, AND, OR e. OR, AND, =, NOT 46. a. b. c. d. e. Ekspresi mana yang salah bila var A, B: Integer; ... if A <> 0 then Writeln(A); if (A and B) <> 0 then Writeln(A); if A = 0 and B = 1 then Writeln(A); if not A and not B > 0 then Writeln(A); tidak ada ekspresi yang salah

47. Apakah hasil perintah berikut ini bila A = 10, B = 5, dan C = 2? Writeln(A + 54 mod B * C); a. 18 b. 14 c. 8 d. 4 e. Semua salah 48. Ekspresi mana yang tidak valid dalam bahasa Pascal, bila diketahui var A: Integer; B: ^Integer; C: String; ... a. B := ^A; b. B^ := A; c. B := @A; d. C := ^A; e. Ekspresi (a) (d) salah semua 49. Ekspresi mana yang tidak mungkin dibenarkan dalam bahasa Pascal? a. A := B^*7; b. A := 075*7;

53. Bila A bertipe Integer dan B bertipe Real, maka metode konversi yang tidak dibenarkan adalah: a. A := Frac(B); b. A := Round(B); c. A := Trunc(B); d. B := Round(A / 5); e. B := A; 54. Misalkan variabel A bernilai 121. Pernyataan manakah yang menghasilkan nilai A dengan benar, bila var A, B: Integer; a. B := Sqr(A); b. B := Sqrt(A);

Ujian Dasar Pemrograman Pascal

6 - 12

Seleksi Awal TOKI 98

NUS: ___________
c. B := Int(Sqrt(A)); d. B := Int(Exp(0.5 * Ln(A))); e. Semua jawaban salah 55. Ekspresi manakah yang memberikan nilai dan tipe hasil yang sama/kompatibel? a. 40 div 7 dan Int(40 / 7) b. 40 div 7 dan Round(40 / 7) c. 40 div 7 dan Trunc(40 / 7) d. 40 div 7 dan 40 / 7 e. Trunc(40 div 7) dan Int(40 / 7) 56. Perhatikan potongan program berikut. Tulisan apa yang dikeluarkan sebagai hasil running program? var A: String[10]; B: String[10]; C: String[25]; begin A := 'Tim Olimpiade '; B := 'Komputer '; C := 'Indonesia'; C := A + B + C; Writeln ('#', C, '#'); end. #Tim Olimpiade Komputer Indonesia# #Tim OlimpiKomputer Indonesia# #Tim Olimpiade Komputer In# #Tim OlimpiKomputer Indone# Semua jawaban salah Bagaimana keluaran program berikut: procedure Proses(var S: String); begin S := Copy(S, 2, Length(S) - 1) + Copy(S, 1, 1); Writeln(S); end; var S2: String; begin S2 := 'TOKI98'; Proses(S2); Proses(S2); Proses(S2); end. TOKI98 OKI98T KI98TO OKI98T KI98TO I98TOK 8TOKI9 98TOKI I98TOK 8OKI9T 89KIOT 89IKOT e. TOKI98 TOKI98 TOKI98 58. Lihat kembali program pada soal sebelumnya. Bila baris ketiga dan empat diganti menjadi: S := Copy(S, 1, 1) + Copy(S, 2, Length(S) - 1); Apakah yang ditampilkan program tersebut? a. TOKI98 TOKI98 TOKI98 b. OKI98T KI98TO I98TOK c. 8TOKI9 98TOKI I98TOK d. 89IKOT TOKI98 89IKOT e. TOKI98 OKI98 KI98

a. b. c. d. e. 57.

a. b. c. d.

59. Dalam rutin pengurutan (sorting) sering dijumpai penukaran nilai dua elemen array. Bagaimana prosedur menukar nilai a[i] dan a[j], bila diketahui: var a: array[1..10] of Integer; i, j, k: Integer; a. a[j] := k; a[i] := a[j]; k := a[i]; b. a[k] := a[j]; a[j] := a[i]; a[i] := a[k]; c. k := a[j]; a[j] := a[i]; a[i] := k; d. k := j; j := i; i := k; e. a[k] := j; j := i; i := a[k]; 60. Berapakah nilai G shl 2 bila G adalah variabel Integer bernilai 100? a. 100 b. 50 c. 25 d. 200 e. 400 61. Bila A, B, C bertipe Integer dan A = 14, B = 4, C = 2, apakah output dari Writeln(A and B or C)?

Ujian Dasar Pemrograman Pascal

7 - 12

Seleksi Awal TOKI 98

NUS: ___________
a. b. c. d. e. 16 12 6 True False a. b. c. d. e. var A, LogA: Word; begin A := 31; LogA := Log2(A); Writeln(A, ' ', LogA); end. 31 4 1 4 1 5 31 5 Program tidak bisa di-compile karena variabel A baru didefinisikan setelah fungsi Log2

Untuk dua soal di bawah ini, gunakan listing program berikut ini: function Bit(B, P: Byte): Char; var M: Byte; begin M := 1 shl P; if (B and M) = 0 then Bit := '0' else Bit := '1'; end; var Bil, I: Byte; begin Readln(Bil); for I := 7 downto 0 do Write(Bit(Bil, I)); end. 62. Berapakah keluaran program di atas bila input nilai untuk Bil adalah 25? a. 00011001 b. 11001 c. 10011000 d. 10011 e. Salah semua 63. Misalkan statement if (B and M) = 0 then kita ganti menjadi if (B or M) = 0 then , maka dengan input yang sama (Bil = 25), berapakah keluaran program di atas? a. 11111 b. 11111111 c. 00000000 d. 10011 e. Salah semua 64. Perhatikan potongan program berikut. Bagaimanakah hasil eksekusi program tersebut? function Log2(A: Word): Word; var L: Integer; begin L := 0 ; while A > 1 do begin Inc(L); A := A div 2; end; Log2 := L; end; { function Log2 }

65. Diketahui deklarasi fungsi dan variabel sebagai berikut: var St: String; procedure Sulap(var S: String); begin if S = 'Kecil' then S := 'kecil' else if S = 'Besar' then S := 'BESAR'; end; Di antara potongan program berikut, manakah yang salah? a. St := Chr(60); Sulap(St); b. St := 'KECIL'; Sulap(St); c. St := Chr(45) + Chr(65); Sulap(St); d. Sulap('Besar'); e. Semua ekspresi di atas benar Gunakan potongan program berikut untuk menjawab beberapa pertanyaan di bawah ini: type TBil = array[1..10] of Integer; var A: TBil; I, Maks, Dari, Sampai: Integer; function CariMaks(var A: TBil; Start, Stop: Integer): Integer; var M: Integer; begin M := 0; while Start <= Stop do begin if A[Start] > M then M := A[Start]; Inc(Start); end; CariMaks := M; end; begin for I := 1 to 10 do Read(A[I]); Dari := 5; Sampai := 10; Maks := CariMaks(A, Dari, Sampai); Writeln('Dari elemen ', Dari, ' sampai ', Sampai, ', maks = ', Maks); end.

Ujian Dasar Pemrograman Pascal

8 - 12

Seleksi Awal TOKI 98

NUS: ___________
Pemakai memasukkan nilai-nilai 13, 15, 40, 95, 24, 12, 22, 19, 10, 23 sebagai input program ini. 66. a. b. c. d. Bagaimanakah output program di atas? Dari elemen 5 sampai 10, maks = 24 Dari elemen 5 sampai 10, maks = 95 Dari elemen 11 sampai 10, maks = 24 Program tidak bisa dijalankan karena variabel A dideklarasikan dua kali e. Semua jawaban salah 70. Bila pada soal sebelumnya M = 1, maka berapa keluaran program? a. J = 0 b. J = 1 c. J = -6 d. J = 120 e. Salah semua 71. Berapa keluaran program ini: program Percobaan; var P, Q: Word; begin P := 10; for Q := 1 to 4 do; begin P := P * Q; Writeln(Q, ' ', P); end; end. 1 10 2 20 3 30 4 40 1 10 2 20 3 60 4 240 1 10 4 40 5 50

67. Bagaimana output program bila baris ke-4 dan 5 diubah sebagai berikut: function CariMaks(var A: TBil; var Start, Stop: Integer): Integer; a. b. c. d. Dari elemen 10 sampai 11, maks = 24 Dari elemen 5 sampai 10, maks = 95 Dari elemen 11 sampai 10, maks = 24 Program tidak bisa dijalankan karena variabel A dideklarasikan dua kali e. Semua jawaban salah 68. Bagaimana output program bila baris ke-4, 5, dan 20 masing-masing diubah sebagai berikut: function CariMaks(Start, Stop: Integer): Integer; ............ Maks := CariMaks(Dari, Sampai); a. b. c. d. Dari elemen 5 sampai 10, maks = 24 Dari elemen 5 sampai 10, maks = 95 Dari elemen 11 sampai 10, maks = 24 program tidak bisa dijalankan karena identifier A dalam fungsi CariMaks belum dideklarasikan e. Semua jawaban salah 69. Berapakah keluaran program memberi nilai M = 9? var C, M, J: Integer; begin J := 1; Write('M = '); Readln(M); for C := 5 to M do J := J * (M - 4); Writeln('J = ', J); end. a. J = 120 1(5-4) b. J = -120 1(6-4) c. J = 1 2(7-4) d. J = 24 6(8-4) e. Salah semua ini, bila pemakai a.

b.

c. d. e.

72. Diketahui potongan fungsi sebagai berikut. Berapakah nilai Hitung(5)? function Hitung(I: Integer): Integer; var Hit: Integer; J: Integer; begin for J := 1 to I do Hit := Hit + J; Hitung := Hit; end; a. 0 b. 5 c. 15 d. 20 e. Nilainya tidak dapat diperkirakan 73. Perhatikan potongan program berikut ini: var A, I, J, K, Kode: Integer; begin Writeln ('Masukkan lima integer: '); J := 0; K := 0; for I := 1 to 5 do begin

24(9-4)=120

Ujian Dasar Pemrograman Pascal

9 - 12

Seleksi Awal TOKI 98

NUS: ___________
Readln(A); J := J + A; if A < 10 then K := K + 1; end; Kode := J div K; Writeln('Kode = ', Kode); end. Pemakai program ini memasukkan nilai 10, 20, 30, 40, 50 ke dalam program ini. Berapakah nilai Kode yang dihasikan oleh program? a. 150 b. 15000 c. 30 d. 0 e. Terjadi runtime error const D: array[1..10] of Integer = (1, 52, 34, 19, 27, 82, 12, 6, 18, 77); var I, Max: Integer; A: array[1..5] of Integer; function Test(F: Byte): Boolean; var I: Integer; begin I := 1; while (I < 10) and (D[I] <> F) do Inc(I); if D[I] = F then Test := True else Test := False; end; begin Write('Masukkan 5 angka tebakan Anda: '); I := 0; repeat Inc(I); Read(A[I]); until I >= 5; I := 0; Max := 0; repeat Inc(I); if Test(A[I]) and Max < A[I] then Max := A[I]; until I >= 5; Writeln('Max = ', Max); end. Nilai-nilai yang diinputkan adalah 14, 12, 26, 177, 1. a. Max = 14 b. Max = 177 c. Max = 12 d. Max = 1 e. Salah semua 77. Lihat kembali listing program pada soal sebelumnya. Bagaimana outputnya bila deklarasi var I: Integer; pada function Test dihilangkan? a. Max = 14 b. Max = 177 c. Max = 12 d. Max = 1 e. Salah semua Joni, petugas statistik yang baru saja belajar Pascal, mencoba membuat program perata-rata sebagai berikut: program Statistik; var Amatan: array[5] of Integer; Jumlah: Integer; RataRata: Integer; I: Integer; begin for I := 1 to 5 do begin Write('Amatan ke-', I, ': '); Readln(Amatan[I]);
Seleksi Awal TOKI 98

Program berikut ini dipakai untuk menjawab dua soal di bawah ini. var Bil: Integer; procedure Find(B: Integer; I: Integer); var J, R: Integer; begin R := Round(Sqrt(B)); J := 2; while (J <= R) and (B mod J <> 0) do Inc(J); if J <= R then begin Write(J, ' * '); Find(B div J, I + 1); end else if I > 0 then Writeln (B, ' = ', Bil) else Writeln ('Bilangan prima!'); end; begin Write('Masukkan bilangan = '); Readln(Bil); Find(Bil, 0); end. 74. a. b. c. d. e. 75. a. b. c. d. e. 76. Bagaimana output program di atas bila inputnya = 42? 7 * 3 * 2 = 42 Bilangan prima! = 42 2 * 3 * 7 = 42 Salah semua Bagaimana output program di atas bila inputnya = 23? = 23 Bilangan prima! 23 * 1 = 23 = 23 Bilangan prima! Salah semua Bagaimana output program berikut ini?

Ujian Dasar Pemrograman Pascal

10 - 12

NUS: ___________
end; Jumlah := 0; for I := 1 to 5 do Jumlah := Jumlah + Amatan[I]; RataRata := Jumlah / 5; Writeln('Jumlah = ', Jumlah); Writeln('Rata-rata = ', RataRata); Readln; end. Gunakan program yang dibuat oleh Joni ini untuk menjawab soal-soal berikut. 78. Ketika si Joni mencoba menjalankan program tersebut, ternyata compiler menunjukkan sebuah pesan kesalahan yang membuat ia kebingungan. Tahukah Anda kesalahan pertama yang dibuat Joni? a. Judul program (program Statistik) terlalu panjang, maksimum 8 karakter (misalnya: program Stat) b. Procedure Readln (pada baris terakhir program sebelum end.) tidak boleh dipanggil tanpa parameter. Jadi seharusnya: Readln(I); c. Statement for dengan variabel sama tidak boleh diulangi dua kali. Seharusnya dideklarasikan variabel lain, misalnya: var J: Integer; untuk for yang kedua d. Deklarasi array salah, semestinya: var Amatan: array[1..5] of Integer; e. Nama variabel seperti RataRata tidak valid, seharusnya Ratarata 79. Setelah Anda memberi saran demikian, ternyata Joni masih belum bisa meng-compile programnya. Apa sebabnya? a. setiap variabel harus dideklarasikan dengan keyword var sendiri-sendiri. Misalnya: var Jumlah: Integer; var RataRata: Integer; var I: Integer; b. Variabel RataRata tidak harus bertipe Real c. Semua variabel, kecuali I, seharusnya adalah Real, tidak boleh Integer d. Pemisah antar-parameter dalam Write dan Writeln harus titik koma, bukan koma. Misalnya: Writeln('Jumlah = '; Jumlah); e. Semua alasan di atas salah 80. Setelah Joni menuruti semua saran Anda, maka ia bisa mencoba programnya. Ia memasukkan nilai-nilai 5, 5, 5, 6, 6, sebagai input pertamanya. Berapa nilai rata-rata yang diberikan oleh programnya? a. 5.3 b. 5.6 c. 5.4 d. 5 e. 6 81. Joni mengganti operator / dengan div pada baris ke-15 program tersebut. Apa akibatnya? a. program tidak mau di-compile karena operator div tidak dapat digunakan di situ b. nilai rata-ratanya menjadi 5 c. nilai rata-ratanya menjadi 6 d. nilai rata-ratanya menjadi 0 e. nilai rata-ratanya menjadi 2 82. a. b. c. d. e. var var var var var Pernyataan manakah yang valid? A: ^Integer; A: @Integer; A: Integer^; A^: Integer; ^A: Integer;

83. Bagaimana cara menyimpan nilai dengan variabel A di atas? Asumsikan A belum dialokasikan. a. GetMem(A) := 5; b. New(A) := 5; c. New(A); A := 5; d. New(A); A^ := 5; e. GetMem(A); A^ := 5; 84. Bila variabel A sudah tidak diperlukan lagi, bagaimana cara membuangnya? a. FreeMem(A); b. Dispose(A) := 0; c. A := 0; d. A := nil; e. Dispose(A); 85. Seperti apakah keluaran program berikut ini: var A, B: Integer; begin for A := 1 to 5 do begin B := 10 - A; Write (A, B); end; end.

a. 1 9 2 8 3 7 4 6 5 5 b. 1 9 2 8 3 7 4 6 5 5 c. 1928374655 d. 1 9 2 8 3 7 4 6

Ujian Dasar Pemrograman Pascal

11 - 12

Seleksi Awal TOKI 98

NUS: ___________
5 5 e. 1,9 2,8 3,7 4,6 5,5 86. Apakah output program berikut ini? var U: Integer; begin U := 3; Writeln('Umur saya ', U:3, ' tahun'); end. 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 87. Bagaimana cara Anda mengetikkan input untuk program berikut ini? var Umur, Tinggi, Berat: Real; begin Write('Masukkan umur, tinggi, ' + 'dan berat badan Anda: '); Readln(Umur, Tinggi, Berat); end. a. 16, 170, 61.5 b. 16; 170; 61.5 c. 16 170 61.5 d. 16 170 61,5 e. 16; 170; 61,5 88. Bagaimana cara membuat sebuah file teks baru dengan fungsi standar Pascal? a. var F: Text; begin Assign(F, 'MYTEXT.TXT'); Reset(F); end. b. var F: Text; begin Assign(F, 'MYTEXT.TXT'); Rewrite(F); end. c. var F: Text; begin Rewrite(F, 'MYTEXT.TXT'); end. d. var F: Text; begin Assign(F, 'MYTEXT.TXT'); Rewrite(F, 128); end. e. var F: Text; begin Assign(F, 'MYTEXT.TXT'); Append(F); end. 89. Perintah mana yang tidak boleh digunakan untuk file bertipe Text?
Ujian Dasar Pemrograman Pascal 12 - 12 Seleksi Awal TOKI 98

a. b. c. d. e.

Assign Reset EOF FilePos Semua boleh digunakan untuk Text

90. Tipe variabel/ekspresi manakah yang tidak dapat ditampilkan dengan procedure Writeln? a. type T = Integer; b. type T = String; c. type T = Char; d. type T = (Small, Medium, Large); e. Semua valid

Anda mungkin juga menyukai