1.

Seorang pedagang barang elektronik menjual sebuah televisi berwarna layar datar seharga Rp.3.000.000, jika tarif pajak barang elektronik yang tergolong barang mewah tersebut adalah antara 5 % sampai 8 %, maka harga yang paling mungkin untuk televisi tersebut setelah ditambah pajak adalah : (A) Rp. 3.180.000 (B) Rp. 3.100.000 (C) Rp. 3.120.000 (D) Rp. 3.140.000 (E) Rp. 3.250.000 Pembahasan X = Rp 3.000.000 Tarif Pajak = 5% - 8% Harga televisi + pajak 5% = 3.150.000 6% = 3.180.000 7% = 3.210.000 8% = 3.240.000

2. Deklarasi prosedur manakah yang tidak dibenarkan? a. procedure hapus; b. procedure hapus(s:string); c. procedure hapus(var s:string); d. procedure hapus(s:string):boolean; e. procedure hapus(var data); Pembahasan: Untuk penulisan prosedur, tidak diperbolehkan adanya nilai kembali. Sedangkan parameter tanpa tipe data (pada opsi e), dapat dibenarkan. 5. Tipe variabel ekspresi manakah yang tidak dapat ditampilkan dengan procedure Writeln? a. Type T=Integer; b. Type T=String; c. Type C=Char; d. Type T=(Small, Medium, Large) e. Semua valid Pembahasan: Opsi d adalah tipe data enumerasi. Tipe data enumerasi tidak dapat ditampilkan dengan perintah Writeln. 3. Perhatikan program berikut : var s:string; begin s:='TOKI GO GET GOLD!'; delete(s,1,length(s)-12);

