Anda di halaman 1dari 14

YAYASAN BAKTI

SEKOLAH MENENGAH KEJURUAN


SMK BAKTI
Terakreditasi: A
Program Keahlian : Akuntansi, Adm. Perkantoran dan Multimedia, TKJ
B
Jl. Dr. Soeparno No. 13, Purwokerto 53111 Telp. (0281) 636740 Fax. 0281633422, http://www.smk-bakti-pwt.sch.id

UJIAN SEKOLAH BERSTANDAR NASIONAL


TAHUN PELAJARAN 2018/2019

NASKAH SOAL

Mapel/Kompetensi : PEMROGRAMAN DASAR Hari, Tanggal :


Kelas/Jurusan : XII MM Waktu :
I. Pilihlah salah satu jawaban yang paling benar dengan cara memberi tanda silang
pada jawaban A,B,C,D atau E pada lembar jawab yang tersedia.

1. Pernyataan berikut ini yang tidak benar dari struktur algorithma bahasa C adalah ...
A. pada bahasa c semua variabel yang akan dipakai tidak perlu dideklarasikan
dahulu
B. suatu pernyataan adalah satu atau beberapa ekspresi yang diakhiri dengan tanda
titik koma (;)
C. blok pernyataan adalah terdiri dari satu atau beberapa pernyataan yang diawali
dan diakhiri dengan tanda {}
D. blok fungsi terdiri dari satu atau beberapa pernyataan yang dirancang untuk
melakukan proses tertentu.
E. blok fungsi dimulai dengan nama fungsinya () dan tanda {}

2. Suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di
dalam proses program disebut dengan...
A. tipe data
B. konstanta
C. variabel
D. parameter
E. fungsi

3. Tipe data yang digunakan untuk data karakter pada bahasa C adalah ....
A. int
B. float
C. double
D. str
E. char

4. Operator penugasan disimbolkan dengan tanda....


A. /
B. +
C. *
D. –
E. =

5. Perhatikan code program berikut ini!


#include <stdio.h>
main()

1
{
Float a,b,c,d;
a = 3.0f;
b = 4.0f;
c = 7.0f;
d = b*b-4*4*a*c;
printf(“Diskriminan =%f\n”,d);
}

Output dari program diatas adalah ....


A. -83.000000
B. -84.000000
C. -85.000000
D. -86.000000
E. -87.000000

6. Fungsi dari simbol di samping adalah...


A. mengawali dan mengakhiri sebuah flowchart
B. menghubungkan flowchart pada halaman yang berbeda
C. menghubungkan flowchart pada halaman yang sama
D. untuk memberikan harga awal
E. untuk kondisi perulangan

7. Perhatikan flowchart berikut

Pernyataan yang tepat mengenai flowchart di atas adalah…


A. jika input = 0, output=0
B. jika input=6, output = 6
C. jika input = 1, ouput =1
D. jika input = 8, output=2
E. jika input =5 output=0

8. Di berikan kondisi seperti berikut:


 P=20;
 P=P+5;
 Q=P;
Nilai P dan Q masing-masing adalah
A. 20 dan 20
B. 20 dan 25
C. 25 dan 25
D. 5 dan 20
E. 5 dan 25
2
9. Kode program berikut yang menunjukkan struktur pengulangan dengan kondisi di akhir
adalah…

A.

B.

C.

D.

E.

10. Perhatikan kode program Java berikut

Jika variabel warna diganti menjadi “kuning”, baris program yang dijalankan setelah
baris ke-4 adalah…
A. baris ke-5
B. baris ke-7
C. baris ke-9

3
D. baris ke-10
E. baris ke-13

11. Keluaran dari kode program berikut adalah….

A. can drive
B. can not drive
C. thank you
D. can drive thank you
E. can not drive thank you

12. Pernyataan yang dapat digunakan untuk pengambil keputusan dari sejumlah pilihan yang
mungkin terjadi adalah...
A. perulangan
B. percabangan
C. fungsi
D. operator
E. parameter

13.
a. mulai
b. menentukan nilai siswa
c. jika nilai siswa (0 – 100) > 75 tergolong baik
d. jika nilai siswa (0 – 100) <= 75 tergolong cukup
e. tampilkan hasil
f. selesai
Dari algorithma diatas adalah ....
A. algorithma percabangan 2 kondisi
B. algorithma percabangan 1 kondisi
C. algorithma percabangan multi kondisi
D. algorithma pemilihan 1 kondisi
E. algorithma pemilihan 2 kondisi

14. Perhatikan flowchat berikut : start

Input
kode

salah salah
kod kod
e==’ e==’
A’ B’
70
bena bena
r r

“Honda” “Yamaha” “Kode


salah”

4
finish
Jika diberikan input kode= Z, maka akan muncul output... .
A. honda
B. yamaha
C. toyota
D. suzuki
E. kode salah

15. Jika kondisi yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang
dilaksanakan, dan jika kondisi yang diperiksa bernilai salah maka pernyataan kedua yang
dilaksanakan. Kodisi tersebut merupakan struktur dari kondisi…
A. switch…case
B. do…while
C. for
D. if…else
E. while

