Anda di halaman 1dari 9

Jawaban: d Penjelasan: Untuk pilihan <a>, tidak tepat karena terdapat operator 'and' yang termasuk operator logika.

Begitu juga dengan pilihan <b>. Pilihan <c> dan <e>, merupakan operator aritmatika.

Jawaban: e Penjelasan: Yang termasuk operator perbandingan adalah nomor <iii>, <iv>, dan <v>. Nomor <i> adalah operator penugasan. Sedangkan nomor <ii> adalah operator logika.

Jawaban: d Penjelasan:Sudah jelas.

Jawaban: a Penjelasan: Operator '++' tidak terdapat pada freepascal.

Jawaban: e Penjelasan:Sudah jelas.

Jawab: a Penjelasan: Sudah jelas.

Jawab: d Penjelasan: Untuk membandingkan string, operator yang digunakan sama seperti membandingkan nilai angka.

Jawab: b Penjelasan: Jika bilangan bernilai 5, maka 2 + bil menjadi 7. Agar bernilai true, ekspresi tersebut harus dalam bentuk 7 < 20.

Jawab: d Penjelasan: Pilihan <a> menggunakan operator penugasan (:=) , sehingga terjadi kesalahan sintaks. Pada pilihan <b> digunakan operator yang tidak terdapat dalam pascal, yaitu '=='. Pilihan <c> kehilangan kata 'then'. Sedangkan pilihan <e>, penggunaan tanda kurung kurang lengkap, seharusnya (a=5) and (b=7).

Jawab: b Penjelasan: Pilihan <a> menggunakan operator penugasan, yang seharusnya tidak terdapat dalam sebuah kondisi. Pilihan <c> terdapat kesalahan pada penggunaan operator perbandingan, yaitu tertukarnya posisi = dan >. Pilihan <d> melupakan kata 'and'. Sedangkan pilihan <e> terdapat kesalahan dalam kondisi. Seharusnya kondisi bernilai true atau false, tidak bernilai angka.

Jawab: b Penjelasan: Dalam flowchart, percabangan digambarkan dengan lambang decision(belah ketupat), yang memiliki 2 panah keluar. Satu bertuliskan 'Y' dan yang lain bertuliskan 'T'.

Jawab: a Penjelasan: Kondisi dalam percabangan adalah ekspresi yang bernilai true atau false saja.

Jawab:d Penjelasan: Nilai dari usia > 17 menjadi false karena usia bernilai 17. Nilai dari kondisi status <> 'menikah' menjadi false. Sehingga nilai menjadi false or false, yang hasilnya adalah false. Sehingga pernyataan if akan mengerjakan perintah kedua.

Jawab: a dan b Penjelasan: Pilihan <d> dan <e> tidak perlu kita analisa lebih lanjut karena perintah cetak yang akan dikerjakan bukan perintah yang kita inginkan. Yang perlu kita perhatikan adalah pilihan <a>, <b>, dan <c>.

Pada tabel, dapat kita lihat bahwa hasil dari kedua ekspresi, yaitu waterflow = 0 dan outputvalue = 1, adalah false. Sehingga pada proses selanjutnya, yaitu false AND false, akan dihasilkan nilai false. Jadi perintah cetak tidak akan dikerjakan. Pada pilihan <a> dan <b>, perintah cetak akan dikerjakan. Karena nilai akhir dari kondisi pada pilihan <a> dan <b> bernilai true.

Jawab: d Penjelasan: Lambang decision(belah ketupat) merupakan lambang yang harus ada. Karena decision melambangkan if dalam program. Sedangkan lambang proses, input/output, preparation, dan konektor, tidak harus ada.

Jawab: a Penjelasan: Pilihan <e> adalah pilihan pertama yang kita coret dari daftar kita, karena menggunakan dua buah kata 'if'. Sedangkan sebuah kata 'if' mewakili sebuah lambang decision. Lambang decision di atas dapat kita terjemahkan menjadi IF m mod n = 0 THEN Lalu kita lihat pada panah yang tertera huruf 'Y'. Di sana terdapat perintah output n faktor m, yang kita terjemahkan menjadi writeln(n, ' faktor ' , m) Pada arah panah 'T' terdapat perintah output n bukan faktor m, yang diterjemahkan menjadi writeln( n , ' bukan faktor ', m);

Jika digabungkan menjadi IF m mod n = 0 THEN writeln(n, ' faktor ' , m) ELSE writeln(n, ' bukan faktor ' , m);

Jawab: a Penjelasan: Percabangan CASE hanya bisa menggunakan tipe char dan tipe angka bulat (byte, integer, longint,dll);

Jawab: c Penjelasan: Variabel abjad akan dibandingkan nilainya dengan karakter 'a', 'b', dan 'c'. Sehingga harus memiliki tipe data yang sama, yaitu char.

Jawab: a dan e Penjelasan: Sintaks case adalah CASE <ekspresi> OF Dari sintaks di atas, pilihan <b> bukan merupakan ekspresi yang benar karena menggunakan operator penugasan. Pilihan <c> dan <d> mengandung kesalahan sintaks yang jelas terlihat. Pilihan <a> dan <e> menggunakan ekspresi yang benar.

Jawab: e Penjelasan: Perulangan FOR dan WHILE termasuk perulangan pretest loop, karena syarat terjadi perulangan diletakkan di atas. Sedangkan REPEAT disebut posttest loop, karena syarat perulangan diletakkan di bawah.

Jawab: a Penjelasan: Perulangan FOR dapat menggunakan tipe data untuk angka bulat dan char.

