• Tidak ada hasil yang ditemukan

BAGIAN A. PILIHAN GANDA Silanglah jawaban yang benar pada lembar jawaban. Jawaban benar bernilai 3, salah atau kosong bernilai 0.

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAGIAN A. PILIHAN GANDA Silanglah jawaban yang benar pada lembar jawaban. Jawaban benar bernilai 3, salah atau kosong bernilai 0."

Copied!
6
0
0

Teks penuh

(1)

UJIAN TENGAH SEMESTER GANJIL 2012 - 2013 ALGORITME DAN PEMROGRAMAN SELASA, 30 OKTOBER 2012 15.30-17.30

Ketentuan Ujian:

1. Ujian bersifat Catatan Tertutup

2. Jawaban dituliskan dengan pulpen pada lembar jawaban yang disediakan

3. Di atas meja hanya diperbolehkan meletakkan KTM, alat tulis, kertas soal, dan kertas jawaban

4. Tidak diperkenankan membawa dan mengaktifkan alat komunikasi dan alat elektronik dalam bentuk apapun 5. Jika ada pertanyaan, silahkan bertanya pada pengawas, TIDAK kepada sesama peserta

6. Setelah selesai tinggalkan lembar soal dan jawaban di atas meja dalam keadaan tertutup

7. Segala bentuk pelanggaran pada aturan ini serta kecurangan selama ujian akan dicatat pada berita acara dan ujian yang bersangkutan akan diberi nilai NOL

BAGIAN A. PILIHAN GANDA

Silanglah jawaban yang benar pada lembar jawaban. Jawaban benar bernilai 3, salah atau kosong bernilai 0.

1. Manakah di antara pernyataan berikut yang menimbulkan kegagalan kompilasi?

A. float x = 5; int z = x + 1.6; C. int x = 3, y = 1, z = x == y; B. int x = 4, float z = 1.6; D. int x; float y = (x, 1.4); 2. Nilai pendapatan negara dalam APBN-P 2012 adalah Rp1.358,2 triliun (1012). Tipe data yang paling tepat

digunakan untuk menyimpannya adalah:

A. double C. unsigned long int

B. long double D. long long int

3. Diketahui beberapa ekspresi berikut:

A. (A && B) || ((C || D) || E) || F B. ((A || B) || (C || D) || E) && F C. (A && B) && (C || D) && (E || F) D. A || B && C && D || E && F

Apabila A dan B bernilai -1, C dan D bernilai 1, E dan F bernilai 0, ekspresi yang bernilai FALSE adalah:

A. b dan c B. a dan c C. b dan d D. a dan d

4. Apakah keluaran program berikut jika diberikan masukan 2 20 40? #include <stdio.h>

int main() {

int a; float b;

scanf("%d %f", &a, &b); printf("%d", (a = b)/10); return 0;

}

A. 0 B. 1 C. 2 D. 4

5. Apakah keluaran program berikut jika diberikan masukan 2 5? #include <stdio.h>

int main() { int a, b;

scanf("%d %d",&a, &b);

if(a = b) printf("%d", a*b + 2); else printf("%d", a+1);

return 0; }

A. 3 B. 6 C. 12 D. 27

6. Apakah keluaran program pada soal sebelumnya jika diberikan masukan 3 0?

(2)

7. Perhatikan program di bawah ini. #include <stdio.h> int main() {

int a,b,c;

scanf("%d %d %d",&a, &b, &c); if(a>b+c || b<c) {

if(a-b>=0 && a-c<0) printf("OKE"); else printf("ERROR");

} else {

if(a+b>3 && b+c>=5) printf("ERROR"); else printf("OKE");

}

return 0; }

Manakah masukan yang TIDAK menghasilkan keluaran “ERROR” ?

A. 5 1 2 B. 1 3 2 C. 1 2 4 D. 1 3 1

8. Apakah keluaran dari program berikut jika diberikan masukan 11 3? #include <stdio.h>

int main() { int a, b, c;

scanf("%d %d", &a, &b); c = a/b; switch(a%b) { case 0: printf("%d ",c++); case 1: printf("%d ",c++); case 2: printf("%d ",c++); case 3: printf("%d ",c++); default: break; } return 0; }

A. Program mengalami compile error. B. 3 C. 4 D. 3 4 9. Bandingkan dua potongan program berikut:

Potongan program A Potongan program B

i = 5; while (n && i) { printf("%d", (i--, n)); if (n>0) n--; else n++; } i = 5; do { printf("%d", n); if (n <= 0) n++; else n--; } while (n && i--);