16. Perhatikan potongan program di bawah ini :

1i
int x;
x = 1; 2i
while(x <= 10)
3i
{
4i
printf(" %d BAHASA C \n", x);

x++;
5i
}

Yang disebut sebagai nilai awal adalah pada bagian... .


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

17. Pengulangan dengan kondisi di akhir adalah bentuk pengulangan dimana kondisi untuk
pengulangan di letakan di akhir perintah, dibawah ini dengan kondisi di akhir adalah…
A. while
B. repeat until
C. switch…case
D. if…else
E. for

18. Perhatikan potongan program berikut :


int x,angka;

printf("Masukkan sebuah angka : ");

scanf("%d",&angka);

for(x=5; x<=angka; x=x+5)

5
{

printf(" %d ",x);

Akan muncul angka 5 dan 10 jika variabel angka diberikan inputan.... .


A. 1
B. 2
C. 10
D. 5
E. 5 dan 10

19. Perhatikan source code berikut

Main()
{
Int bil=10;
Clrscr();
Printf(“\n %d”, bil);
Printf(“\n %d”, bil++);
Printf(“\n %d”, bil);
Getche();
}

Dari potongan syntak program diatas, yang menunjukan perulangan dengan pencacah
naik adalah…
A. bil++
B. getche();
C. int bil
D. clrscr()
E. main()

20. Perhatikan flowchart di bawah ini :

start

No = 100

cetak No

No = No - 20

ya
No >= 10

tidak

end

Output yang dihasilkan dari flowchart di atas adalah… .


A. 100 80 60 40 20
B. 100 90 80 70 60 50 40 30 20 10
C. 10 20 30 40 50 60 70 80 90 100
D. 20 40 60 80 100

6
E. 100

21. Perhatikan source code berikut

Int main()
{
Int x = -5, y = 2;
x+ = 1;
If(x < 0)
If(y > 0) x = y;
else y = x;
Return 0;
}

Nilai akhir variabel x dan y adalah …


A. x = 0, y = 0
B. x = 1, y = 1
C. x = -4, y = -4
D. x = 2, y = 2
E. x = -4, y = 2

22. Perhatikan potongan program di bawah ini :


int x;

for(x=1; x<=10; x=x+2)


{
printf("%d ", x);
}

Output dari kondisi di atas adalah... .


A. 1 dan 10
B. 9 5 7 3 1
C. 1 2 3 4 5 6 7 8 9 10
D. 1 3 5 7 9
E. 10 9 8 7 6 5 4 3 2 1

23. Perhatikan source code berikut

Int main()
{
Int i, batas;
Printf (“Berapa banyak bilangan yang akan
ditampilkan?”);
Scanf(“%d”, &batas);
For( i = 1; i<=batas ; i++)
Printf(“%d ” , i);
Return 0;
}

Output dari program diatas jika yang diinputkan 6, adalah …


A. 0 1 2 3 4 5
B. 1 2 3 4 5 6

7
1

5
C.
0

4
D.
E. 1 2 3 4 5 6 7 8

24. Perhatikan listing program berikut :

#include <stdio.h> Output yang muncul dari kondisi di atas


#include <conio.h> adalah.... .
main() A. 1 2 3 4 5
{ B. 5 5 5 5 5
int x; x=1; C. 5 4 3 2 1
D. 1 1 1 1 1
do
E. 1 3 5
{
printf(" 5 "); 25. Perhatikan kode program dibawah ini!
x=x+1;
}while(x<=5); begin
getch(); p := 1;
} Repeat Write(p);
p := p + 1;
until p = x;
end.

Supaya menghasilkan bilangan cacah dibawah 11 maka nilai x adalah …


A. 8
B. 9
C. 11
D. 10
E. 13

26. Perhatikan potongan program berikut :


for( x=1;x<=50;x=x*2)
{
printf("% 5d ",x);

Output yang dihasilkan dari kondisi di atas adalah… .

8
A. 32 16 8 4 2 1
B. 1 2 3.....49 50
C. 50 49 48.... 2 1
D. 1 dan 50
E. 1 2 4 8 16 32

27. Jika yang ingin ditampilkan seperti dibawah ini :

Kode perulangan yang benar adalah…

Main(){
Int a, b;
for(a=5;a>=1;a++)
{
for(b=a;b>=1;b--)
{
printf("*");
}
printf("\n");
A.}
B.

Main(){
Int a, b;
for(a=5;a>=1;a++)
{
for(b=a;b>=1;b++)
{
printf("*");
}
C.printf("\n");
}
Main(){
Int a, b;
for(a=5;a>=1;a--)
{
for(b=a;b>=1;b--)
{
printf("*");
}
printf("\n");
}

9
Main(){
Int a, b;
for(a=5;a>=1;a--)
{
for(b=a;b>=1;b++)
{
printf("*");
}
printf("\n");
D.}

Main(){
Int a, b;
for(a=5;a>=1;a--)
{
for(b=a;b>=1;b--)
{
printf("\n");
E. }

28. Perhatikan potongan program di bawah ini :

if(bilangan%2==0)

printf("%i adalah Bilangan Genap", bilangan);

}else

printf("%i Bilangan Ganjil", bilangan);

Jika bilangan diberikan input 8 maka akan muncul output... .


A. bilangan genap
B. bilangan ganjil
C. 8 adalah bilangan genap
D. 8 adalah bilangan ganjil
E. 8 adalah bilangan positif

29. Error yang disebabkan ketidaksesuaian algoritma program dengan tujuan program
dibuat merupakan jenis kesalahan ….
A. runtime error
B. kesalahan penulisan sintaks
C. kesalahan logika pemrograman
D. kesalahan running minimum requirement program
E. error

30. Perhatikan potongan program di bawah ini :


char x[4] = "100", y[5] ="10.3";
int a;
float b;

10
a = atoi(x);
b = atof(y);
printf("Semula : \n A = %s \n B = %s \n \n", x,y);
printf("Setelah dikonversi :\n A = %i \n B = %.2 f",a,b);

Hasil konversi menjadi.... .


A. a = 100 dan b = 10.30
B. a = 100 dan b = 10
C. a = 100 dan b = 10.3
D. a = 100 dan b = 10.300
E. a = 100 dan b = 10.3000

31. Perhatikan kode program di bawah ini :


#include <stdio.h>
main ( ) {
int pangkatDua = 1
while (pangkatDua < = 100 )
pangkatDua = pangkatDua * 2 ;
printf (“Nilai pangkatDua = %d\n”, pangkatDua ) ;

return 0;

Berdasarkaan kode program di atas, jenis kesalahan yang dilakukan adalah ….


A. runtime error
B. kesalahan penulisan sintaks
C. kesalahan logika pemrograman
D. kesalahan running minimum requirement program
E. error

32. Berikut ini cara mendeklarasikan array yang kurang tepat adalah... .
A. int number[8];
B. int number{}={-3,5,6,-6,7,9,23};
C. double nilai[100];
D. int number[10]={5,10,15};
E. int number[]={-3,5,6,-6,7,9,23};

33. Bentuk umum dari deklarasi array multidimensi adalah ....


A. Tipe_data nama_array{jumlah_elemen_matriks][jumlah_elemen_baris]
[jumlah_elemen_kolom};
B. Tipe_data_nama_array[jumlah_elemen_matriks][jumlah_elemen_baris]
[jumlah_elemen_kolom];
C. Tipe_data_nama_array[jumlah_elemen_matriks][jumlah_elemen_kolom]
[jumlah_elemen_baris];
D. Tipe_data nama_array{[jumlah_elemen_matriks][jumlah_elemen_baris]
[jumlah_elemen_kolom]};
E. Tipe_data nama_array[jumlah_elemen_baris][jumlah_elemen_kolom];

34. Pak Guru Adi akan menghitung nilai rata-rata 5 orang siswa, operasi perhitungan nilai
yang benar adalah….

11
A.

B.

C.

D.

E.

35. Perhatikan program di bawah ini :

#include <stdio.h>
int main() {
int x[2][3][2] = ....................................;
int i, j,k;
for (i=0; i<2; i++) {
for (j=0; j<3; j++) {
for(k=0; k<2;j++)
printf("%d ", x[i][j][k]);
}
printf("\n");
}}

“............” pada program di atas seharusnya diisi dengan ....


A. {{{1,2},{3,4},{5,6}},{{7,8},{9,10},{11,12}}}
B. {{{1,2,3},{4,5,6}},{{1,2,3},{4,5,6}}}
C. {1, 2, 3}
D. {[1],[2],[3]}
E. {{1,2,3},{4,5,6}}

36. Perhatikan deklarasi array berikut

Elemen array bungawarna pada indeks [1][2] adalah….

A. melati
B. ungu
C. mawar
D. putih

12
E. anggrek

37. Perhatikan kode program berikut!

Deklarasi fungsi pada program di atas diberi nama ….


A. fungsi void
B. fungsi main
C. fungsi garis
D. fungsi int
E. fungsi smk37

38. Perhatikan potongan program di bawah ini :

39. 1 42 5 3
float tambah(float x, float y)

return (a+b);

Yang disebut sebagai parameter sebuah fungsi ada pada kode... .


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

Output dari program di atas adalah ….

A. SMK – BISA – INDONESIA MERDEKA


B. ------------------------------------------------

13
SMK – BISA – INDONESIA MERDEKA
------------------------------------------------
C. ------------------------------------------------
SMK – BISA – INDONESIA MERDEKA
D. SMK – BISA – INDONESIA MERDEKA
------------------------------------------------
E. -------------------------------------------------
SMK – BISA – INDONESIA – MERDEKA

40. Perhatikan cuplikan kode berikut

Tentungan pasangan nilai input dan output yang sesuai


A. input: a=1 , b=2 output: result=3
B. input: a=1 , b=2 output: result=5
C. input: a=3 , b=4 output: result=5
D. input: a=3 , b=4 output: result=14
E. input: a=3 , b=4 output: result=25

14

Anda mungkin juga menyukai