Rabu, 26 Oktober 2011

SOAL UTS PROKOM


BAGIAN I. SOAL PILIHAN GANDA (20 soal)
Petunjuk. Berilah tanda silang (X) pada jawaban yang benar. Nilai untuk setiap jawaban yang  benar adalah 3.


1.
Telusuri program di bawah ini.
Program analisakasus1
Kamus
x,y   : integer

Algoritma
      input (x,y,z)
      Depend on (x,y)
            x<y : depend on (y,z)
                  y<z : output (‘aku’)
                  y>z : depend on (x,z)
                            x<z : output (‘prokom’)
                            x>z : output (‘latihan’)
            x>y : depend on (y,z)
                  y>z : output (‘fine’)
                  y<z : depend on (x,z)
                            x<z : output (‘good’)
                            x>z : output (‘tired’)
                 

Jika pada program analisakasus1 tersebut pengguna memasukkan x=3, y=8, dan z=5 dimana x≠y≠z, maka output algoritma tersebut adalah:
A.
latihan
B.
prokom
C.
aku
D.
Fine
E
good

2.
Telusuri program di bawah ini
Program analisakasus2
Kamus
  x,y,z     : integer

Algoritma
      input (x,y)
      z ßx+y
      if z >=80 then
         zßz-30
      if z>=70 then
         zßz-10
      else
        if z>= 65 then
           zßz-5
           yßx
      if x<=70 then
         zßz-10
         yßx          
      output (x,y,z)

Jika input dari program analisakasus2 tersebut untuk x= 32 dan y=50,maka nilai x,y,z akhir (output) adalah :
A.
x = 32
y =50
z = 52
B.
x=32
y=32
z=42
C.
x=50
y=32
z=-52
D.
x=50
y=50
z=42
E
x=42
y=50
z=32


3.
Perhatikan MENU PROGRAM di bawah ini:
Tekanlah salah satu angka untuk memilih menu berikut
1.   Menghitung luas persegi panjang
2.   Menghitung keliling persegi panjang
3.   Keluar program


Untuk membuat daftar menu seperti diatas sebaiknya menggunakan notasi algoritma
A.
if
B.
If..then
C.
If..then…else
D.
If..then..else..if
E.
Depend on


4.
Perhatikan penggalan algoritma di bawah ini

……………………
x : real
……………………
x = 10 / 3
if (x = 3.3333) then
   output(‘Sama Nilainya’)
else
output(‘Tidak Sama Nilainya’)
……………………

Apakah output dari penggalan algoritma di atas ?
A.
Sama Nilainya
B.
Tidak sama nilainya
C.
Sama nilainya
D.
Tidak Sama Nilainya
E.
Error, karena bilangan bertipe real tidak bisa digunakan dalam if-then-else

5.
IF (a = 10 AND b = 5) THEN c = 50 ELSE c = 15
Pada sintaks di atas jika ternyata variabel ‘a’ diberikan input 5 maka nilai variabel ‘c’ adalah…
A.
5
B.
10
C.
15
D.
25
E.
50

6.
Perhatikan program di bawah ini.
Program Fungsi

Kamus
      i,j,k:integer
      procedure prosedur1 (input i:integer;input/output j,k:integer)

Algoritma
      i←0;j←1;k←2
      input(i,j,k)
      prosedur1(j,k,i)
      output(j,k,i)


Procedure prosedur1 (input i:integer; input/output j,k:integer)

Kamus lokal

Algoritma
      k ← i + j
      j ← k mod i
      i ← j mod k

Jika algoritma tersebut dieksekusi dengan input dari user secara berurutan adalah 2, 5 dan 10, maka output yang ditampilkan adalah:
A.
0, 0, 12
D.
0, 15, 5
B.
0, 0, 15
E.
2, 0, 12
C.
5, 0, 15



7.
Di bawah ini merupakan penulisan fungsi yang benar, adalah :
A.
Function cobalagi (i,j : integer) à integer
Kamus
Algoritma
      Cobalagi ß i + j

B.
Function cobalagi (i,j : integer) à integer
Kamus
X : integer
Algoritma
X ß i + j

