Soal Logika

Embed Size (px)

Citation preview

  • Kumpulan Soal UTS Algoritma dan Pemrograman

  • 1. Berapakah hasil ekspresi : 10 div 40 mod 60 / 5 3 / 3 = , dengan tipe

    (UTS 2008-2009)

    2. Jika a,b,c bertipe integer , dengan input : 1 2 3 4 5 6. Perhatikan potongan program ini :

    read(a,b);

    c:= a mod b div c + a - b;

    if a > c then c := c div b else c:= a mod b;

    read(a,b,c); c:=b-a;

    Maka nilai akhir variabel a,b dan c adalah : ,, (UTS 2008-2009)

    3. Sebuah program memiliki deklarasi untuk penulisan konstanta dengan nama tetap dan tipe

    jurusan, dengan nilai TE; deklarasi tipe enumerasi jurusan dengan nilai TE,TI dan IF

    (bukan string), dan variabel bertipe jurusan dengan nama jur. Tulis deklarasi tersebut dalam

    notasi algoritma !

    (UTS 2008-2009)

    4. Perhatikan program berikut : program uts1;

    var a,c : integer;

    begin

    readln(a);

    while a < 0 do

    begin

    a:=a-1;

    write(1/a:2:2, );

    end;

    end.

    Jika input adalah 3, keluaran program tersebut adalah : ........,.,. (UTS 2008-2009)

    5. Tulis output untuk potongan program dibawah ini: for i:=1 to 3 do

    for j:=1 to i do begin

    write(j);

    writeln;

    end;

    (UTS 2008-2009)

    6. Tulis keluaran algoritma sebagai berikut, jika masukan adalah 1 2 3 4: input(a,b)

    depend on a

    a=1 : if a

  • Input (a,b)

    Output(a,b)

    a>1 : if a>2 then

    depend on b

    b=2 : output (b,a)

    b>2 : output (b+1,a+1)

    b

  • begin

    write(Masukkan kata );

    readln(kata);

    for i:=1 to N do

    begin

    APA(i, kata);

    writeln(kata);

    end;

    end.

    Jika masukan program diatas adalah 3, maka keluarannya adalah :

    (UTS 2008-2009)

    9. Syarat agar pemanggilan benar/valid untuk prosedur dengan jenis parameter input/output :

    A. Parameter aktual adalah sebuah ...

    B. Tipe parameter...............................................................................

    C. Isi parameter aktual....

    (UTS 2008-2009)

    10. Tulis deklarasi prosedur dalam notasi algoritmik dengan nama Fungsi, dengan parameter A

    dan B bertipe integer. Parameter A ketika dipanggil boleh berisi konstanta, parameter B

    harus variabel yang boleh tidak terdefinisi.

    .. (UTS 2008-2009)

    11. Ada beberapa menu di warung : batagar dengan harga 1000, soto 2000, dan bakso 3000.

    Batagor ada 2 macam, kuah dan kering. masukan adalah harga. Jika memilih batagor, ada

    masukan tambahan jenisnya, yaitu kuah atau kering. Tulis notasi algoritma untuk output pilihan menu yang akan terhidang. Cukup bagian algoritma saja, dan gunakan jenis analisa

    kasus yang paling efisien !

    (UTS 2008-2009)

  • 12 Buat fungsi dalam pascal dengan nama Fak yang menghasilkan nilai faktorial sebuah

    bilangan N.

    { Header / judul untuk deklarasi fungsi }

    ................................................................................................................................

    {Deklarasi variabel, jika perlu}

    {Bagian implementasi algoritma/instruksi untuk fungsi }

    Begin

    ............................... { Inisialisasi}

    For ...........................do .; { Perhitungan }

    . { Pengisian nilai fungsi} End;

    (UTS 2008-2009)

    13. Misal diketahui sebuah program sebagai berikut : Program AnalisaKasus1;

    Var x,y:integer;

    begin

    readln(y); x:=2;

    if xx then

    y:=y+2*x

    else

    y:=y-2*x;

    writeln(y);

    End.

    Jika input dari program tersebut adalah y = 7, maka nilai y akhir (output) adalah ....

    A. 9 B. 41 C. 41 D. -23 E.Tidak ada jawaban benar

    (UTS 2008-2009)

    14. Misal diketahui sebuah program sebagai berikut : Program AnalisaKasus2;

    Var x:integer;

    begin

    readln(x); if x>=80 then x:=x-30;

    if x>=70 then x:=x-10

    Else if x>=65 then x:=x-5;

    if x

  • writeln(x);

    end.

    Jika input dari program tersebut adalah x = 82, maka nilai x akhir (output) adalah ....

    A. 52 B.-52 C. 42 D. 47 E. Tidak ada yang benar

    (UTS 2008-2009)

    15. Misal diketahui sebuah program sebagai berikut : Program AnalisaKasus3;

    var

    a : real; b :integer; c,d:boolean;

    begin

    a:= sqrt(10); b:= 3;

    c:= false and (10 mod b=0);

    d:= ad) then if a>d then a:=a+1 else a:=a-1 else true;

    B. if (xx then y:=x-1; else y:=x+1;

    C. if x=true then if y=true then if x=y then y:=x else x:=y;

    D. if (bc)=false then begin a:=b*c; b:=100; end else a:=c else

    c:=b;

    E. if (v>=c) then v:=false else begin c:=c+1; d:=d+1; end;

    (UTS 2008-2009)

    17

    . Case a of, dapat diikuti statement dibawah ini ( hasil tidak error ):

    A. A .. Z: writeln(UTS Prokom); a:=ch;

    B. 1 .. F : writeln(UTS Prokom); A .. C: x:=x+1;end;

    C. 1,2,3,4,5,6,7,8,9,a,b,c,d,e,f : writeln(hexadesimal);end;

  • D. else writeln (END of TEXT); end;

    E. c : x:=x*y else end;

    (UTS 2008-2009)

    18. Berapakah hasil ekspresi : 10 + 40 mod 6 * 5 3 A 27 B.7 C.17 D. 23 E.4

    (UTS 2008-2009)

    19. Jika a,b,c bertipe integer , dengan input sbb : 1 2 3 4 5 6. Hasil dari potongan program di

    bawah ini read(a,b); b:=a-b;

    read(a,b,c); c:=a-b;

    Maka nilai akhir variabel a,b dan c adalah :

    A. Blank B. 1, , C. 1, , a D. 1, a, 1 E. a, b,

    (UTS 2008-2009)

    20. Manakah urutan deklarasi yang benar :

    A. const tetap=TE; type jurusan=(TE,TI,CS);

    var a,b,c : integer;

    B. type jurusan=(TE,TI,CS); const tetap=TE;

    var a,b,c : integer;

    C. const tetap=TE; var a,b,c : integer;

    type jurusan=(TE,TI,CS);

    D. var a,b,c : integer; const tetap=TE;

    type jurusan=(TE,TI,CS);

    E Tidak ada jawaban yang benar

    (UTS 2008-2009)

    21. Diketahui program pascal sebagai berikut: uses crt;

    var a,b:integer;

    begin

  • readln(a,b);

    case a of

    1 : if a=2 then writeln('A');

    2 : if a=2 then

    case b of

    1 : begin

    a:=1;

    writeln('B');

    end;

    2 : writeln('C');

    else writeln('D');

    end;

    else writeln('E');

    end;

    readln;

    end.

    Jika program dijalankan dua kali, masing-masing dengan menginputkan 1 2 kemudian 2 1 (data dipisahkan dengan spasi), maka output string yang dihasilkan oleh masing-masing eksekusi adalah:

    A. A B

    B.

    B C. A

    D. A D

    E

    E

    (UTS 2008-2009)

    22. Perhatikan Listing Program Pascal berikut ini : 01: Var i, j, k : Integer; 02: Begin 03: i := 10; 04: j := 13; 05: k := i + 5; 06: If i < j Then 07: Begin 08: j := 10; 09: i := 13; 10: End 11: Else 12: Begin 13: j := k; 14: k := i; 15: i := j; 16: End;

    17: End.

  • Berapakah nilai akhir dari variable i, j, dan k ?

    A. 10, 13, dan 15

    B. 15, 13, dan 10

    C. 10, 15, dan 13

    D. 13, 15, dan 10

    E 13, 10, dan 15

    (UTS 2008-2009)

    23. Berapakah hasil ekspresi ; 10 + 40 mod 6 * 5 3 A. 27

    B. 7

    C. 17

    D. 23

    E 4

    (UTS 2005 2006)

    24. Jika ch1,ch2 dan ch3 bertipe karakter , dengan urutan pembacaan data sbb :

    1

    ab

    1.2

    dan data di atas merupakan masukan untuk program di bawah ini program uts1;

    var a,b,c : char;

    begin

    read(a,b,c);

    read(a,b,c);

    writeln(a,' - ',b,' - ',c);

    readln;

    end.

    Maka nilai akhir variabel a,b dan c adalah :

    A. Blank

    B. 1, , C. 1, , a D. 1, a, 1

    E a, b, (UTS 2005 2006)

    25.

    Manakah urutan deklarasi yang benar :

    A. const tetap=TE; type jurusan=(TE,TI,CS);

    var a,b,c : integer;

    B. type jurusan=(TE,TI,CS); const tetap=TE;

    var a,b,c : integer;

  • 26. Jika diberikan inputan a:= 3 program uts1;

    var a,c : integer;

    begin

    readln(a);

    a:=abs(a);

    while a 0 do

    begin

    a:=a-1;

    writeln(1/a);

    end;

    readln;

    end.

    Maka pernyataan yang benar adalah :

    A. Tidak berhasil di-compile

    B. Berhasil di-compile tapi runtime error

    C. Akan menghasilkan output : , 1

    D. Tidak menghasilkan sembarang output

    E Tidak ada pernyataan yang benar

    (UTS 2005 2006)

    27. Manakah pernyataan yang benar untuk program dibawah : program uts4;

    uses crt;

    var i,j : integer;

    begin

    clrscr;

    for i:=1 to 3 do

    for j:=1 to i do

    write('*');

    readln;

    end.

    A. *

    **

    ***

    B. ***

    **

    *

    C. const tetap=TE; var a,b,c : integer;

    type jurusan=(TE,TI,CS);

    D. var a,b,c : integer; const tetap=TE;

    type jurusan=(TE,TI,CS);

    E Tidak ada jawaban yang benar

    (UTS 2005 2006)

  • C. *

    *

    *

    D. ***

    ***

    ***

    E ******

    (UTS 2005 2006)

    28. Diketahui program pascal sebagai berikut: uses crt;

    var a,b:integer;

    begin

    readln(a,b);

    case a of

    1 : if a=2 then writeln('A');

    2 : if a=2 then

    case b of

    1 : begin

    a:=1;

    writeln('B');

    end;

    2 : writeln('C');

    else writeln('D');

    end;

    else writeln('E');

    end;

    readln;

    end.

    Jika program dijalankan dua kali, masing-masing dengan menginputkan 1 2 kemudian 2 1 (data dipisahkan dengan spasi), maka output string yang dihasilkan oleh masing-masing eksekusi adalah:

    A. A B

    B.

    B C. A

    D. A D

    E

    E (UTS 2005 2006)

  • 29. Teliti dengan cermat potongan program pascal berikut: 1 var a: integer;

    2 b: real;

    3 c: boolean;

    4 begin

    5 if a then

    6 case b of

    7 10..20 : writeln('A');

    8 1..9 : writeln('B');

    9 else if c then writeln ('C');

    10 end;

    11 else

    12 if b>10 then

    13 if a and c then writeln('D');

    14 else

    15 case c of

    16 true : writeln('E');

    17 false: writeln('F');

    18 end;

    19 end.

    Berdasarkan analisis anda, jumlah baris perintah yang salah adalah:

    A. 8

    B. 7

    C. 6

    D. 5

    E 4

    (UTS 2005 2006)

    30. Berikut penulisan case .. of yang benar adalah

    A. case X of begin

    1: if Y then Y:=Z;

    else Y:=X;

    end;

    B. case X of case Y of

    1: if Y then Y:=Z; else Y:=X;

    end;

    end;

    C. Case X of 1: case Y of

    100:writeln(X);

    end;

    else end;

    D. case X of case Y of end;

    if Y then end;

    end;

    E case beginX of 1:case Y of else end; 2: writeln(D);

    End;

  • (UTS 2005 2006)

    31. Notasi Pengulangan yang menghasilkan keluaran sejumlah N:

    A. For i := 1 to N write(i);

    B. Repeat write(i);

    until nN;

    D. While I

  • B. Jika kiti=APA maka Keluaran=APAADANYAAPAADANYAAPAADANYA C. Jika kata=dua maka keluaran=APA-APAANAPA-APAANAPA-APAAN D. Jika kata=dua maka keluaran=duaduadua; E Jika kata=APA maka keluaran=APA-APAANAPA-APAANAPA-APAAN

    (UTS 2005 2006)

    33. Berdasarkan program APAADANYA pada soal di atas (sebelumnya), bila write(kiti)

    diubah write(kata) dalam bagian looping , maka jawaban yang sesuai adalah:

    A. Jika kata=satu maka keluaran= satusatusatu B. Jika kiti=APA maka Keluaran=APAADANYAAPAADANYAAPAADANYA C. Jika kata=dua maka keluaran=APA-APAANAPA-APAANAPA-APAAN D. Jika kata=tiga maka keluaran=APAADANYAAPAADANYAAPAADANYA; E Jika kata=APA maka keluaran=APA-APAANAPA-APAANAPA-APAAN (UTS 2005 2006)

    34. Perhatikan Listing Program Pascal berikut ini : 01: Var a, b, c : Integer; 02: Begin 03: c = 42; 04: a := 90; 05: b := Z; 06: If a := b Then 07: Begin 08: Writeln(Sama); 09: a := Z; 10: End; 11: Else 12: Begin 13: Writeln(Tidak Sama); 14: a := A; 15: End;

    16: End;

    Pada baris keberapakah terjadi kesalahan penulisan statement ?

    A. 15, 13, 01, 03, 08, 02, 06, 14, dan 10

    B. 16, 09, 14, 06, 04, 03, 13, 05, dan 10

    C. 11, 03, 01, 08, 04, 02, 06, 15, dan 16

    D. 13, 16, 08, 03, 09, 05, 06, 07, dan 10

    E 05, 13, 07, 02, 08, 06, 09, 16, dan 11

    (UTS 2005 2006)

    35. Terdapat Bagian suatu program pascal sebagai berikut:

    I:=4;

    while I

  • Dari potongan program tersebut Tampilan yang mungkin adalah:

    A. 4444

    B. 1234

    C. 1

    12

    123

    1234

    D. 1

    22

    333

    4444

    E 4

    44

    444

    4444

    (UTS 2005 2006)

    36. Yang sesuai dengan Parameter Passing By Reference, ada pada penulisan Heading program Prosedur/Fungsi:

    A. Procedure A(s: string, a:integer)

    B. Function C(s: string, a:integer) : integer

    C. Procedure B(var s: string, a:integer)

    D. Procedure (s: string, a:integer)

    E Function E(s: string, a:integer) : integer

    (UTS 2005 2006)

    37. Berikut adalah deklarasi fungsi/prosedur yang benar..

    A. PROCEDURE (daftar_parameter);

    Bagian_deklarasi;

    Bagian_penyataan;

    B. FUNCTION(daftar_parameter);

    Bagian_deklarasi;

    Bagian_penyataan;

    C. PROCEDURE(daftar_parameter):tipe;

    Bagian_deklarasi;

    Bagian_penyataan;

    D. PROSEDUR(daftar_parameter);

    Bagian_deklarasi;

    Bagian_penyataan;

    E FUNGSI(daftar_parameter):tipe;

    Bagian_deklarasi;

    Bagian_penyataan;

    (UTS 2005 2006)

  • 38. Telusuri program di bawah ini VAR

    A: integer;

    Function X (D : integer, P: integer): integer;

    VAR

    A : integer ; B : integer;

    BEGIN

    B := 1

    For A := 1 to P do

    B := B * D;

    X:=B;

    END;

    Procedure Y (I: integer, J: integer, var K: integer);

    BEGIN

    K:= X(I,J) * X(J,I);

    END;

    BEGIN

    Y(5,3,A);

    Write (A = ,A);

    END.

    Keluaran dari program di atas adalah:

    A. A = 25243

    B. K = 30537

    C. A = 30375

    D. K = 12545

    E Program error

    (UTS 2005 2006)

    39. Perhatikan Listing Program Pascal berikut ini : 18: Var i, j, k : Integer; 19: Begin 20: i := 10; 21: j := 13; 22: k := i + 5; 23: If i < j Then 24: Begin 25: j := 10; 26: i := 13; 27: End 28: Else 29: Begin 30: j := k; 31: k := i; 32: i := j; 33: End;

    34: End.

    Berapakah nilai akhir dari variable i, j, dan k ?

  • A. 10, 13, dan 15

    B. 15, 13, dan 10

    C. 10, 15, dan 13

    D. 13, 15, dan 10

    E 13, 10, dan 15

    (UTS 2005 2006)

    40. Perhatikan potongan program berikut ini : 01: {X dan Y adalah variable Integer} 02: X := 50; 03: Y := 25; 04: if (X > 25) And (Y < 25) then 05: if (X > 25) then 06: begin 07: Temporary := X; 08: X := Y; 09: Y := Temporary; 10: End; 11: 12: X := Y;

    13: Y := X + Y;

    Berapakah nilai akhir dari variable X, dan Y ?

    A. 50, dan 25

    B. 50, dan 50

    C. 50, dan 100

    D. 25, dan 50

    E 25, dan 100

    (UTS 2005 2006)

    41. Terdapat program Pascal sebagai berikut: Program XXX;

    Var n:integer;

    Procedure ANI(var a:integer);

    Var I : integer;

    Begin

    For I:=1 to 3 do

    A:=I;

    A:=A+1;

    End;

    Begin

    n:=1;

    ANI(n);

    End.

    Dari Program XXX di atas, dengan melihat pemakaian procedure ANI, maka keluaran nilai

    A akan muncul:

    A. 4

    B. 6

    C. 3

  • D. 5

    E 7

    (UTS 2005 2006)

    42. Dalam Program XXX (pada soal sebelumnya), bila heading Procedure ANI(var

    a:integer) diubah Procedure ANI(a:integer), maka nilai n =

    A. 1

    B. 2

    C. 3

    D. 4

    E 5

    (UTS 2005 2006)

    Algoritma di bawah ini untuk menjawab soal nomor 43 dan 44 Program cek1

    Kamus

    x,y : integer

    Algoritma

    input (x,y,x)

    depend on (x,y)

    x=1 : output(1)

    2

  • 46. Pernyataan yang benar berkenaan dengan paradigma pemrograman :

    A. Procedural: A sequence of detailed instructions is provided to the computer

    B. Procedural : Each object is an example drawn from a class of similar objects

    C. OOP : no use of temporary variables to store intermediate results

    D. Functional : A series of logical deductions from known facts

    E A,B,C,D tidak ada yang benar

    F. A,B,C,D tidak ada yang salah

    (UTS SP 2006 2007)

    47. Hal-hal yang benar berkenaan dengan pendefinisian type adalah sebagai berikut, kecuali :

    A. Mendefinisikan nama type dalam judul ( harusnya kamus ! )

    B. Mendefinisikan domain harga

    C. Menentukan konvensi penulisan konstanta dengan type tersebut

    D. Menentukan operator terhadap objek dengan type tersebut

    E Semua pernyataan A,B,C,D benar

    F. Semua pernyataan A,B,C,D salah

    (UTS SP 2006 2007)

    48. Statement yang di bawah ini akan menghasilkan nilai Sum yang sama untuk masukan yang sama, jika nilai i sebelum pengulangan adalah 1 dan x=10, kecuali :

    A. repeat

    Sum Sum+x i=i+1

    until (x=i)

    D. while (i

  • A. repeat

    sum sum+x input(x)

    until (x=9999)

    D. while (X = 9999) do input(X)

    Sum Sum + x

    B. i traversal [1..x]

    sum sum+x input(x)

    E A,B,C,D tidak ada yang benar

    C. iterate

    sum sum+x stop (x=9999)

    input(x)

    F A,B,C,D tidak ada

    jawaban yang salah

    (UTS SP 2006 2007)

    50. Diberikan potongan program sebagai berikut : Program ZZZ

    Kamus

    a,b,c:integer

    Algoritma

    a 5; b 10; c 1 while c < a do

    c a; a b ; b c {akhir pengulangan}

    output(a,b,c)

    Dari notasi algoritma diatas maka harga yang disimpan oleh a,b,c adalah:

    A. a = 5 ; b = 10 ; c = 1 D. a = 10 ; b = 5 ; c = 5

    B. a = 10 ; b = 5 ; c = 10 E a = 5 ; b = 10 ; c = 5

    C. a = 10 ; b = 5 ; c = 1 F. Tidak ada jawaban yang benar (10,5,10)

    (UTS SP 2006 2007)

    51. Di bawah ini yang merupakan program yang benar untuk menjumlahkan bilangan 2 + 4 + 6

    + 8 + 10 + + (n*2) adalah A. Program Deret

    Kamus

    i,sum : integer

    Algoritma

    input (n); i0

    sum0 while i

  • B. Program Deret Kamus

    i,sum : integer

    Algoritma

    Input(n);i1

    sum0 while i

  • pengecekan bernilai false

    C. Proses pengulangan pada while-do akan dihentikan bila kondisi pengecekan

    bernilai true

    D. Proses pengulangan pada repeat x times akan dihentikan bila kondisi

    pengulangan telah dilakukan sebanyak n kali.

    E. Proses pengulangan pada n traversal [1..x] akan dihentikan bila kondisi

    pengulangan telah dilakukan sebanyak n kali.

    F Semua jawaban di atas salah

    (UTS SP 2006 2007)

    55. Berikut adalah pernyataan yang benar mengenai parameter, kecuali:.

    A. Parameter aktual adalah nama atau nilai yang dipakai ketika prosedur dipanggil

    B. Parameter formal adalah list nama variabel pada saat mendefinisikan prosedur.

    C. Parameter aktual harus berupa nama jika tipe parameter output yang digunakan

    D. Saat pemanggilan, parameter aktual yg bersifat output tak perlu didefinisikan nilainya

    E. Parameter formal harus dideklarasikan dalam 2 jenis, sebagai input atau output.

    F Semua pernyataan di atas benar

    (UTS SP 2006 2007)

    56. Telusuri algoritma program di bawah ini PROGRAM UTS_gitu_loh

    KAMUS:

    A: integer

    Function X (D,P:integer) integer Function Y(I,J:integer)integer

    ALGORITMA:

    A2 Output(A,=,Y(A,3))

    Function X (P,D:integer) integer {Pre-condition: D dan P terdefinisi}

    KAMUS LOKAL

    A, B : integer

    Algoritma:

    B 0 A traversal[0..D]

    B B + P B

    Function Y(I,J:integer)integer {Pre-condition: I dan J terdefinisi}

    Kamus Lokal

    Algoritma:

    X(I,J) + X(J,I)

    Keluaran dari program di atas adalah: A. A = 16 B. 2 = 17 C. A = 18 D. Y = 19 E. A = 20 F. Tdk ada yg benar

    (UTS SP 2006 2007)

  • 57. Perhatikan program berikut ini :

    Program undefined

    Kamus

    one,two,three : integer

    Procedure defined (Input one : integer;

    Input/output two : Integer;

    output three : integer)

    Algoritma

    one 5; two 10; three 5 defined(three,two,one)

    Procedure defined (Input one : integer;

    Input/output two : Integer;

    output three : integer)

    Kamus Lokal

    Algoritma

    one 2 * one + two two one + two * 2

    three one + two

    Berapakah nilai one,two,three sebelum dan setelah memanggil procedure

    defined ?

    A. 5, 10, 5 & 10, 20, 60 D 5,10, 0 & 60, 40, 20

    B. 5,10,5 & 5, 60, 40 E 5,10, 5 & 60, 40, 5

    C. 5, 10,0 & 20, 40, 60 F Semua Jawaban Salah

    (UTS SP 2006 2007)

    Algoritma di bawah ini untuk menjawab soal nomor 58-59 1 Program cari_maks

    2 { I.S : menerima masukan 4 buah bilangan

    3 F.S : Menampilkan bilangan terbesar dari keempat bilangan tersebut}

    4 Kamus

    5 dat1,dat2,dat3,dat4,big : integer

    6 Algoritma

    7 Input(dat1,dat2,dat3,dat4)

    8 if (dat1>dat2)and (dat1>dat3) and (dat1>dat4) then

    9 bigdat1 10 Else

    11 if (dat2>dat1)and (dat2>dat3) and (dat2>dat4) then

    12 bigdat2 13 else if (dat3>dat1)and (dat3>dat2) and (dat3>dat4) then

    14 bigdat3 15 else

    16 bigdat4 17 output big

  • 58. Jika program diberikan input dat1=7, dat2=10, dat3=6, dat4=9 , maka urutan proses eksekusi

    program menjadi :

    A. 7-8-10-11-13-14-17 D. 7-8-10-11-13-15-16-17

    B. 7-8-10-11-12-17 E. 7-8-10-13-14-17

    C. 7-8-10-11-13-14-17 F. Tidak ada yg benar

    (UTS SP 2006 2007)

    59 Jika program diberikan input dat1=2, dat2=3, dat3=4, dat4=5 , maka nilai big setelah

    eksekusi program menjadi :

    A. 2 D. 5

    B. 3 E. 0

    C. 4 F. Tidak ada yg benar

    (UTS SP 2006 2007)

    60. Perhatikan program di bawah ini Program allAboutBoolean

    Kamus

    X, Y, Z : Boolean

    A : integer

    Algoritma

    Input(a)

    X False Z ( (3 + (5 div 2) ) = 5) Y a

  • C. Program tersebut untuk menghitung deret 1 1 2 3 5

    D. Program tersebut untuk menghitung nilai faktorial

    E. Program tersebut untuk menghitung deret nilai sinus

    F Tidak ada jawaban yang benar.

    (UTS SP 2006 2007)

    62. Ekspresi berikut akan menghasilan nilai yang sama, kecuali :.

    A. A ( 15 div 2 mod 5 ) + ( 10 / 2 ) B. A ( 15 div 2 mod 5 / 2 > 2,5 ) C. A ( 15 div 2 mod 5 / 2 ) or ( true EQ true ) D. A ( 1,5 div 1,5 * 5 = 5 ) or ( true xor true ) E. A ( 15 div 2 mod 5 / 2 div 2 ) F Semua pernyataan di atas benar

    (UTS SP 2006 2007)

    Algoritma di bawah ini untuk menjawab soal nomor 63 dan 64 Program cek1

    Kamus

    x,y : integer

    Algoritma

    input (x,y)

    depend on (x,y)

    x=1 : output(1)

    2

  • b=10 : output(acb)

    a>c : if a

  • Dengan spesifikasi tambahan :

    - jumlah bilangan untuk kasus kosong = 0

    Statement yang benar untuk melengkapi program di atas (program juga benar untuk

    menangani kasus kosong) adalah

    A. repeat

    sum sum+x input(x)

    until (x=9999)

    D. while (X 9999) do Sum Sum + x

    input(X)

    B. repeat

    sum sum+i input(x)

    until (x=9999)

    E while (X 9999) do Sum Sum + x

    C. repeat

    sum sum+1 input(x)

    until (x=9999)

    (UTS 2006 2007)

    69. Diberikan potongan program sebagai berikut : Program ZZZ

    Kamus

    a,b,c:integer

    Algoritma

    a 5 b 10 c 1 while c < b do

    c a a b b c {akhir pengulangan}

    output(a,b,c)

    Dari notasi algoritma diatas maka harga yang disimpan oleh a,b,c adalah:

    A. a = 5 ; b = 10 ; c = 1

    B. a = 5 ; b = 10 ; c = 10

    C. a = 10 ; b = 5 ; c = 1

    D. a = 10 ; b = 5 ; c = 5

    E a = 5 ; b = 10 ; c = 5

    (UTS 2006 2007)

    70. Di bawah ini yang merupakan program yang benar untuk menjumlahkan bilangan 2 + 4 + 6

    + 8 + 10 adalah

  • A. Program Deret Kamus

    i,sum : integer

    Algoritma

    i0

    sum0 while i

  • D. Proses pengulang pada iterate-stop akan dihentikan bila kondisi pengecekan

    bernilai true

    E Semua jawaban di atas salah

    (UTS 2006 2007)

    73. Telusuri algoritma program di bawah ini PROGRAM UTS_gitu_loh

    {I.S: sembarang

    F.S: menampilkan suatu bilangan hasil perhitungan}

    KAMUS:

    A: integer

    Function X (D,P:integer) integer Function Y(I,J:integer)integer

    ALGORITMA:

    Output(A=,Y(2,3))

    {Definisi function dan procedure}

    Function X (D,P:integer) integer {Pre-condition: D dan P terdefinisi}

    KAMUS LOKAL

    A, B : integer

    Algoritma:

    B 0 A traversal[1..P]

    B B + D B

    Function Y(I,J:integer)integer {Pre-condition: I dan J terdefinisi}

    Kamus Lokal

    Algoritma:

    X(I,J) * X(J,I)

    Keluaran dari program di atas adalah:

    A. A = 32 B. Y = 36 C. A = 36 D. Y = 216 E. A = 216

    (UTS 2006 2007)

    74. Berikut adalah pernyataan yang benar mengenai parameter formal dan aktual..

    A. Parameter formal adalah parameter yang terdapat pada pada pemanggilan fungsi atau

    prosedur, sedangkan parameter aktual adalah parameter pendeklarasian judul

    subprogram.

    B. Parameter formal diakui di seluruh bagian program, sedangkan parameter aktual hanya

    berlaku di subprogram saja.

    C. Parameter formal adalah parameter yang terdapat pada pendeklarasian judul

    subprogram, sedangkan parameter aktual adalah parameter pada pemanggilan fungsi

    atau prosedur.

    D. Parameter formal dapat bertindak sebagai variabel input dan output, sedangkan

  • parameter aktual hanya bertindak sebagai variabel input saja

    E Semua jawaban salah

    (UTS 2006 2007)

    75. Telusuri algoritma program di bawah ini PROGRAM UTS_kaleee

    {IS: meminta inputan bilangan

    FS: menampilkan hasil berupa bilangan dan string}

    KAMUS:

    X,Y: integer

    Z : string

    Function inttostr(angka:integer) string {mengkonversi nilai integer menjadi string}

    Procedure doy(input I,J:integer,output K:string)

    Procedure dyo(input I,J:integer,output K:integer)

    Function test (X:integer) boolean Function text (X,Y:integer) string

    ALGORITMA:

    Input(X,Y);

    If test(Y) then

    Doy(X,Y,Z)

    Else

    Z Text(Y,X)

    Output(Z,Y,X)

    {Definisi function dan procedure}

    Function test (X:integer) boolean

    KAMUS LOKAL

    Algoritma:

    If ((X+1) mod 3=0) then

    true else

    false

    Procedure dyo(input I,J:integer,output K:integer)

    KAMUS LOKAL

    Algoritma:

    K I*J-I

  • Procedure doy(input I,J:integer,output K:string)

    KAMUS LOKAL

    Algoritma:

    Depend on (I,J)

    I = J : K xxaxx I < J : K xaaxx I > J : K xxaax

    Function text (X,Y:integer) string

    KAMUS LOKAL

    Z:integer

    Algoritma:

    Dyo(X,Y,Z)

    inttostr(Z*2)

    Keluaran dari program di atas jika input X = 5 dan Y=4 adalah:

    A. 32 4 5 D. 30 4 5 B. xxaax 4 5 E. 32 5 4 C. xxaax 5 4 (UTS 2006 2007)

    76. Perhatikan Program berikut ini : Program mumet1

    Kamus

    const bingung : Integer = 5

    yyy : integer

    Procedure PindahBaris

    {I.S : Sembarang}

    {F.S : cursor berpindah ke baris berikutnya}

    Procedure pusing(Input xxx:integer)

    {I. S : nilai xxx terdefinisi }

    {F. S : nilai xxx tampil di layar}

    Algoritma

    yyy traversal [bingung-4..bingung]

    pusing(yyy)

    Pindahbaris

    procedure pusing(input xxx:integer)

    {I. S : nilai xxx terdefinisi }

    {F. S : nilai xxx tampil di layar}

    Kamus lokal

    yyy : integer

    Algoritma

  • yyy traversal [1..xxx]

    output(xxx)

    A. 1

    2

    3

    4

    5

    D. 11111

    2222

    333

    44

    5

    B. 1

    22

    333

    4444

    55555

    E. 55555

    4444

    333

    22

    1

    C. 11111

    22222

    33333

    44444

    55555

    (UTS 2006 2007)

    77. Perhatikan program berikut ini : Program undefined

    Kamus

    one,two,three : integer

    Procedure defined (Input one : integer;

    Input/output two : Integer;

    output three : integer)

    {I. S : nilai one dan two terdefinisi }

    {F. S : menghasilkan nilai two dan three }

    Algoritma

    one 10 two 5

    defined(one,two,three)

    Procedure defined (Input one : integer;

    Input/output two : Integer;

    output three : integer)

    Kamus Lokal

    Algoritma

    one 2 * one + two two one + two * 2

    three one + two

    Berapakah nilai one,two,three sebelum dan setelah memanggil procedure

    defined ?

    A. 10, 5, 0 & 10, 35, 60

    B. 10, 5, 0 & 25, 60, 85

    C. 10, 5, 0 & 25, 35, 60

    D. 10, 5, 0 & 10, 35, 85

  • E Semua Jawaban Salah

    (UTS 2006 2007)

    Algoritma di bawah ini untuk menjawab soal nomor 78 79 1 Program cari_maks

    2 { I.S : menerima masukan 4 buah bilangan

    3 F.S : Menampilkan bilangan terbesar dari keempat bilangan tersebut}

    4 Kamus

    5 dat1,dat2,dat3,dat4,big : integer

    6 Algoritma

    7 Input(dat1,dat2,dat3,dat4)

    8 if (dat1>dat2)and (dat1>dat3) and (dat1>dat4) then

    9 bigdat1 10 Else

    11 if (dat2>dat1)and (dat2>dat3) and (dat2>dat4) then

    12 bigdat2 13 else if (dat3>dat1)and (dat3>dat2) and (dat3>dat4) then

    14 bigdat3 15 else

    16 bigdat4 17 output big

    78. Terdapat satu buah bug pada program diatas yang menyebabkan program tidak berjalan

    dengan semestinya, yaitu pada baris ke

    A. 7 B. 10 C. 11 D. 13 E. 16

    (UTS 2006 2007)

    79. Koreksi untuk kesalahan tersebut seharusnya adalah

    A. dat1input, dat2input, dat3input,dat4input

    B. tanpa else

    C. if (dat2>dat1 >dat3 >dat4) then

    D. elseif (dat3>dat1)and (dat3>dat2) and (dat3>dat4) then

    E berikan indentasi di baris 16

    (UTS 2006 2007)

    80. Jika program sudah diperbaiki dan dat1=7, dat2=6, dat3=10, dat4=9 , maka urutan proses

    eksekusi program menjadi :

    A. 7-8-10-11-13-14-17 D. 7-13-14-16-17

    B. 7-8-10-11-13-14-15-16-17 E. 7-8-10-13-14-17

    C. 7-8-10-11-13-14-16-17

    (UTS 2006 2007)

    81. Jika terdapat 3 variabel bertipe string sebagai berikut: (BONUS) str, has : string

    cc : character

    strHell cco has Str cc

  • Jika has berisi Hello, maka operasi pada has adalah : A. o D. Hello

    B. Hell E. Tidak bisa ditentukan

    C. oHell

    (UTS 2006 2007)

    82. Perhatikan program di bawah ini Program allAboutBoolean

    Kamus

    X, Y, Z : Boolean

    A : integer

    Algoritma

    Input(a)

    X True Z ( (4 + (5 div 2) ) = 5) Y a >= 0 If (X and Y) Xor (Y and Z) then

    Output (Terpenuhi)

    Else

    Output (Tidak Terpenuhi)

    Output ( Ya)

    Apa yang akan dioutputkan oleh program di atas?

    A. Terpenuhi

    B. Terpenuhi Ya

    C. Tidak Terpenuhi

    D. Tidak Terpenuhi Ya

    E Tidak ada jawaban yang benar, karena nilai variable a belum dapat ditentukan

    nilainya (tergantung dengan inputan user)

    (UTS 2006 2007)

    Algoritma di bawah ini untuk menjawab soal nomor 83 dan 84 Program cek1

    Kamus

    x,y : integer

    Algoritma

    input (y,x,x)

    depend on (x,y)

    x=y : output(1)

    xy : depend on (y) y>x : output(2)

    xy : output(4)

    y

  • i: integer

    x : integer {sekumpulan bilangan integer yang dibaca,

    diakhiri dengan 9999}

    sum : integer

    Algoritma :

    sum 0 input(x)

    ......

    ......

    ......

    output(sum)

    Program di atas membaca sekumpulan nilai integer yang diketikkan lewat piranti masukan,

    dan menjumlahkan nilainya. Pemasukan nilai integer diakhiri dengan 9999

    Dengan spesifikasi tambahan : - jumlah bilangan untuk kasus kosong = 0

    Statement yang benar untuk melengkapi program di atas (program juga benar untuk

    menangani kasus kosong) adalah

    A. repeat

    sum sum+x input(x)

    until (x=9999)

    D. while (X 9999) do Sum Sum + x

    input(X)

    B. repeat

    sum sum+i input(x)

    until (x=9999)

    E while (X 9999) do Sum Sum + x

    C. repeat

    sum sum+1 input(x)

    until (x=9999)

    (UTS 2008 2009)

    85. Diberikan potongan program sebagai berikut : Program ZZZ

    Kamus

    a,b,c:integer

    Algoritma

    a 5 b 10 c 1 while c < b do

    c a b a a c

    output(a,b,c)

    Dari notasi algoritma diatas maka harga yang disimpan oleh a,b,c adalah:

    (UTS 2008 2009)

    86. Di bawah ini yang merupakan program yang benar untuk menjumlahkan bilangan 2 + 4 + 6

    + 8 + 10 adalah

  • A. Program Deret Kamus

    i,sum : integer

    Algoritma

    i0

    sum0 while i

  • pengecekan bernilai false

    C. Proses pengulang pada while-do akan dihentikan bila kondisi pengecekan bernilai

    true

    D. Proses pengulang pada iterate-stop akan dihentikan bila kondisi pengecekan

    bernilai true

    E Semua jawaban di atas salah

    (UTS 2008 2009)

    89. Telusuri algoritma program di bawah ini PROGRAM UTS_gitu_loh

    {I.S: sembarang

    F.S: menampilkan suatu bilangan hasil perhitungan}

    KAMUS:

    A: integer

    Function X (D,P:integer) integer Function Y(I,J:integer)integer

    ALGORITMA:

    Output(A=,Y(2,3))

    {Definisi function dan procedure}

    Function X (D,P:integer) integer {Pre-condition: D dan P terdefinisi}

    KAMUS LOKAL

    A, B : integer

    Algoritma:

    B 0 A traversal[1..P]

    B B + D B

    Function Y(I,J:integer)integer {Pre-condition: I dan J terdefinisi}

    Kamus Lokal

    Algoritma:

    X(I,J) * X(J,I)

    Keluaran dari program di atas adalah:

    A. A = 32 B. Y = 36 C. A = 36 D. Y = 216 E. A = 216

    (UTS 2008 2009)

    90. Berikut adalah pernyataan yang benar mengenai parameter formal dan aktual..

    A. Parameter formal adalah parameter yang terdapat pada pada pemanggilan fungsi atau

    prosedur, sedangkan parameter aktual adalah parameter pendeklarasian judul

    subprogram.

    B. Parameter formal diakui di seluruh bagian program, sedangkan parameter aktual hanya

    berlaku di subprogram saja.

    C. Parameter formal adalah parameter yang terdapat pada pendeklarasian judul

    subprogram, sedangkan parameter aktual adalah parameter pada pemanggilan fungsi

  • atau prosedur.

    D. Parameter formal dapat bertindak sebagai variabel input dan output, sedangkan

    parameter aktual hanya bertindak sebagai variabel input saja

    E Semua jawaban salah

    (UTS 2008 2009)

    91. Telusuri algoritma program di bawah ini PROGRAM UTS_kaleee

    {IS: meminta inputan bilangan

    FS: menampilkan hasil berupa bilangan dan string}

    KAMUS:

    X,Y: integer

    Z : string

    Function inttostr(angka:integer) string {mengkonversi nilai integer menjadi string}

    Procedure doy(input I,J:integer,output K:string)

    Procedure dyo(input I,J:integer,output K:integer)

    Function test (X:integer) boolean Function text (X,Y:integer) string

    ALGORITMA:

    Input(X,Y);

    If test(Y) then

    Doy(X,Y,Z)

    Else

    Z Text(Y,X)

    Output(Z,Y,X)

    {Definisi function dan procedure}

    Function test (X:integer) boolean

    KAMUS LOKAL

    Algoritma:

    If ((X+1) mod 3=0) then

    true else

    false

    Procedure dyo(input I,J:integer,output K:integer)

    KAMUS LOKAL

    Algoritma:

    K I*J-I

  • Procedure doy(input I,J:integer,output K:string)

    KAMUS LOKAL

    Algoritma:

    Depend on (I,J)

    I = J : K xxaxx I < J : K xaaxx I > J : K xxaax

    Function text (X,Y:integer) string

    KAMUS LOKAL

    Z:integer

    Algoritma:

    Dyo(X,Y,Z)

    inttostr(Z*2)

    Keluaran dari program di atas jika input X = 5 dan Y=4 adalah:

    A. 32 4 5 D. 30 4 5 B. xxaax 4 5 E. 32 5 4 C. xxaax 5 4 (UTS 2008 2009)

    92. Perhatikan Program berikut ini : Program mumet1

    Kamus

    const bingung : Integer = 5

    yyy : integer

    Procedure PindahBaris

    {I.S : Sembarang}

    {F.S : cursor berpindah ke baris berikutnya}

    Procedure pusing(Input xxx:integer)

    {I. S : nilai xxx terdefinisi }

    {F. S : nilai xxx tampil di layar}

    Algoritma

    yyy traversal [bingung-4..bingung]

    pusing(yyy)

    Pindahbaris

    procedure pusing(input xxx:integer)

    {I. S : nilai xxx terdefinisi }

    {F. S : nilai xxx tampil di layar}

    Kamus lokal

    yyy : integer

  • Algoritma

    yyy traversal [1..xxx]

    output(xxx)

    A. 1

    2

    3

    4

    5

    D. 11111

    2222

    333

    44

    5

    B. 1

    22

    333

    4444

    55555

    E. 55555

    4444

    333

    22

    1

    C. 11111

    22222

    33333

    44444

    55555

    (UTS 2008 2009)

    93. Perhatikan program berikut ini : Program undefined

    Kamus

    one,two,three : integer

    Procedure defined (Input one : integer;

    Input/output two : Integer;

    output three : integer)

    {I. S : nilai one dan two terdefinisi }

    {F. S : menghasilkan nilai two dan three }

    Algoritma

    one 10 two 5

    defined(one,two,three)

    Procedure defined (Input one : integer;

    Input/output two : Integer;

    output three : integer)

    Kamus Lokal

    Algoritma

    one 2 * one + two two one + two * 2

    three one + two

    Berapakah nilai one,two,three sebelum dan setelah memanggil procedure

    defined ?

    A. 10, 5, 0 & 10, 35, 60

  • B. 10, 5, 0 & 25, 60, 85

    C. 10, 5, 0 & 25, 35, 60

    D. 10, 5, 0 & 10, 35, 85

    E Semua Jawaban Salah

    (UTS 2008 2009)

    Algoritma di bawah ini untuk menjawab soal nomor 94 95 1 Program cari_maks

    2 { I.S : menerima masukan 4 buah bilangan

    3 F.S : Menampilkan bilangan terbesar dari keempat bilangan tersebut}

    4 Kamus

    5 dat1,dat2,dat3,dat4,big : integer

    6 Algoritma

    7 Input(dat1,dat2,dat3,dat4)

    8 if (dat1>dat2)and (dat1>dat3) and (dat1>dat4) then

    9 bigdat1 10 Else

    11 if (dat2>dat1)and (dat2>dat3) and (dat2>dat4) then

    12 bigdat2 13 else if (dat3>dat1)and (dat3>dat2) and (dat3>dat4) then

    14 bigdat3 15 else

    16 bigdat4 17 output big

    94. Terdapat satu buah bug pada program diatas yang menyebabkan program tidak berjalan

    dengan semestinya, yaitu pada baris ke

    A. 7 B. 10 C. 11 D. 13 E. 16

    (UTS 2008 2009)

    95. Koreksi untuk kesalahan tersebut seharusnya adalah

    A. dat1input, dat2input, dat3input,dat4input

    B. tanpa else

    C. if (dat2>dat1 >dat3 >dat4) then

    D. elseif (dat3>dat1)and (dat3>dat2) and (dat3>dat4) then

    E berikan indentasi di baris 16

    (UTS 2008 2009)

    96. Jika program sudah diperbaiki dan dat1=7, dat2=6, dat3=10, dat4=9 , maka urutan proses

    eksekusi program menjadi :

    A. 7-8-10-11-13-14-17 D. 7-13-14-16-17

    B. 7-8-10-11-13-14-15-16-17 E. 7-8-10-13-14-17

    C. 7-8-10-11-13-14-16-17

    (UTS 2008 2009)

  • 97. Jika terdapat 3 variabel bertipe string sebagai berikut: str, has : string

    cc : character

    strHell cco has Str cc

    Jika has berisi Hello, maka operasi pada has adalah : A. o D. Hello

    B. Hell E. Tidak bisa ditentukan

    C. oHell

    (UTS 2008 2009)

    98. Perhatikan program di bawah ini Program allAboutBoolean

    Kamus

    X, Y, Z : Boolean

    A : integer

    Algoritma

    Input(a)

    X True Z ( (4 + (5 div 2) ) = 5) Y a >= 0 If (X and Y) Xor (Y and Z) then

    Output (Terpenuhi)

    Else

    Output (Tidak Terpenuhi)

    Output ( Ya)

    Apa yang akan dioutputkan oleh program di atas?

    A. Terpenuhi

    B. Terpenuhi Ya

    C. Tidak Terpenuhi

    D. Tidak Terpenuhi Ya

    E Tidak ada jawaban yang benar, karena nilai variable a belum dapat ditentukan

    nilainya (tergantung dengan inputan user)

    (UTS 2008 2009)

    99. Telusuri program di bawah ini. Program analisakasus1

    Kamus

    x,y : integer

    Algoritma

    input (x,y,z)

    Depend on (x,y)

    xy : depend on (y,z)

  • y>z : output (fine) y=80 then

    zz-30 if z>=70 then

    zz-10 else

    if z>= 65 then

    zz-5 yx if x

  • (UTS 2007 2008)

    102. 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

    (UTS 2007 2008)

    103. 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

    (UTS 2007 2008)

    104. Perhatikan program di bawah ini. Program Fungsi

    Kamus

    i,j,k:integer

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

    Algoritma

    i0;j1;k2

    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

    (UTS 2007 2008)

    105. 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

    (UTS 2007 2008)

    106. 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) (UTS 2007 2008)

    107. 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

    E.

  • input(asal)

    input (kurs) KonversiUang(asal,kurs)

    (UTS 2007 2008)

    109

    .

    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}

    (UTS 2007 2008)

    110. Diketahui penggalan algoritma sebagai berikut: Program apaini

    Kamus

    Algoritma

    Input(x)

    bx While x 9999 do

    Input(x)

    If x > b then

    bx {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

    (UTS 2007 2008)

    111. Diketahui algoritma sebagai berikut: Program hayoapa

    Kamus

    Algoritma

    Input(x)

    apahayo true While (x

  • D. Data_ke_satu

    E. Luas_A1

    (UTS 2007 2008)

    113. 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

    (UTS 2007 2008)

    114. 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

    (UTS 2007 2008)

    115. Cara deklarasikan konstanta PI didalam algoritma adalah :

    A. constant PI=3.14

    B. constant PI=real=3.14

    C. constant PI

  • 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

    (UTS 2007 2008)

    118. 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

    (UTS 2007 2008)

  • Essay UTS SP 2006 - 2007

    1. Tuliskan program dengan ketentuan sebagai berikut: a. Program melakukan pengecekan, apakah seorang mahasiswa dapat dinyatakan lulus

    TPB atau tidak.

    spesifikasi

    input : 3 record matakuliah dari seorang mahasiswa (untuk menyederhanakan

    permasalahan, anggap saja matakuliah TPB cuma ada 3)

    proses : melakukan menghitung IPK mahasiswa, mengecek apakah ada nilai E,

    kemudian menentukan apakah mahasiswa tersebut lulus TPB

    Syarat kelulusan TPB (ini hanya simulasi, bukan syarat yang sebenarnya) :

    IPK mahasiswa >= 2 dan tidak ada nilai E (asumsikan tidak pernah ada nilai T)

    output : mencetak IPK, dan mencetak hasil pengecekan kelulusan TPB

    Contoh :

    input :

    Output :

    IPK = 2,5

    mahasiswa tersebut tidak lulus TPB

    b. Program tersebut direalisasikan dalam tiga modul, yaitu:

    i. Fungsi IsAdaE ii. Fungsi konversi

    iii. Fungsi IsLulus

    c. Kerjakan program di atas pada lembar yang sudah disediakan.

    Program KelulusanTPB {Program Utama}

    Kamus :

    type matakuliah :

    matkul1,matkul2,matkul3 : matakuliah

    ada_E : ............

    IPK : real

    sks_total : integer

    Algoritma :

    .................................

    {ada_E bernilai true jika mahasiswa punya nilai E, dan false jika sebaliknya}

  • ada_E IsAdaE(matkul11) ..... IsAdaE(matkul2)..... IsAdaE(matkul3)

    sks_total .....................................

    IPK ( (matkul1.sks * konversi(matkul1.nilai_huruf))+

    (matkul2.sks * konversi(matkul2.nilai_huruf))+

    (matkul3.sks * konversi(matkul3.nilai_huruf)) )/sks_total

    Output(IPK= ,........)

    {Memeriksa apakah mahasiswa memenuhi persyaratan lulus TPB,manfaatkan fungsi yang telah

    anda buat }

    if ........................ then

    output (Mahasiswa tersebut lulus TPB)

    else

    output (Mahasiswa tersebut tidak lulus TPB)

    function IsAdaE(k:matakuliah)boolean

    {menerima sebuah record matakuliah dan mengembalikan nilai true jika ada nilai E dan false jika

    sebaliknya}

    kamus lokal :

    algoritma

    if ............... then

    .............

    else

    .............

    function konversi(nil_huruf:char) integer

    {menerima sebuah nilai huruf , dan mengkonversikannya ke nilai angka}

    kamus lokal :

    algoritma :

    depend on .............

    ............

    ............

    ............

    ............

    ............

    function IsLulus(IPK: real, ada_E:............) boolean

  • {melakukan pengecekan apakah seorang mahasiswa dapat dinyatakan lulus TPB atau tidak,

    berdasarkan syarat kelulusan yang telah ditetapkan}

    kamus lokal :

    algoritma

    if .......................... then

    ...........

    else

    ...........

    2. Tuliskan program dengan ketentuan sebagai berikut: a. Spesifikasi program

    input : jumlah bilangan yang dimasukkan (n), asumsikan n >0,

    proses : dari n bilangan yang dimasukkan, program mengecek berapa banyak (cacah)

    dan jumlah (total penjumlahan) dari bilangan yang merupakan kelipatan 3 dan

    kurang dari 20

    Jika banyaknya (cacah bilangan) adalah genap, maka dihitung rata-

    ratanya dengan rumus :

    Rata = jumlah dari bilangan yang merupakan kelipatan 3 dan kurang dari 20

    cacah dari bilangan yang merupakan kelipatan 3 dan kurang dari 20

    output : - mencetak cacah dari bilangan yang merupakan kelipatan 3 dan

    kurang dari 20

    - mencetak jumlah dari bilangan yang merupakan kelipatan 3 dan

    kurang dari 20

    - mencetak rata-rata (jika dipenuhi syarat seperti pada spesifikasi

    program)

    Contoh :

    N = 5

    Bilangan ke-1 : 1

    Bilangan ke-2 : 3

    Bilangan ke-3 : 6

    Bilangan ke-4 : 21

    Bilangan ke-5 : 34

    Cacah bilangan kelipatan 3 dan kurang dari 20 = 2 (3 dan 6)

    Jumlah bilangan kelipatan 3 dan kurang dari 20 = 9 (3+6)

    Rata-rata: 4.5 (lihat kembali pesyaratan mencari nilai rata-rata seperti pada spesifikasi

    program di atas)

    b. Program tersebut direalisasikan dalam tiga modul, yaitu:

    i. Procedure CekJumlahDanCacahBilangan ii. Procedure CekCacahBilDanHitungRata

  • Program UTS2 {Program Utama}

    Kamus

    n :integer {jumlah bilangan yang dimasukkan}

    bil : integer {bilangan yang dimasukkan}

    jum : integer {variabel untuk menyimpan nilai jumlah bilangan}

    cacah:integer {variabel untuk menyimpan nilai cacah bilangan}

    ...................................................................

    ...................................................................

    Algoritma

    input(n)

    {Pemanggilan procedure CekJumlahDanCacahBilangan}

    ...............................................

    output(Cacah bilangan kelipatan 3 dan kurang dari 20 =,.......)

    output(Jumlah bilangan kelipatan 3 dan kurang dari 20 =,.......)

    if ................. then

    {Pemanggilan prosedur CekJumlahDanCacahBilangan}

    ......................

    else

    output('Penyebut nol, jadi tidak bisa dicari rata-rata')

    Procedure CekJumlahDanCacahBilangan(input n:integer,

    output jumbil,cacahbil:integer)

    {Menerima sebuah nilai yang menyatakan banyaknya bilangan

    dan menghasilkan cacah dan jumlah dari bilangan-bilangan kelipatan 3}

    {IS : terdefinisi banyaknya bilangan yang dimasukkan (n)

    FS : menghasilkan cacah dan jumlah dari bilangan-bilangan kelipatan 3}

    Kamus lokal

    i,bil: integer

    Algoritma

    {Assignment awal}

    ................

    ................

    ................

    while (i

  • output(Bilangan ke -,i,=)

    ...............

    {Memeriksa apakah bilangan yang dimasukkan habis dibagi 3 dan

    kurang dari 20}

    if ........................ then

    .......................

    .......................

    {agar pengulangan dapat berhenti, perlu statemen di bawah ini}

    .............

    {i=n}

    Procedure CekCacahBilDanHitungRata(input cacahbil,jumbil:integer)

    {Memeriksa apakah cacah bilangan adalah genap.Jika genap, hitung rata-ratanya dan dicetak}

    {IS: terdefinisi cacah bilangan dan jumlah bilangan

    FS:didapatkan nilai rata-rata dan mencetak nilai rata-rata}

    kamus lokal

    ratabil:real {variabel untuk menyimpan nilai rata-rata}

    Algoritma

    ...........................

    ....................

    ....................

    Essay UTS 2006 - 2007

    [20] II.1 PENGHITUNGAN GAJI KARYAWAN

    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 =

    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 : kd.gaji500.000+kd.lembur*5000 2 : kd.gaji300.000+kd.lembur*3000 3 : kd.gaji250.000+kd.lembur*2000 4 : kd.gaji100.000+kd.lembur*1500 5 : kd.gaji50.000+kd.lembur*1000

    procedure urut(input : ku1,ku2,ku3:karyawan)

    Kamus lokal depend on (ku1.gaji, ku2.gaji, ku3.gaji)

    ku1.gaji>ku2.gaji>ku3.gaji:ouput(ku3.gaji, ku2.gaji, ku1.gaji)

    ku1.gaji>ku3.gaji>ku2.gaji:ouput(ku2.gaji, ku3.gaji, ku1.gaji)

    ku2.gaji>ku1.gaji>ku3.gaji:ouput(ku3.gaji, ku1.gaji, ku2.gaji)

    ku2.gaji>ku3.gaji>ku1.gaji:ouput(ku1.gaji, ku3.gaji, ku2.gaji)

    ku3.gaji>ku1.gaji>ku2.gaji:ouput(ku2.gaji, ku1.gaji, ku3.gaji)

    ku3.gaji>ku2.gaji>ku1.gaji:ouput(ku1.gaji, ku2.gaji, ku3.gaji)

    [20] II.2 PERMAINAN TEBAK ANGKA

    Tuliskan algoritma Permainan menebak angka, yang dilakukan antara 2 orang. Aturan

    mainnya adalah sebagai berikut :

    1. Pemain A diminta untuk memasukkan angka antara 1 sampai 100.

  • 2. Pemain B diberi kesempatan 6x untuk menebak angka yang dimasukkan pemain A.

    3. Setiap tebakan yang dilakukan B, program anda akan menginformasikan pada B, apakah lebih besar, lebih kecil, atau sama dengan angka yang dimasukkan

    A.

    4. Jika setelah 6x kesempatan pemain B gagal menebak angka yang dimasukkan A, maka pesan akan tampil Coba kembali dan proses diulang kembali.

    5. Jika B berhasil menebak dengan benar, maka pemain A dan B diminta untuk menukar posisi, dan permainan diulang kembali.

    6. Program akan terus berlangsung selama pemain A tidak memasukkan nilai -1.

    Contoh tampilan di layar terhadap persoalan di atas sebagai berikut: (data yang diinputkan

    user dalam bold style)

    Player A enter number (between 1..100) to be guessed (-1) to end: 12

    (Program will clear screen at this point)

    Player B you have 6 chances to guess the number.

    Chance 1: 50

    Guess is greater than number !

    Chance 2: 25

    Guess is greater than number !

    Chance 3: 13

    Guess is greater than number !

    Chance 4: 5

    Guess is less than number !

    Chance 5: 12

    ------------------ Player B Wins ------------------

    Please swap roles and play again.

    Player A enter number (between 1..100) to be guessed (-1) to end: -1

    PROGRAM ENDED !

    Lengkapilah algoritma di bawah ini untuk menjawab persoalan tebak angka tersebut yang

    akan menghasilkan tampilan di layar seperti contoh di atas !

    Program Game

    Kamus

    Number, Guess : integer

    Count : integer

    Change : boolean

    Function InputNumber integer {fungsi untuk mengembalikan nilai berupa angka yang akan ditebak}

    Function InputGuess integer {fungsi untuk mengembalikan angka tebakan yang sudah dimasukkan user}

    Function GreaterThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih besar

    daripada Number}

  • Function LessThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih kecil

    daripada Number}

    Function Equal (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess sama dengan Number,

    yaitu angka yang ditebak}

    Algoritma

    Output (Player A enter number (between 1..100) to be guessed

    (-1) to end : )

    Number InputNumber While (Number -1) and (number > 0) and (number < 101) do

    Output (Player B You have 6 change to guess the number)

    Change False Count 0 Repeat

    Count Count + 1 Guess InputGuess If (GreaterThan (Number,Guess)= True) then

    Output (Guess is greater than number)

    If (LessThan (Number,Guess)= True) then

    Output (Guess is less than number)

    If (Equal (Number,Guess)= True) then

    Output (Thats the number !!!)

    Change True Until (Count = 6) or (change = True)

    Output (Please swap roles and play again)

    Number InputNumber

    Function InputNumber integer

    {fungsi untuk mengembalikan nilai berupa angka yang akan ditebak}

    Kamus Lokal

    Algoritma

    Input (InputNumber)

    InputNumber

    Function InputGuess integer {fungsi untuk mengembalikan angka tebakan yang sudah dimasukkan user}

    Kamus Lokal

    Algoritma

    Input (InputGuess)

    InputGuess

    Function GreaterThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih besar

    daripada Number}

    Kamus Lokal

    Algoritma

    GreaterThan False If (Guess > Number) then

    GreaterThan True GreaterThan

  • Function LessThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih kecil

    daripada Number}

    Kamus Lokal

    Algoritma

    LessThan False If (Guess < Number) then

    LessThan True LessThan

    Function Equal (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess sama dengan Number,

    yaitu angka yang ditebak}

    Kamus Lokal

    Algoritma

    Equal False If (Guess = Number) then

    Equal True Equal

    Essay UTS 2008 - 2009

    [20] II.1 PENGHITUNGAN GAJI KARYAWAN

    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 =

    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 : kd.gaji500.000+kd.lembur*5000 2 : kd.gaji300.000+kd.lembur*3000 3 : kd.gaji250.000+kd.lembur*2000 4 : kd.gaji100.000+kd.lembur*1500 5 : kd.gaji50.000+kd.lembur*1000

    procedure urut(input : ku1,ku2,ku3:karyawan)

    Kamus lokal depend on (ku1.gaji, ku2.gaji, ku3.gaji)

    ku1.gaji>ku2.gaji>ku3.gaji:ouput(ku3.gaji, ku2.gaji, ku1.gaji)

    ku1.gaji>ku3.gaji>ku2.gaji:ouput(ku2.gaji, ku3.gaji, ku1.gaji)

    ku2.gaji>ku1.gaji>ku3.gaji:ouput(ku3.gaji, ku1.gaji, ku2.gaji)

    ku2.gaji>ku3.gaji>ku1.gaji:ouput(ku1.gaji, ku3.gaji, ku2.gaji)

    ku3.gaji>ku1.gaji>ku2.gaji:ouput(ku2.gaji, ku1.gaji, ku3.gaji)

    ku3.gaji>ku2.gaji>ku1.gaji:ouput(ku1.gaji, ku2.gaji, ku3.gaji)

    [20] II.2 PERMAINAN TEBAK ANGKA

    Tuliskan algoritma Permainan menebak angka, yang dilakukan antara 2 orang. Aturan

    mainnya adalah sebagai berikut :

    7. Pemain A diminta untuk memasukkan angka antara 1 sampai 100.

    8. Pemain B diberi kesempatan 6x untuk menebak angka yang dimasukkan pemain A.

    9. Setiap tebakan yang dilakukan B, program anda akan menginformasikan pada B, apakah lebih besar, lebih kecil, atau sama dengan angka yang dimasukkan

    A.

    10. Jika setelah 6x kesempatan pemain B gagal menebak angka yang dimasukkan A, maka pesan akan tampil Coba kembali dan proses diulang kembali.

    11. Jika B berhasil menebak dengan benar, maka pemain A dan B diminta untuk menukar posisi, dan permainan diulang kembali.

    12. Program akan terus berlangsung selama pemain A tidak memasukkan nilai -1.

  • Contoh tampilan di layar terhadap persoalan di atas sebagai berikut: (data yang diinputkan

    user dalam bold style)

    Player A enter number (between 1..100) to be guessed (-1) to end: 12

    (Program will clear screen at this point)

    Player B you have 6 chances to guess the number.

    Chance 1: 50

    Guess is greater than number !

    Chance 2: 25

    Guess is greater than number !

    Chance 3: 13

    Guess is greater than number !

    Chance 4: 5

    Guess is less than number !

    Chance 5: 12

    ------------------ Player B Wins ------------------

    Please swap roles and play again.

    Player A enter number (between 1..100) to be guessed (-1) to end: -1

    PROGRAM ENDED !

    Lengkapilah algoritma di bawah ini untuk menjawab persoalan tebak angka tersebut yang

    akan menghasilkan tampilan di layar seperti contoh di atas !

    Program Game

    Kamus

    Number, Guess : integer

    Count : integer

    Change : boolean

    Function InputNumber integer {fungsi untuk mengembalikan nilai berupa angka yang akan ditebak}

    Function InputGuess integer {fungsi untuk mengembalikan angka tebakan yang sudah dimasukkan user}

    Function GreaterThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih besar

    daripada Number}

    Function LessThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih kecil

    daripada Number}

    Function Equal (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess sama dengan Number,

    yaitu angka yang ditebak}

    Algoritma

    Output (Player A enter number (between 1..100) to be guessed

    (-1) to end : )

    Number InputNumber While (Number -1) and (number > 0) and (number < 101) do

  • Output (Player B You have 6 change to guess the number)

    Change False Count 0 Repeat

    Count Count + 1 Guess InputGuess If (GreaterThan (Number,Guess)= True) then

    Output (Guess is greater than number)

    If (LessThan (Number,Guess)= True) then

    Output (Guess is less than number)

    If (Equal (Number,Guess)= True) then

    Output (Thats the number !!!)

    Change True Until (Count = 6) or (change = True)

    Output (Please swap roles and play again)

    Number InputNumber

    Function InputNumber integer

    {fungsi untuk mengembalikan nilai berupa angka yang akan ditebak}

    Kamus Lokal

    Algoritma

    Input (InputNumber)

    InputNumber

    Function InputGuess integer {fungsi untuk mengembalikan angka tebakan yang sudah dimasukkan user}

    Kamus Lokal

    Algoritma

    Input (InputGuess)

    InputGuess

    Function GreaterThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih besar

    daripada Number}

    Kamus Lokal

    Algoritma

    GreaterThan False If (Guess > Number) then

    GreaterThan True GreaterThan

    Function LessThan (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess lebih kecil

    daripada Number}

    Kamus Lokal

    Algoritma

    LessThan False If (Guess < Number) then

    LessThan True LessThan

    Function Equal (Number,Guess : integer) boolean {fungsi untuk mengembalikan nilai benar jika Guess sama dengan Number,

    yaitu angka yang ditebak}

    Kamus Lokal

  • Algoritma

    Equal False If (Guess = Number) then

    Equal True Equal

    Essay UTS 2007-2008

    1

    . POLINOM [10]

    Buatlah Agoritma untuk menghitung hasil evaluasi polinom

    P(x) = xn + x

    n-1 + x

    n-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 + x

    n-1 + x

    n-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 + x

    n-1 + x

    n-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 =

    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.gajiku1>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)