Pernyataan yang BENAR tentang keduanya adalah: A. Keluaran keduanya sama untuk n >= 0 B. Keluaran keduanya berbeda untuk n = 0

C. Keluaran A untuk n < 0 sama dengan keluaran B untuk n > 0 D. Keluaran A berbeda dengan keluaran B untuk n <= 0 10. Apakah keluaran program berikut jika diberikan masukan 60 7?

#include <stdio.h> int main(){

int u, s;

scanf("%d %d", &u, &s); while (u >= s) u -= s; printf("%d", u);

return 0; }

(3)

11. Apakah keluaran program berikut jika diberikan masukan 10? #include <stdio.h> int main() { int n; scanf("%d", &n); do { printf("%d ", n); } while (--n); return 0; } A. 10 9 8 7 6 5 4 3 2 1 0 C. 9 8 7 6 5 4 3 2 1 0 B. 10 9 8 7 6 5 4 3 2 1 D. 9 8 7 6 5 4 3 2 1

12. Untuk program pada soal sebelumnya, nilai n berapakah yang akan menyebabkan loop menjadi infinite loop?

A. n <= 0 B. n < 0 C. n > 0 D. n >= 0

13. Apakah keluaran program berikut? #include <stdio.h> int main(){ int k, c; c = 10; for(k = 0; k<=5; k++){ if ((k+c)%5) c++; else c+=c; } printf("%d", c); return 0; } A. 10 B. 45 C. 50 D. 90

14. Apakah keluaran program berikut? #include <stdio.h> int main(){ int k = 0, a = 2; for(k++; k<=10; k+=a){ printf("%d ",k); a++; } return 0; } A. 1 2 4 6 8 B. 1 4 8 C. 0 3 7 D. 1 2 4 7

15. Perhatikan program berikut. #include <stdio.h> int main(){ int k,x=0,n; scanf("%d",&n); for(k=1;k<=n;k++) x+=(2*k); printf("%d", x); return 0; }

Keluaran program dapat diformulasikan sebagai:

(4)

16. Apakah keluaran dari program berikut? #include <stdio.h>

int main(){ int i=1;

for(; 10>=(++i); i+=1) printf("%d ", i++); return 0;

}

A. 2 5 8 B. 3 6 9 C. 2 5 8 11 D. 3 6 9 12

17. Apakah keluaran dari potongan program berikut jika diberikan masukan 2 3? int i, j, n, m;

scanf("%d %d", &n, &m); for (i=1; i<=n; i++) {

for (j=i; j<=m; j++) printf("a"); printf("b");

printf("\n"); }

A. ababab B. aaab C. aaab D. aaab

abab aab aab aaab

ab

18. Apakah keluaran dari potongan program berikut? int a=5, b;

while (a>0) {

for(b=1; b<=a; b++) printf("a"); printf("b"); a/=2;

}

A. aaaaabaabab B. aabbaabb C. abab D. ababababababab

19. Apakah keluaran program berikut? #include <stdio.h> int misteri(int, int); int main() {

int a=5, b=10, c=20;

printf("%d %d\n", c, misteri(a,b)); return 0;

}

int misteri(int a, int b) { int c = a + b;

printf("%d ",c); return a*b; }

A. 20 50 B. 15 20 50 C. 15 50 D. 15 15 50

20. Perhatikan fungsi berikut. int misteri(int n) { int t=1;

while (n--) t*=n--; return t;

}

Nilai misteri(6) adalah:

(5)

BAGIAN B. ISIAN SINGKAT

Isilah dengan jawaban yang singkat dan tepat pada lembar jawaban yang disediakan.

Jangan menambah atau mengurangi baris program di luar instruksi soal. Poin sempurna untuk tiap soal adalah 8.

1. Lengkapilah program di bawah ini yang akan menerima masukan dua bilangan bulat dan menampilkan rata-rata keduanya (3 angka di belakang titik desimal) dengan mengganti A sampai dengan D dengan pernyataan atau ekspresi yang tepat.

#include <stdio.h> int main(){ int i, j; float k; scanf("A",&i, &j); k = B / C printf(D, k); return 0; }

2. Sebuah toko yang sedang mengobral barang-barangnya membuat aturan diskon sebagai berikut:

a. Jika barang tersebut adalah barang baru, maka diskon = 10%

b. Jika barang tersebut adalah barang lama, maka aturannya adalah sebagai berikut: i. Jika harga barang adalah Rp 0 – Rp 50.000, maka diskon adalah 15% ii. Jika harga barang adalah Rp 50.001 – Rp 200.000, maka diskon adalah 20% iii. Jika harga barang di atas Rp 200.000, maka diskon adalah 25%.