C.
Function cobalagi (input i,j : integer output x : integer)
Kamus
Algoritma
X ß i + j

D.
Function cobalagi (i,j : integer) ß integer
Kamus
Algoritma
Cobalagi ß i + j

E.
Semua benar

8.
Berdasarkan penulisan fungsi yang benar pada soal no 7, maka untuk mengambil nilai dari sebuah fungsi, dapat dilakukan dengan perintah sebagai berikut :
A.
a ß cobalagi (2,5)
D.
cobalagi (2,5) ß a
B.
cobalagi (2,5)
E.
cobalagi (2,5) à a
C.
x à cobalagi (2,5)



9.
Terdapat sebuah fungsi yang akan menghasilkan nilai konversi sebuah mata uang  menjadi mata uang negara lainnya. Header fungsi sebagai berikut :

function KonversiUang(jumlah,kurs:real)->real

Algoritma yang paling tepat untuk function KonversiUang tersebut adalah
A.
-> output jumlah/kurs
B.
output jumlah/kurs
C.
<- jumlah/kurs
D.
-> jumlah/kurs
E.
<- output jumlah/kurs

10.
Berikut adalah program yang di dalamnya terdapat pemanggilan function KonversiUang (soal no 9) dengan benar, KECUALI ...
A.
Program TentangUang
Kamus
      asal  : real {jumlah uang yang akan dikonversi}
      hasil : real (jumlah uang setelah dikonversi)
      kurs  : real
Algoritma
      input(asal)
            input (kurs)
output(KonversiUang(asal,kurs))

B.
Program TentangUang
Kamus
      jumlah  : real {jumlah uang yang akan dikonversi}
      hasil : real (jumlah uang setelah dikonversi)
      kurs  : real
Algoritma
      input(asal)
            input (kurs)
      hasil <- (KonversiUang(asal,kurs))

C.
Program TentangUang
Kamus
      asal  : real {jumlah uang yang akan dikonversi}
      hasil : real (jumlah uang setelah dikonversi)
      kurs  : real
Algoritma
      input(asal)
            input (kurs)
            hasil <- (KonversiUang(asal,kurs))
      output (hasil)

D.
Program TentangUang
Kamus
      jumlah  : real {jumlah uang yang akan dikonversi}
      hasil : real (jumlah uang setelah dikonversi)
      kurs  : real
Algoritma
      input(asal,kurs)   
            hasil <- (KonversiUang(asal,kurs))
      output (hasil)

E.
Program TentangUang
Kamus
      jumlah  : real {jumlah uang yang akan dikonversi}
      hasil : real (jumlah uang setelah dikonversi)
      kurs  : real
Algoritma
      input(asal)
            input (kurs)
            KonversiUang(asal,kurs)


11.
Perhatikan pola berikut ini:
1



5

2

4



3



2

4

1



5
Telah didefinisikan prosedure GantiBaris untuk pindah ke baris berikutnya
Pola diatas dapat dihasilkan dengan notasi algoritma:
A.
   N ß 5
   i ß N
   j ß N
   Repeat N times
      Repeat N times
        If (i=j) then
           Output(j)
        Else
           Output(‘ ‘)
        {end if}
        j ß j+1
      {end repeat}
    i ß i+1
   gantibaris
   {end repeat}

D.
  N ß 5
  i traversal [1..N]
      j traversal [N..1]
     If (i=j) then
           Output(N-j+1)
      Else
          If (j=N+1-i) then
              Output (i)
          else
              Output(‘ ‘)
          {end if}
     {end if}
   {end traversal}
   GantiBaris
  {end traversal}
B.
   N ß 5
   i ß 1
   j ß 1
   Repeat N times
      Repeat N times
        If (i=j) and (i=N+1-j) then
           Output(j)
        Else
           Output(‘ ‘)
        {end if}
        j ß j+1
      {end repeat}
    i ß i+1
   gantibaris
   {end repeat}

E.
Tidak ada jawaban yang benar
C.
N ß 5
  i traversal [1..N]
      j traversal [N..1]
     If (i=j) and (j=N+1-i) then
           Output(j)
      Else
           Output(‘ ‘)
      {end if}
   {end traversal}
   GantiBaris
  {end traversal}