length(s)-12) akan menghapus s dari posisi 1 sebanyak panjang s. yaitu 17-12 = 5. Sqrt(5) akan menghasilkan 2. Sehingga yang dihapus adalah karakter ‘TOKI ‘ dan s akan bernilai GO GET GOLD! 4. Keterangan : Length menghasilkan panjang dari S. begin i:=5.writeln(s). GO GET GOLD! b. writeln(k). dimulai dari posisi Index. GO GET GOLD! c. TOKI GO GE Pembahasan: Procedure delete: Deklarasi : procedure Delete(var S: String. di mana x harus positif Fungsi trunc: Deklarasi : Function Trunc (X : Real) : Longint.23 . 0 e. Jika S tidak berisi apa-apa maka akan menghasilkan 0. GET GOLD! d.24 c. k:=trunc(sqrt(i))+1. 2 d. Keterangan : menghasilkan akar pangkat dua dari x. Keterangan : procedure delete akan menghapus S sebanyak count karakter. Apa keluaran program di atas ? a. Index: Integer. Count:Integer). program tidak dapat dijalankan Pembahasan: Fungsi sqrt : Deklarasi : Function Sqrt (X : Real) : Real. Function length: Deklarasi : Function Length (S : String) : Integer. Apa keluaran program di atas ? a. Perhatikan penggalan program berikut : var i.k: integer. 3 b. k:=0. end. 2. Statement delete(s. bernilai antara 0 sampai dengan 255. akan selalu lebih kecil atau sama dengan X. end.1. Keterangan : menghasilkan bilangan bulat dari X. TOKI GO GET e.

Jika tidak ditemukan.B:string. n – p + 1 b. karena (n+p) adalah ganjil maka dari n dan p salah satu ganjil dan yang lain genap. Pada program function pos hanya terdiri dari 1 parameter saja sehingga program tidak akan dapat dijalankan.23) akan menghasilkan 2 Sehingga k:=trunc(sqrt(i))+1. end else Writeln('B'). Huruf ‘B’ tercetak c. a. A bukan. B:='HEBAT'. Mengacu pada program berikut : var A. . Deklarasi : Function Pos (Substr : String. n2 + p2 – 1 d. Apa yang terjadi jika program di atas di jalankan.Trunc(2. dan n + p berharga ganjil. Selisih antara n dan p pasti ganjil sehingga jika ditambah 1 menjadi genap. Terjadi error e.. np c. Tidak bisa di compile Pembahasan: Kesalahan pertama yang akan ditemui program adalah pada function pos. 3p + 5n e. akan menghasilkan 3 5. if (Pos(B)>0) then Begin Writeln('A'). Keterangan : function pos akan menghasilkan urutan atau posisi substr di S. end. (p – n)(n – p) Pembahasan . begin A:='TOKI MEMANG'. Tidak dapat dipastikan d. C:=A+B. maka akan menghasilkan 0.. Jika n dan p adalah dua bilangan bulat. S : String) : Integer. C:string[10]. Huruf ‘A’ tercetak b. 6. manakah dari berikut ini bil ganjil? a.

I. G. · Kuping kanan G tuli shg ia harus paling kanan dari delegasi R. yang mungkin lebih besar atau lebih kecil dari X. 4 Pembahasan: Fungsi frac (lihat pembahasan di atas) Fungsi round Deklarasi : Function Round (X : Real) : Longint. C bukan karena pangkat bulat positif berapapun dari bilangan genap. duduk berseberangan dgn H. Masing-masing delegasi berada pada sisi-sisi memanjang berlainan (satu negara pada sisi yang sama dan ketua duduk di tengah delegasinya). C.7))).1 c. · Para atase militer W. E benar. B. dan E. D bukan karena pangkat bulat positif berapapun dari bilangan ganjil tetap bilangan ganjil. · Baik D maupun F bukan ketua. . Batasan dalam mengatur urutan duduk mereka: · Delegasi W menempatkan A dan B di kedua ujung barisannya. Delegasi-delegasi dari negara W dan negara R duduk berhadap-hadapan pada meja perundingan.dan tidak ada satupun yang berseberangan dengan atase militer R · G bukan atase militer. H.7) akan menghasilkan 0. karena perkalian antara dua bilangan ganjil menghasilkan bilangan ganjil. · C wakil dari kamar dagang. Masing-masing delegasi terdiri atas seorang ketua. end. 0 b. salah seorangnya B. 2 d. kemudian ganjil ditambah genap dan dikurang ganjil menjadi genap. dan ganjil tetap ganjil. tetap genap.7) akan menghasilkan 1 8. Delegasi R beranggotakan F. dan J. didudukkan berdampingan. Frac(3.B bukan karena perkalian antara suatu bilangan genap dengan bilangan apapun akan menjadi genap. 3 e. Delegasi W beranggotakan A.7 Round(0. 7. D. Apa keluaran program di atas ? a. dua atase militer dan dua wakil kamar dagang negara masing-masing. dan jumlah dua bilangan ganjil menjadi genap. Perhatikan potongan program berikut : begin writeln(round(frac(3. Keterangan : membulatkan bilangan X.

sehingga (atase militer dengan bold) A –x2–x3–x4– B y1–y2–y3–y4–G Dari pernyataan (6) dan (4) diperoleh C = x2 dan y2 = H. Wakil kamar dagang yang duduk di sebelah I b. Atase militer yang duduk di sebelah I e.x5} adalah {A. Jika wakil kamar dagang maka (B) salah karena H atase militer dan (C) salah karena B ada di depan G. Diberikan penggalan program sebagai berikut. Wakil kamar dagang yang duduk berseberangan dengan B d. Berapakah nilai f(5) ? (A) 125 (B) 0 .A} Dari (2) maka y5=G yang karena pernyataan (4) dan (5) (G bukan a. (note: program ini merupakan Pascal-like pseudocode. 9.Manakah yang paling mungkin mengenai F berikut? a.m dan B adalah a. atau F=y4 (wakil kamar dagang). (Note: ini bukan satu-satunya kemungkinan. Jadi tinggal pilihan (A) yang paling mungkin. function f(n: int) begin if n=0 then f:=0 else f := n + f(n-1). Jika atase militer maka (D) dan (E) salah karena sebelah y1 adalah H.Kemungkinan lainnya masih ada tapi tidak ada di kelima pilihan itu). end. Atase militer yang duduk di sebelah J Pembahasan Dibuat diagram sbb x1–x2–x3–x4–x5 negara W y1–y2–y3–y4–y5 negara R Dari (1) kemungkinan {x1. sehingga A –C –x3–x4– B y1–H –y3–y4–G Dari pernyataan (3) dan diagram di atas D = x4 dan F = y1 atau y4 A –C –E –D –B y1–H –y3–y4– G Jadi tinggal 2 kemungkinan F=y1 (atase militer). secara sintaks belum tentu sama dengan Pascal).m) menyebabkan x5=B. Wakil kamar dagang yang duduk di sebelah H c.B} atau {B.

yaitu mereka berdua adalah penipu. B mengatakan “Golongan kami berbeda?” Hal ini mengandung arti bahwa golongan A dan B adalah sama. maka nilai f = n + f (n-1) Berapa nilai f(5)…? Perhitungan : f(5). kita lihat pernyataan yang disampaikan oleh B. dan yang lain adalah penipu yang selalu berbohong. (E) Keduanya adalah penipu. maka nilai f = 0 else f:= n + f (n-1) . secara awam artinya adalah bila nilai n = 0. jawaban yang benar adalah (D) 15 10. Jika Anda bertemu dengan dua orang A dan B. berarti A juga seorang ksatria (jujur). . dimana n = 5. (C) Keduanya adalah ksatria.(C) 5 (D) 15 (E) 25 Jawaban soal nomor 9: Soal ini merupakan soal algoritma pemrograman mengenai function. ksatria yang selalu bicara jujur. berarti A dan B adalah penipu karena A sudah berbohong dengan mengatakan bahwa B adalah seorang ksatria padahal sebenarnya B adalah penipu). Inti soal di atas adalah sebagai berikut : if n=0 then f:=0 . jawabannya adalah (E) Keduanya adalah penipu. maka f = 5 + f(4) = 5 + (4 + f(3)) = 5 + 4 + (3 + f(2)) = 5 + 4 + 3 + (2 + f(1)) = 5 + 4 + 3 + 2 + 1 + 0 = 15 Dengan demikian. (B) A adalah seorang penipu dan B adalah seorang ksatria. yang berarti bila nilai n ≠ 0. Dengan demikian. Golongan apakah yang tepat untuk A dan B jika A berkata “B adalah seorang ksatria” dan B berkata “Golongan kami berbeda”? (A) A adalah seorang ksatria dan B adalah seorang penipu. Jawaban soal nomor 10: Perhatikan deskripsi pertanyaan di atas! A mengatakan bahwa B adalah seorang ksatria (kalau hal ini benar. (D) Terkadang A dan B dapat berganti golongan. Di sebuah pulau terdapat dua golongan penduduk. tetapi kalau ini tidak benar. Untuk memastikannya.

(C) Jumlah murid di tiap kelas lanjutan yang mendapat nilai 10 naik lebih dari 8%. (E) Jumlah murid kelas lanjutan yang mendapat nilai 10 naik lebih banyak dibanding murid kelas pemula. III. karena mungkin saja dari total kenaikan 8% tersebut. Jawaban soal nomor 16: Untuk menjawab pertanyaan ini. Jawaban (E) : pernyataan ini pasti benar. salah satu dari kelas lanjutan mendapat nilai lebih dari 8%. Ibu Guru mengajarkan kursus Bahasa Inggris. Dari alternatif jawaban yang disediakan.11. Jika Maya makan bakso dan tidak pergi ke bioskop maka hari itu bukan hari Sabtu. ”Hanya pada hari Sabtu. Maya makan bakso. tetapi murid kelas pemula yang dapat nilai 10 turun. Ini berarti bahwa jumlah murid kelas lanjutan yang mendapat nilai 10 naik lebih banyak daripada murid kelas pemula. walaupun total murid yang mendapatkan nilai 10 bertambah 8%. jadi jawaban (C) ini salah. alternatif jawaban yang paling benar adalah (E) Jumlah murid kelas lanjutan yang mendapat nilai 10 naik lebih banyak dibanding murid kelas pemula. Kalimat manakah yang dapat disimpulkan dari uraian di atas: (A) Ibu Guru memiliki jumlah murid di kelas lanjutan lebih banyak daripada di kelas pemula. 12. Jika suatu hari Maya makan bakso dan pergi ke bioskop maka hari itu adalah hari sabtu. sesudah itu pergi ke bioskop. (D) Paling tidak satu dari kelas lanjutan memiliki kenaikan mendapat nilai 10 lebih dari 8%. manakah kalimat berikut ini yang juga harus benar? I. Jawaban (D) : ada kemungkinan benar. kita tinjau alternatif jawaban yang disediakan satu per satu. Jawaban (A) dan (B) tidak mungkin benar. . (B) Ibu Guru memiliki jumlah murid di kelas lanjutan lebih sedikit daripada di kelas pemula. namun jumlah murid dari kelas pemula yang mendapatkan nilai 10 berkurang. maka Maya tidak makan bakso dan tidak pergi ke bioskop. II. Jawaban (C) : tidak bisa dipastikan bahwa jumlah murid tiap kelas lanjutan yang mendapat nilai 10 naik lebih dari 8%. Dari pernyataan pada soal diketahui bahwa total murid yang mendapat nilai 10 naik 8%. Dari hasil ujian pertama dan kedua. karena soal tidak menyinggung tentang jumlah murid per kelas.” Bila kalimat tersebut benar. Jika bukan Hari Sabtu. Ada tiga kelas tingkat pemula dan dua kelas tingkat lanjutan.

Maya hanya makan bakso. Dari tiga pernyataan tambahan. Setiap kamar pada setiap gedung mulai dari lantai ke 2 terus ke atas. . maka hari itu adalah hari Sabtu. Jika Maya makan bakso dan tidak pergi ke bioskop. maka hari itu pastilah hari Sabtu) III. (D) Kamar-kamar di lantai ke empat memiliki tangga darurat. pernyataan yang benar adalah pernyataan II dan III. kita harus menganalisis pernyataan-pernyataan lain tersebut. Jika bukan hari Sabtu. maka hari itu bukan hari Sabtu. Perhatikan pernyataan pada soal mengandung arti bahwa ”Hanya pada hari Sabtu. dan dia tidak pergi ke bisokop. bukannya ”Hanya pada hari Sabtu. Jika hal itu benar. kita diminta untuk menentukan pernyataan yang sesuai dengan pernyataan pada soal. kalau Maya makan bakso dan pergi ke bioskop. Maya makan bakso dan pergi ke bioskop”) II. 13. Jika suatu hari Maya makan bakso dan pergi ke bioskop. dan berarti jawaban yang benar adalah (E) hanya II dan III. karena bisa saja Maya makan bakso ataupun pergi ke bioskop di hari selain Sabtu. (C) Hanya kamar-kamar di atas lantai ke dua yang memiliki tangga darurat. (Pernyataan ini benar. maka Maya tidak makan bakso dan tidak pergi ke bioskop.(A) (B) (C) (D) (E) hanya I hanya II hanya II hanya I dan III hanya II dan III Jawaban soal nomor 11: Pernyataan pada soal adalah: “Hanya pada hari Sabtu. yaitu sebagai berikut: I. manakah dari berikut ini yang benar? (A) Kamar-kamar di lantai ke dua tidak memiliki tangga darurat. Sesuai pernyataan pada soal. Gedung-gedung asrama dibangun dengan 2 hingga 6 lantai. sesudah itu pergi ke bioskop”. (B) Kamar-kamar di lantai ke tiga tidak memiliki tangga darurat. Untuk keperluan ini. (Pernyataan ini benar. harus memiliki tangga darurat untuk menghadapi kemungkinan kebakaran. sesudah itu pergi ke bioskop”. (Pernyataan ini salah. Maya makan bakso. (E) Beberapa dari gedung-gedung asrama berlantai dua tidak memiliki tangga darurat. Maya makan bakso. Berarti hari itu bukan hari Sabtu) Dengan demikian.

end akan di jalankan.write(5) Jadi. end. yang akan tercetak adalah 255 15. 14. Pada pemanggilan jalan(49) pada procedure di atas ini apa yang akan dicetaknya kemudian? Pembahasan perhatian dengan baik program tersebut. end. end. begin jalan(n div 5). write(n mod 5 + 1). . jika nilai n tersebut lebih besar dari nol maka statmen dibawahnya akan di jalankan. begin if n > 0 then begin jalan(n div 5).jalan(9) ‐ jalan(1) ‐ jalan(0) ‐ write(2) ‐ write(5) .Jawaban soal nomor 18: Pernyataan jawaban yang paling sesuai dengan pernyataan pada soal adalah jawaban (D) Kamar-kamar di lantai ke empat memiliki tangga darurat. Diberikan penggalan program berikut : procedure jalan(n: integer). jalan(49) : . write(n mod 5 + 1). karena terdapat begin … end di bawahnya jadi 2 statmen di antara begin ..