Lengkapilah program di bawah ini yang akan menerima masukan berupa harga barang sebelum diskon dan menampilkan keluaran berupa harga yang sudah didiskon (yang harus dibayarkan) dengan mengganti A sampai dengan G dengan

pernyataan atau ekspresi yang tepat. Untuk membedakan antara barang baru dengan barang lama, program menerima

input variabel kode yang bernilai 1 (barang baru) atau 2 (barang lama). #include <stdio.h>

int main() {

int kode; float harga_asli, harga_diskon; scanf("%d %f", &kode, &harga_asli); if(A) { B; printf("%.2f", harga_diskon); } else { if(C) D; else if(E) F; else G; printf("%.2f", harga_diskon); } return 0; }

3. Ubahlah pernyataan baris ke-3 pada potongan program berikut menjadi loop dengan while yang keluarannya ekivalen. Jawaban bisa terdiri atas beberapa baris.

1 int a, b, c = 0; 2 scanf("%d",&b);

3 for(a=b; a>0; c+=a, a-=2);

4 printf("%d\n", c);

4. Perhatikan program berikut. Lakukan tracing untuk masukan 5 dengan melengkapi tabel pada lembar jawaban. #include <stdio.h> int main(){ int a, b, hasil, n, k; scanf("%d",&n); hasil = a = b = 1; for(k = 3; k<=n; ++k){ hasil = a + b; a = b; b = hasil; } return 0; }

5. Perhatikan fungsi berikut:

int misteri(int a, int b) { int i = a, t = 0;

for (; i<b; i+=a) t+=a; return t;

}

(6)

LEMBAR JAWABAN UJIAN TENGAH SEMESTER GANJIL 2012 - 2013 ALGORITME DAN PEMROGRAMAN

SELASA, 30 OKTOBER 2012 15.30-17.30

BAGIAN A

Silanglah jawaban yang benar pada lembar jawaban. Jawaban dapat diganti dengan mencoret jawaban lama dengan dua garis horizontal. Jangan gunakan pensil atau tip-eks.

1 A B C D 11 A B C D 2 A B C D 12 A B C D 3 A B C D 13 A B C D 4 A B C D 14 A B C D 5 A B C D 15 A B C D 6 A B C D 16 A B C D 7 A B C D 17 A B C D 8 A B C D 18 A B C D 9 A B C D 19 A B C D 10 A B C D 20 A B C D BAGIAN B

Tuliskan jawaban pada ruang yang disediakan.

1. Tuliskan jawaban pada tabel berikut.

Pernyataan/Ekspresi A

B C D

2. Tuliskan jawaban pada tabel berikut.

Pernyataan/Ekspresi A B C D E F G

3. Tuliskan jawaban di ruang berikut.

4. Jika diberikan masukan 5, lakukan tracing dengan melengkapi tabel berikut.

n hasil a b k

5. Nilai misteri(3, 15) adalah:

a b i t

Referensi

Dokumen terkait

Berdasarkan pada teori sinyal yang digunakan dalam penelitian ini yang menyatakan bahwa informasi perusahaan harus disampaikan kepada pihak eksternal untuk dapat

Judul Tesis : PENILAIAN KUALITAS PELAYANAN PUBLIK PADA SISTEM ADMINISTRASI MANUNGGAL SATU ATAP (SAMSAT) KELILING UNIT PELAYANAN TEKNIS DINAS PENDAPATAN PROVINSI

Bagian Sar-ras Sie Rumah Tangga Ke-aa Bagian Umum dan Kese0retariatan Penanggung  $a,a/ Kini0 .. KLINIK BUNGA MELATI  Jl. Jaksa Agung Suprapto

Ada 3 (tiga) pesan kunci MPS, yaitu 1) setiap persalinan ditolong oleh tenaga kesehatan terlatih; 2) setiap komplikasi obstetri dan neonatal mendapat pelayanan yang

Indikator Output Kegiatannya adalah Menyediakan informasi berupa berita kegiatan Bappeda Kota Bogor dan produk perencanaan pembangunan melalui website. Realisasi

Berdasarkan hasil uji dapat disimpulkan bahwa karakteristik demografi usia, pendapatan, dan tingkat pendidikan memiliki hubungan positif dan signifikan dengan

Istilah ini juga mengacu kepada pengkodean dan pemeliharaan source code sebuah program, namun dengan cakupan yang lebih luas, yaitu mengikutsertakan semua hal

Potensi energi panas bumi di Kabupaten Solok diperkirakan mencapai 300 Mw (Megawatt) dari total 1656 Mw potensi energi panas bumi yang tersebar pada 16 titik di tujuh