12.
Diketahui penggalan algoritma sebagai berikut:
Program apaini
Kamus
Algoritma
  Input(x)
  b¬x
  While x <> 9999 do
    Input(x)
    If x > b then
       b¬x
  {x=9999}
  Output(b)
Jika inputnya :
 12
 14
  2
 9999

Maka nilai yang dicetak adalah
A.
12
B.
2
C.
9999
D.
12  14  2
E.
14

13. 
Diketahui algoritma sebagai berikut:
Program hayoapa
Kamus
Algoritma
   Input(x)
   apahayo ¬ true
   While (x<10) and apahayo do
     Output('hidup prokom')


Jika x = 6, maka
A.
Akan tercetak 'hidup prokom' 1 kali
B.
Akan tercetak 'hidup prokom' 10 kali
C.
Akan tercetak 'hidup prokom' 9 kali
D.
Tidak ada nilai yg dicetak
E.
Akan tercetak 'hidup prokom' tak berhingga kali

14.
Berikut ini adalah nama variabel yang dapat  dipergunakan (valid), KECUALI
A.
data_pertama
B.
Data1
C.
Data 1
D.
Data_ke_satu
E.
Luas_A1

15.
Perhatikan program berikut ini:
Program MenghitungRata2
{Program untuk menampilkan hasil perhitungan rata-rata}
Kamus :
      Angka1, Angka2,Angka3 : Integer
      Contstant Pembagi : Integer = 3
      Function Rata2(Nilai1,Nilai2,Nilai3,JmlNilai:integer)à real

Algoritma :
input(Rata2(Angka1,Angka2,Angka3,Pembagi))
output(Rata2(Angka1,Angka2,Angka3,Pembagi))


Berdasarkan program untuk menghitung rata-rata di atas, bagian mana yang salah sesuai tujuan program di atas :
A.
Integer = 3
Keterangan : seharusnya Integer ß 3

B.
Function Rata2(Nilai1,Nilai2,Nilai3,JmlNilai:integer)à real
Keterangan : seharusnya
function Rata2(input : Nilai1,Nilai2,Nilai3,JmlNilai:integer)à real

C.
input(Rata2(Angka1,Angka2,Angka3,Pembagi))
Keterangan : yang ada di dalam kurung tidak boleh diisi pemanggilan fungsi

D.
output(Rata2(Angka1,Angka2,Angka3,Pembagi))
Keterangan : yang ada di dalam kurung tidak boleh diisi pemanggilan fungsi kecuali yang dipanggil prosedur

E.
C dan D salah

16.
Perhatikan program berikut ini
Program PerkalianDuaAngka
{Program untuk menampilkan hasil perkalian dua angka yang dimasukkan oleh penguna}
Kamus :
      Angka1, Angka2 : Integer
      HasilPerkalian : Integer

Algoritma :
input(Angka1); input(Angka2)
HasilPerkalian ß Angka1 * Angka2
output(”HasilPerkalian”)


Berdasarkan program untuk menghitung perkalian dua angka di atas, bagian mana yang salah sesuai tujuan program di atas :
A.
HasilPerkalian : Integer
Keterangan : harusnya dijadikan satu dengan perintah di atasnya

B.
Algoritma :
Keterangan : harusnya ada garis bawahnya

C.
input(Angka1); input(Angka2)
Keterangan : harusnya tidak ada tanda  ;

D.
output(”HasilPerkalian”)
Keterangan : harusnya tidak ada tanda  ” di antara HasilPerkalian

E.
HasilPerkalian : Integer
Keterangan : harusnya tipe data real

17.
Cara deklarasikan konstanta PI didalam algoritma adalah :
A.
constant PI=3.14
B.
constant PI=real=3.14
C.
constant PI<-- 3.14 : real
D.
constant PI : 3.14 : real
E.
constant PI : real = 3.14

18.
Bentuk logika matematika berikut akan menghasilkan:
NOT (TRUE AND (FALSE XOR TRUE)) AND (TRUE XOR TRUE)