Jawab: b Penjelasan: Perulangan akan terjadi empat kali, karena untuk setiap bilangan yang ada di antara 2 dan 5 akan terjadi sebuah perulangan. Karena dari bilangan 2 sampai 5 termasuk bilangna itu sendiri terdapat empat bilangan, maka akan terjadi empat kali perulangan.

Jawab: d Penjelasan: Di antara bilangan 5 sampai -5 termasuk bilangan itu sendiri, terdapat 11 bilangan.

Jawab: e Penjelasan: Kita abaikan tipe data dari variabel kontrolnya (i, angka, abjad). Yang perlu kita perhatikan adalah sintaks dari FOR FOR <variabel> := <awal> to <akhir> do atau FOR <variabel> := <akhir> downto <awal> do Pilihan <a> terdapat kesalahan pada penggunaan '='. Pilihan <b> salah, karena terdapat spasi diantara : (titik dua) dan = (sama dengan). Pilihan <c> dan <d> kurang kata 'do'. Pilihan <e> benar.

Jawab: e Penjelasan: Pada perulangan FOR tersebut, i akan memiliki nilai yang naik dari empat hingga sembilan pada tiap kali terjadi perulangan. Pada setiap perulangan, perintah if akan dikerjakan, sehingga terjadi output.

Pada perulangan pertama, i akan bernilai 4, sehingga ekspresi 4 mod 2 = 0 bernilai true. Karena kondisinya true maka komputer akan mengerjakan perintah di bawah 'if'. Yaitu mencetak tanda pagar (#). Pada perulangan kedua, i akan bernilai 5, sehingga ekspresi 5 mod 2 =0 akan bernilai false. Jadi komputer akan mencetak tanda bintang(*). Begitu seterusnya sampai pada perulangan ke enam. Output akhir dari program dapat kita lihat di baris ke enam, yaitu: #*#*#*. Untuk soal 26 27 FUNCTION fak (x, y: integer) : Integer; BEGIN if y:= 0 then fak := 1 else fak := x * fak (x, y-1); END; Writeln (fak(5, 3)); 26. Apa hasil dari program di atas! a. 125 b. 8 c. 81 d. 3 e. 15 Pembahasan : Ini adalah contoh kasus fungsi dengan mempergunakan rekursi (fungsi yang mampu memangil dirinya sendiri) Nilai x awal adalah 5, nilai y awal adalah 3 maka fak (5,3) > 5 * fak (5, 3-1) = 5 * 25 = 125 fak (5,2) > 5 * fak (5, 2-1) = 5 * 5 = 25 fak (5,1) > 5 * fak (5,1-1) = 5 * 1 = 5 fak (5,0) (proses selesai karena y =0) Jadi yang muncul adalah a.125 27. Jika writeln (fak(5,3)) diganti menjadi writeln (fak(4,5)), hasil dimunculkan adalah a. 20 b. 9 c. 1024 d. 64 e. 5 Pembahasan: Kasus ini sama seperti pada soal 1 Nilai x awal adalah 4, nilai y awal adalah 5 maka

fak (4,5) > 4 * fak (4, 5-1) dengan mempergunakan hasil fak ( 4,4) > 4 * 256 = 1024 fak (4,4) > 4 * fak (4, 4-1) dengan mempergunakan hasil fak ( 4,3) > 4 * 64 = 256 fak (4,3) > 4 * fak (4,3-1) dengan mempergunakan hasil fak ( 4,2) > 4 * 16 = 64 fak (4,2) > 4 * fak (4,2-1) dengan mempergunakan hasil fak ( 4,1) > 4 * 4 = 16 fak (4,1) > 4 * fak (4,1-1) = 4 * 1 = 4 fak (4,0) (proses selesai karena y =0) Jadi yang muncul adalah c. 1024 28. Manakah yang salah dari deklarasi dibawah ini a. function info(a:byte):real; b. function info:byte; c. function info(a,b:byte) : real; d. function info(a: real; b:integer):real; e. function info(a:real); Pembahasan: Ingat bentuk dekelarasi dari suatu fungsi FUNCTION nama_fungsi(daftar_fungsi):tipe; - daftar parameter berisi sejumlah parameter - tipe menyatakan tipe dari hasil fungsi - Jika fungsi tidak memiliki parameter, tanda () tidak perlu disertakan. jadi jawabannya adalah e.function info(a:real); Untuk soal 29-30 y := 10; x := 0; for i := 0 to y-1 do begin x:=x+ 2 * i; end; Writeln (x); 29. Berapakah output dari program diatas? a. 112 b. 110 c. 90 d. 72 e. 45 Pembahasan: Program diatas akan mengulang pernyataan x:=x +2*i sebanyak 10 kali dari i = 0 sampai 9. 0 = 0 + 2*0 2 = 0 + 2*1 6 = 2 + 2*2 12 = 6 + 2*3 20 = 12 + 2*4 30 = 20 + 2*5 42 = 30 + 2*6 56 = 42 + 2*7 72 = 56 + 2*8 90 = 76 + 2*9 jadi nilai x yang akan dimunculkan adalah c.90.

2. jika baris kelima (x:=x+2*i) diganti dengan x:= x + i Berapakah output program tersebut? a. 112 b. 110 c. 90 d. 72 e. 45 Pembahasan: 0=0+0 1=0+1 3=1+2 6=3+3 10 = 6 + 4 15 = 10 + 5 21 = 15 + 6 28 = 21 + 7 36 = 28 + 8 45 = 36 + 9 jadi output nya adalah e.45.

Anda mungkin juga menyukai