A.
TRUE
B.
FALSE
C.
MIGHT BE TRUE
D.
MIGHT BE FALSE
E.
IF NOT TRUE THEN FALSE

19.
Dari algoritma dibawah ini manakah algoritma yang tidak menghasilkan deret bilangan ganjil pada perangkat keluaran (inputan user selalu bilangan bulat positif, 0 dianggap genap positif)

A.
input (N)
i traversal [1..N]
       if (i mod 2 = 0 ) then
            output(i+1)
       else
            output(i)
       {end if}
{end traversal}

B.
input (N)
if (N mod 2 = 0 ) then
           N ß N+1
else
            N ß N+2
i ß 1
While i < N do
        output (i+2)
        i ß i +2
{end while}
   
C.
input (N)
i ß 0
repeat N times
         output (i+1)
         i ß i +1
{end repeat}
D.
input (N)
i traversal [1..N]
        output(i)
         i ß i+1
{end traversal}
E.
Tidak ada jawaban yang benar

20.
Manakah dari pernyataan berikut ini yang salah mengenai notasi pengulangan ?
A.
Proses pengulang pada repeat until akan dihentikan bila kondisi pengecekan bernilai true
B.
Proses pengulang pada iterate stop akan tetap dijalankan bila kondisi pengecekan bernilai false
C.
Proses pengulang pada iterate stop akan dihentikan bila kondisi pengecekan bernilai true
D.
Proses pengulang pada while do akan dihentikan bila kondisi pengecekan bernilai true
E.
Tidak ada jawaban yang benar



Lembar Jawab Ujian Pilihan Ganda


NIM










NAMA

TANDA TANGAN


Petunjuk.
  1. Berilah tanda silang (X) pada jawaban yang benar. Nilai untuk setiap jawaban yang  benar adalah 3.
  2. LJU tidak boleh dilepas dari soal !


1.
A
B
C
D
E

11.
A
B
C
D
E
2.
A
B
C
D
E

12.
A
B
C
D
E
3.
A
B
C
D
E

13.
A
B
C
D
E
4.
A
B
C
D
E

14.
A
B
C
D
E
5.
A
B
C
D
E

15.
A
B
C
D
E
6.
A
B
C
D
E

16.
A
B
C
D
E
7.
A
B
C
D
E

17.
A
B
C
D
E
8.
A
B
C
D
E

18.
A
B
C
D
E
9.
A
B
C
D
E

19.
A
B
C
D
E
10.
A
B
C
D
E

20.
A
B
C
D
E



Bagian II. Essai (3 soal)

Petunjuk.
  1. Jawaban essai dianjurkan menggunakan pensil.
  2. Tuliskan jawaban soal pada tempat yang telah disediakan.

1.
POLINOM [10]
Buatlah Agoritma untuk menghitung hasil evaluasi polinom
P(x) = xn + xn-1 + xn-2 + …+ x

Function Evaluasi_Polinom (n:integer,x:integer)àinteger
{menerima input n dan x bertipe integer. n merupakan pangkat tertinggi dari polinom, n>=1. Fungsi mengembalikan nilai deret xn + xn-1 + xn-2 + …+ x }

Kamus
  Pangkat : integer  {hasil eksponensial tiap suku}
  sum : integer      {hasil penjumlahan suku-suku polinom}
  i   : integer      {pencacah}
Algoritma
   Pangkat ß 1
   Sum ß 0
   i traversal [1..n]
        pangkat ß pangkat * x
        sum ß sum + pangkat
   àSum

ATAU Solusi lain

Function Evaluasi_Polinom (n:integer,x:integer)àinteger
{menerima input n dan x bertipe integer. n merupakan pangkat tertinggi dari polinom, n>=1. Fungsi mengembalikan nilai deret xn + xn-1 + xn-2 + …+ x }

Kamus
  Pangkat : integer  {hasil eksponensial tiap suku}
  sum : integer      {hasil penjumlahan suku-suku polinom}
  i,j   : integer      {pencacah}
Algoritma
   Sum ß 0
   i traversal [n..1]
       pangkat ß 1
       j traversal [1..i]
            pangkat ß pangkat * x
       sum ßsum + pangkat
   àSum

2.
PEMBACAAN KARAKTER [10]
a)      Tuliskan sebuah fungsi yang mengembalikan nilai TRUE jika karakter pertama sama nilainya dengan karakter kedua.
b)      Tuliskan program utama berisikan pengulangan pembacaan karakter pertama dan karakter kedua dengan kondisi berhenti jika karakter pertama nilainya berbeda dengan karakter kedua. Catatan: gunakan notasi pengulangan dimana badan program dieksekusi/dijalankan minimal satu kali.

function cek(a,b : character)à boolean
{mengembalikan nilai TRUE jika karakter pertama = karakter kedua dan FALSE jika sebaliknya }
Kamus lokal
if a = b then
     cek
ß true
else
     cek
ß false

Program utama
{program berisi pengulangan membaca dua karakter hingga dua karakter tersebut berbeda. Pengecekan karakter dilakukan dengan pemanggilan fungsi cek() }
Kamus
  c1,c2: character
  function cek(a,b: character)à boolean

  repeat
    read(c1)
    read(c2)
  until not(cek(c1,c2))


3.
PENGHITUNGAN GAJI KARYAWAN [20]
Pada suatu perusahaan terdapat lima (5) golongan karyawan. Gaji karyawan ditentukan berdasarkan gaji tetap dan juga dari lamanya bekerja. Gaji tetap dan gaji per jam tersebut tergantung kepada golongan karyawan sesuai dengan tabel berikut :

Golongan
Gaji tetap( Rp )
Upah lembur per jam( Rp )
1
500.000
5000
2
300.000
3000
3
250.000
2000
4
100.000
1500
5
50.000
1000
                                                       
Lengkapilah algoritma di bawah ini untuk menghitung jumlah total gaji karyawan yang diterima berdasarkan jam lemburnya.            
Input: golongan karyawan, nama karyawan, jam lembur sebulan.
Output: menampilkan jumlah total gaji seluruh karyawan dalam susunan terurut membesar (ascending)

Catatan : gunakan type bentukan( record ). Tidak boleh menggunakan tabel(array).
Program adaDiSlide

Kamus
type : karyawan = <nama:string, gol:integer, lembur:integer, gaji:integer>
k1,k2,k3:karyawan
procedure baca_data(output kt:karyawan)
procedure hitung_gaji(input/output kd:karyawan)
procedure urut(input : ku1,ku2,ku3:karyawan)
Algoritma
baca_data(k1)
baca_data(k2)
baca_data(k2)
hitung_gaji(k1)
hitung_gaji(k2)
hitung_gaji(k3)
urut(k1,k2,k3)

procedure baca_data(output kt:karyawan)
Kamus lokal
Input (kt.nama, kt.gol, kt.lembur)

procedure hitung_gaji(input/output kd:karyawan)
Kamus lokal
Algoritma
depend on (kd.gol)
1   :    kt.gaji<-500.000+kt.lembur*5000
2   :    kt.gaji<-300.000+kt.lembur*3000
3   :    kt.gaji<-250.000+kt.lembur*2000
4   :    kt.gaji<-100.000+kt.lembur*1500
5   :    kt.gaji<-50.000+kt.lembur*1000

procedure urut(input : ku1,ku2,ku3:karyawan)
Kamus lokal
depend on (ku1.gaji, ku2.gaji, ku3.gaji)
ku1>ku2>ku3:ouput(ku3.gaji, ku2.gaji, ku1.gaji)
ku1>ku3>ku2:ouput(ku2.gaji, ku3.gaji, ku1.gaji)
ku2>ku1>ku3:ouput(ku3.gaji, ku1.gaji, ku2.gaji)
ku2>ku3>ku1:ouput(ku1.gaji, ku3.gaji, ku2.gaji)
ku3>ku1>ku2:ouput(ku2.gaji, ku1.gaji, ku3.gaji)
ku3>ku2>ku1:ouput(ku1.gaji, ku2.gaji, ku3.gaji)

---

0 komentar:

Posting Komentar

Related Posts Plugin for WordPress, Blogger...

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | JCPenney Coupons