Rabu, 01 Oktober 2014

SOAL LATIHAN ALGORITMA

Bagian 1

  1. Perhatikan algoritma berikut ini.

    KAMUS

    A, B, C, T : integer

    BEGIN ALGORITMA

    T ß 0

    INPUT(A)

    T ß T + A

    INPUT(B)

    T ß T + B

    INPUT(C)

    T ß T + C

    OUTPUT(T)

    END ALGORITMA


     

    Berapakah nilai T, jika nilai A,B,C berturut-turut diINPUTkan dengan nilai 7, 5 dan 2 ?

    14


jawaban_no 1;

uses crt;


var
 A,B,C,T : integer;

begin
 clrscr;

 write('masukkan nilai A: ');
 readln(A);
 write('masukkan nilai B: ');
 readln(B);
 write('masukkan nilai C: ');
 readln(C);

 T := 0;
 T := T + A;
 T := T + B;
 T := T + C;

 write('maka nilai T adalah: ',T);
 readln();
end.


 


 

  1. Perhatikan penggalan algoritma berikut ini.

    A ß 4 ; B ß 3

    X ß A

    X ß B mod X

    B ß A

    B ß X + B

    OUTPUT(A, X, B)


     

    Berapakah nilai A, X dan B ?


     

    Jawaban_no2;

    uses crt;


     

    var

    A,B,X : integer;


     

    begin

    clrscr;


     

    A := 4; B:= 3;

    X := A;

    X := B mod X;

    B := A;

    B := X + B;


     

    writeln('maka nilai A adalah: ',A);

    writeln('maka nilai X adalah: ',X);

    writeln('maka nilai B adalah: ',B);

    readln();

    readln();


     

    end.

    A = 4 ; X = 3 ; B = 7


     

  2. Perhatikan penggalan algoritma dibawah ini:

Algoritma

…….

IF (a = 10 and b = 5) THEN

c <-- 156

ELSE

c <-- 165

END IF


 

Jika ternyata variabel a diberikan INPUT 5, maka nilai variabel c adalah?


 

 uses crt;


 

var


 

  A,B,C : integer;


 

begin

  clrscr; 

  write('masukan nilai A: '); readln(A);


 

  write('masukan nilai B: '); readln(B);


 

  if (A = 10) AND (B = 5)then


 

    C := 156


 

  else


 

    C := 165;


 

  writeln('maka nilai C adalah: ',C); readln();


 


 

end.


 

165


 


 


 


 

  1. Perhatikan algoritma berikut ini.

    KAMUS

    A, B : integer

    C : Boolean

    BEGIN ALGORITMA

    A ß 0 ; B ß 2

    A ß B ; B ß A + A

    C ß ((A > B) AND (A <> 2))

    OUTPUT (C)

    END ALGORITMA


     

    Berapa nilai C ?


 

uses crt;


 


 

var


 

  a,b : integer;


 

  c : boolean;


 


 

begin


 

  clrscr;


 

  a := 0; b := 2;


 

  a := b; b := a + a;


 

  c := ((a > b) and (a <> 2));


 

  writeln('maka nilai c adalah: ',c);


 

  readln();


 


 

end.


 


 

  1. Perhatikan algoritma berikut.

    KAMUS

    A, B, C : integer

    BEGIN ALGORITMA

    INPUT(A,B,C)

    IF (A > B) THEN

    IF (A > C) THEN

    OUTPUT(A)

    ELSE

    OUTPUT(C)

    ENDIF

    ELSE

    IF (B > C) THEN

    OUTPUT(B)

    ELSE

    OUTPUT(C)

    ENDIF

    ENDIF

    END ALGORITMA


     

    Apa OUTPUT yang dihasilkan, apabila nilai-nilai yang diINPUTkan , A = 3, B = 6 dan C = 4 ?


 

uses crt;


 


 

var


 

  A,B,C : integer;


 


 


 

begin


 

  clrscr;


 

  write('masukan nilai A: '); readln(A);


 

  Write('masukan nilai B: '); readln(B);


 

  write('masukan nilai C: '); readln(C);


 

  if (A > B) then


 

    if (A > C) then


 

       writeln('maka hasilnya nilai A: ',A)


 

    else


 

       writeln('maka hasilnya nilai C: ',C)


 

  else


 

    if(B > C)then


 

       writeln('maka hasilnya nilai B: ',B)


 

    else


 

       writeln('maka hasilnya nilai C: ',C);


 

       readln();

 end.


 

6


 


 


 


 


 


 


 


 

  1. Perhatikan penggalan algoritma berikut ini.

    INPUT(N)

    IF (N > 50) THEN

    IF ( N > 75) THEN

    N ß N – 25

    ENDIF

    ELSE

    N ß N + 10

    ENDIF

    OUTPUT(N)

    Berapa nilai akhir N, apabila N awalnya diINPUT dengan nilai 85 ?


 

uses crt;

var

  N : integer;

begin

  clrscr;

  write('masukan suatu angka: '); readln(N);

  if (N > 50)THEN

    if ( N > 75) then

      N := N - 25

  else

    N := N + 10;

    writeln('maka nilai itu menjadi: ',N); readln();

end.


 

60


 

  1. Perhatikan algoritma berikut ini :


    KAMUS

    N, R, B : integer

    BEGIN ALGORITMA

    INPUT(N); INPUT(B)

    IF (N < 80) THEN

    R ß B + 4 * 2 + N / 4 – B + 1

    ELSE IF (N < 70) THEN

    R ß B + 5 * 3 + N / 4 – B + 2

    ELSE IF (N < 60) THEN

    R ß B + 6 * 4 + N / 4 – B + 3

    ELSE

    IF (N < 40) THEN

    R ß B + 7 * 5 + N / 4 – B + 4

    ELSE

    R ß B + 8 * 6 + N / 4 – B + 5

    ENDIF

    ENDIF

    OUTPUT(R)

    END ALGORITMA


     

    Berapa nilai R yang dihasilkan, apabila nilai B = 3 dan N = 60 ?


 

uses crt;


 


 

var


 

N,R,B : integer;


 


 

begin


 

clrscr;


 

write('masukan nilai N: '); readln(N);


 

write('masukan nilai B: '); readln(B);


 


 

if ( N < 80) then


 

R := B + 4 * 2 + N div 4 - B + 1


 

else if (N < 70) then


 

R := B + 5 * 3 + N div 4 - B + 2


 

else if (N < 60) then


 

R := B + 6 * 4 + N div - B + 3


 

else


 

if (N < 40)then


 

R := B + 7 * 5 + N div 4 - B + 4


 

else


 

R := B + 8 * 6 + N div 4 - B + 5;


 

writeln('maka nilai R adalah: ',R);

readln();


 


 

end.

24


 


 


 

  1. Perhatikan penggalan algoritma berikut ini:

    INPUT(M, N, P)

    IF (P < 20) THEN

    M ß M * 2

    ELSE

    IF (N < 30) THEN

    N ß N * 3

    ELSE

    IF (M < 40) THEN

    P ß P * 4

    ELSE

    M ß 0

    ENDIF

    ENDIF

    ENDIF

    OUTPUT(M, N, P)

    Tentukan OUTPUT yang dihasilkan, jika nilai awal yang diINPUTkan untuk M = 40, N = 30, dan P = 20.


 

uses crt;


 


 

var


 

  m,n,p : integer;


 


 

begin


 

  write('masukan nilai m: '); readln(m);


 

  write('masukan nilai n: '); readln(n);


 

  write('masukan nilai p: '); readln(p);


 

  if (p < 20) then


 

     m := m * 2


 

  else


 

     if (n < 30) then


 

        n := n * 3


 

     else


 

        if (m < 40) then


 

           p := p * 4


 

        else


 

           m := 0;


 

  writeln('maka nilai m: ',m);


 

  writeln('maka nilai n: ',n);


 

  writeln('maka nilai p: ',p);


 

  readln();


 


 

end.


 


 


 

M = 0 ; N = 30 ; P = 20


 

  1. Perhatikan penggalan algoritma berikut ini:

    M ß 2 ; Q ß 10

    IF (M < 5) THEN

    M ß M + 2

    ENDIF

    IF (M >= 5) THEN

    Q ß M + Q

    ENDIF

    OUTPUT(Q,M)

    Berapa nilai akhir Q dan M ?


Q= 10 ; M = 4


 

uses crt;


 


 

var


 

  m,n,p : integer;


 


 

begin


 

  write('masukan nilai m: '); readln(m);


 

  write('masukan nilai n: '); readln(n);


 

  write('masukan nilai p: '); readln(p);


 

  if (p < 20) then


 

     m := m * 2


 

  else


 

     if (n < 30) then


 

        n := n * 3


 

     else


 

        if (m < 40) then


 

           p := p * 4


 

        else


 

           m := 0;


 

  writeln('maka nilai m: ',m);


 

  writeln('maka nilai n: ',n);


 

  writeln('maka nilai p: ',p);


 

  readln();


 


 

end.


 


 


 

  1. Perhatikan algoritma berikut ini:


     

    KAMUS

    Bilangan : integer

    Keterangan : string

    BEGIN ALGORITMA

    INPUT(Bilangan)

    Keterangan ß "menu promosi"

    IF (Bilangan <> 4) THEN

    CASE (Bilangan)

    1 : Keterangan ß "menu hemat"

    2 : Keterangan ß "menu paket"

    3 : Keterangan ß "menu gledheg"

    OTHERWISE : Keterangan ß "menu irit"

    END CASE

    ENDIF

    OUTPUT (Keterangan)


END ALGORITMA

    Tentukan OUTPUT dari algoritma di atas, apabila variabel Bilangan diINPUTkan 4


 

uses crt;

Var
 bilangan : integer;
 ket : string;

Begin
 writeln('mohon masukkan nilai bilangan');
 readln(bilangan);

 ket := ('menu promosi');

 if (bilangan > 4) then
  case (bilangan) of
   1 : ket := ('menu hebat');
   2 : ket := ('menu paket');
   3 : ket := ('menu gledeg');
  else
   writeln('menu irit');
  end;

 writeln('tadi keterangannya adalah : ',ket);
 readln();

end. 


 


 


Menu Promosi


 

  1. Diketahui A berisi 25, B berisi 13 dan C berisi 37, dijalankan algoritma

        B ß A

        C ß B

        A ß C

        OUTPUT(A)

    Keluaran dari program diatas adalah …

2


 

uses crt;


 


 

var


 

  a,b,c : integer;


 


 

begin


 

  clrscr;


 

  write('masukan nilai a: '); readln(a);


 

  write('masukan nilai b: '); readln(b);


 

  write('masukan nilai c: '); readln(c);


 

  b := a;


 

  c := b;


 

  a := c;


 

  writeln('maka nilai a adalah:  ',a); readln();


 


 

end.


 


 


 


 

  1. Perhatikan potongan algoritma berikut:

    na, uts, uas, tugas, quiz: integer

    utsß75

    uasß80

    tugasß50

    quizß50

    naß (uts * 30 /100) + (uas * 35 / 100) + (tugas * 15 / 100) + (quiz * 20 / 100)

    IF na>80 THEN

            indeksß'A'

    END IF

    IF na>60 THEN

            indeksß'B'

    END IF

            indeksß'C'

             indeksß'A'

    OUTPUT (indeks)

Apakah Keluaran dari program diatas?

D

uses crt;


 


 

var


 

 na, uts, uas, tugas, quiz : integer;


 

 indeks : char;


 


 

begin


 

  clrscr;


 

  uts := 75;


 

  uas := 80;


 

  tugas := 50;


 

  quiz := 50;


 


 

  na := (uts * 30 div 100) + (uas * 35 div 100) + (tugas * 15 div 100) + (quiz * 20 div 100);


 

  if na > 80 then


 

     indeks := 'A';


 

  if na > 60 then


 

     indeks := 'B';


 

  end.


 

     indeks := 'C'


 

     indeks := 'A'


 

  writeln(' maka indeks nilainya adalah: ',indeks); readln();


 

  end.


 


 

  1. Diberikan potongan algoritma sbb :

i ß 5

i ß 8

OUTPUT(i)


 

    Tampilan dari OUTPUT(i) adalah …


 

uses crt;


 


 

var


 

 i : integer;


 


 

begin


 

 clrscr;


 

 i := 5;


 

 i := 8;


 

 writeln('nilai i adalah: ',i);


 

 readln();


 

end.


 

8


 

  1. Diberikan potongan algoritma sbb :

    IF d>0 THEN

        d ß d - 1

    ELSE

        d ß 59

        IF (m > 0) THEN

        m ß m – 1

        ELSE

        m ß 59

        j ß j - 1

        ENDIF

    END IF

    OUTPUT(j + m - d)


     

    Jika secara berurutan nilai j, m dan d 9,0, dan 0, maka tampilan akhir kode program diatas adalah?


 

uses crt;


 


 

var


 

 j,m,d : integer;


 


 


 

begin


 

  clrscr;


 

  write('masukan nilai j: '); readln(j);


 

  write('masukan nilai m: '); readln(m);


 

  write('masukan nilai d: '); readln(d);


 

  if d > 0 then


 

      d := d - 1


 

  else


 

      d := 59;


 

      if (m > 0)then


 

          m := m - 1


 

      else


 

          m := 59;


 

          j := j - 1;


 

  writeln('maka nilai j + m - d adalah: ',j + m - d);


 

  readln();


 


 

end.


 

8


 


 

  1. Perhatikan algoritma berikut

Program Soal18

Kamus

    x,y:integer

Algoritma

xß15

yß8

zß7

xßy + x

yßx - y

OUTPUT(x)

OUTPUT(y)

END


 

Keluaran dari program diatas secara berurutan adalah 2


 

uses crt;


 


 

var


 

  x,y,z : integer;


 


 

begin


 


 

  x := 15;


 

  y := 8;


 

  z := 7;


 

  x := y + x;


 

  y := x - y;


 

  writeln('maka nilai x: ',x);


 

  writeln('maka nilai y: ',y);


 

  readln();


 


 

end.

3
15


 

  1. Diketahui A berisi 15, B berisi 23, dijalankan algoritma

A ß B

B ß A

Isi A dan B di akhir algoritma adalah …


 

uses crt;


 


 

var


 

 a,b : integer;


 


 

begin


 

 clrscr;


 

 write('masukan nilai a: '); readln(a);


 

 write('masukan nilai b: '); readln(b);


 

 a := b;


 

 b := a;


 

 writeln('maka nilai a: ',a);


 

 writeln('dan nilai b: ',b);


 

 readln();


 

end.


 

23 23

  1. Diketahui A berisi 25, B berisi 13 dan C berisi 37, dijalankan algoritma

B ß A

C ß B

A ß C

Isi C di akhir algoritma adalah … 25


 

uses crt;


 


 

var


 

 a,b,c : integer;


 


 

begin


 

 write('masukan nilai a: '); readln(a);


 

 write('masukan nilai b: '); readln(b);


 

 write('masukan nilai c: '); readln(c);


 

 b := a;


 

 c := b;


 

 a := c;


 

 writeln('maka nilai c adalah: ',c);


 

 readln();


 

end.


 

  1. Diberikan potongan algoritma sbb :

    INPUT(N)

    IF N<10 THEN

    N ß N + 5

    END IF

    OUTPUT(N)

    Jika dari perintah INPUT(N), dimasukkan data 15, maka tampilan dari OUTPUT(N) adalah …


 

uses crt;


 


 

var


 

 n : integer;


 


 

begin


 

 write('masukan nilai n: '); readln(n);


 

 if n < 10 then


 

   n := n + 5


 

 end.


 

 writeln('maka nilai n adalah: ',n);


 

 readln();


 

end.


 


 


 


 

  1. Sebuah bilangan yang telah diINPUT ke dalam variable bil akan dipecah menjadi ratusan,puluhan dan satuan :

ratusan ß bil div 100

puluhan ß ...

satuan ß bil mod 10


 

Perintah untuk mENDapatkan puluhan di atas adalah …


 

uses crt;


 


 

var


 

 x, ratusan, puluhan, satuan: integer;


 


 

begin


 

  clrscr;


 

  write('masukan suatu angka: ');readln(x);


 

  ratusan := x div 100;


 

  puluhan := x div 10;


 

  satuan  := x mod 10;


 

  writeln('maka nilai puluhannya adalah: ',puluhan);


 

  readln();


 


 

end.


 

(bil mod 100) div 10


 

  1. Diberikan potongan algoritma sbb :

    INPUT(j,m,d)

    IF d>0 THEN

    d ß d - 1

    ELSE

    d ß 59

    IF m>0 THEN

    m ß m – 1

    ELSE

    m ß 59

    j ß j - 1

    ENDIF

    ENDIF

    OUTPUT(j,m,d)

    Jika INPUT(j,m,d), dimasukkan data 9, 0 dan 0, maka tampilan akhir dari OUTPUT(j,m,d) adalah …


 

uses crt;


 


 

var


 

 j,m,d : integer;


 


 


 

begin


 

  clrscr;


 

  write('masukan nilai j: '); readln(j);


 

  write('masukan nilai m: '); readln(m);


 

  write('masukan nilai d: '); readln(d);


 

  if d > 0 then


 

      d := d - 1


 

  else


 

      d := 59;


 

      if (m > 0)then


 

          m := m - 1


 

      else


 

          m := 59;


 

          j := j - 1;


 

  writeln('maka nilai j adalah: ',j);


 

  writeln('maka nilai m adalah: ',m);


 

  writeln('maka nilai d adalah: ',d);


 

  readln();


 


 

end.


 

8 59 59

  1. Telusuri program dibawah ini:

    ALGORITMA Semangat1

        KAMUS

    x, y, z : integer

    BEGIN ALGORITMA

    INPUT(x,y,z)

    IF (x < y) THEN

    IF (y < z) THEN

    OUTPUT("mahasiswa telkom university")

    ELSE

    OUTPUT("mempunyai visi yang besar")

    END IF

    ELSE

    IF (x > y) THEN

    IF (y < z) THEN

    OUTPUT("karena itu")

    ELSE

    OUTPUT("kami selalu rajin belajar")

    END IF

    END IF

    END IF


     

    Jika pengguna memasukkan x = 3, y = 8, z = 5, maka OUTPUT algoritma tersebut adalah?


 


 

uses crt;

Var
 x,y,z : integer;

Begin
 Write('masukkan nilai x= ');
 readln(x);
 write('masukkan nilai y= ');
 readln(y);
 write('masukkan nilai z= ');
 readln(z);

 if (x < y) then
  if (y < z) then
        writeln('mahasiswa telkom universty')
  else
        writeln('mempunyai visi yang besar')
 else
  if (x > y) then
   if (y > z) then
        writeln('karena itu')
   else
        writeln('kami selalu rajin belajar');
        readln();
end.


 

  1. Telusuri program dibawah ini:


     

    ALGORITMA Semangat2

    KAMUS

    x, y, z : integer

    BEGIN 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

    END IF

    END IF

    IF (x <= 70) THEN

    z <-- z – 10

    y <-- x

    END IF

    OUTPUT(x, y, z)

    END

    Jika pengguna memasukkan x = 32, y = 50, maka OUTPUT algoritma tersebut adalah?


 


 

32 32 42


 

  1. Telusuri program dibawah ini:


     

    Program Periksa_Semangat

    Kamus

    x, y : integer

    BEGIN ALGORITMA

    INPUT(x, y, x)

    IF (x = 1) THEN

    OUTPUT("1. Visi (Mimpi) telah sesuai dengan langkah")

    ELSE IF ((x >= 2) and ( x <= 4) THEN

    OUTPUT("2. Pantang menyerah untuk meraih mimpi")

    ELSE IF (x = y) THEN

    OUTPUT("3. Jujur dan profesional dalam melangkah")

    ELSE IF ( y > x) THEN

    OUTPUT("4. Berdoa tanpa putus")

    END IF

    END ALGORITMA

    Jika pengguna memasukkan x = 4, y = 5, dan x = 1, maka outputnya adalah


 

uses crt;

Var
 x,y : integer;

begin
 write('masukkan nilai x= ');
 readln(x);
 write('masukkan nilai y= ');
 readln(y);
 write('masukkan nilai x= ');

 if(x = 1) then
  writeln('1. visi(mimpi) telah denagn langkah')
 else if (x >= 2) and (x <=4) then
  writeln('2. pantang menyerah untuk meraih mimpi')
 else if (x = y) then
  writeln('3. jujur dan profesional dalam melangkah')
 else if (y > x) then
  writeln('4. berdoa tanpa putus');
  readln();

end.

1. Visi (Mimpi) telah sesuai dengan langkah


 

  1. Telusuri program dibawah ini:


     

    ALGORITMA Cari_Maksimum

    Kamus

    dat1, dat2, dat3, dat4, big : integer

    BEGIN

    INPUT(dat1, dat2, dat3, dat4)

    IF ((dat1 >= dat2) and (dat1 >= dat3) and (dat1 >= dat4)) THEN

    big <-- dat1

    ELSE IF ((dat2 >= dat1) and (dat2 >= dat3) and (dat2 >= dat4))

    big <-- dat2

    ELSE IF ((dat3 >= dat1) and (dat3 >= dat2) and (dat3 >= dat4))

    big <-- dat3

    ELSE

    big <-- dat4

    END IF

    OUTPUT(big)

    END

    Jika pengguna memasukkan 12, 3, 4, dan 5, maka OUTPUTnya adalah?

    12

        

  2. Perhatikan penggalan algoritma dibawah ini:

    …….

    IF (a = 10 and b = 5) THEN

    c <-- 156

    ELSE

    c <-- 165

    END IF


     

    Jika ternyata variabel a diberikan INPUT 5, maka nilai variabel c adalah?

    165    


     


     


     


     


     


     


     


     


     


     


     

  3. Telusuri algoritma dibawah ini:


     

    ALGORITMA AllAboutboolean

    KAMUS

    x, y, z : boolean

    a : integer

    BEGIN

    INPUT(a)

    x <-- false

    z <-- ((3 + (5 mod 3)) = 5)

    y <-- (a <= 0)

    IF ((x and y) or (not(y or z))) THEN

    OUTPUT("Telkom university is The Best")

    ELSE IF ((y and (not z)) or (x and y)) THEN

    OUTPUT("Telkom university is The Clean Campus")

    END IF

    OUTPUT("Telkom university is The Smart Campus")

    END


     

    Jika pengguna memasukkan -1, maka OUTPUT algoritma tersebut adalah?

    Telkom university is The Smart Campus

            

  4. Diberikan potongan algoritma sbb :


     

    IF d>0 THEN

        d <-- d + 1

    ELSE

        d <-- 59

        IF (m < 0) THEN

            m <-- m + 1

        ELSE

            m <-- 59

            j <-- j + 1

        ENDIF

    END IF

    OUTPUT(j+m-d)


     

    Jika secara berurutan nilai j, m dan d adalah 9, 0, dan 0,

    maka tampilan akhir kode program diatas adalah?

    10

        

  5. Diberikan potongan algoritma sbb :


     

    INPUT(N)

    IF N>10 THEN

        N <-- N + 5

    END IF

    OUTPUT(N)


     

    Jika dari perintah INPUT(N), dimasukkan data 5,

    maka tampilan dari OUTPUT(N) adalah…

    5


     

  6. Diberikan potongan algoritma sbb :

    Kamus Data

        a : integer

        b : boolean

    Begin

        input(a)

        bfalse

        if (( a = 10 ) && b ) then

            output("First ")

        else

            output("Second ")

        end if

        output("Third")

    End

    Apakah keluaran dari kode program diatas jika pada input(a) dimasukkan nilai 10?

    Second Third


     

  7. Jika y diinputkan nilai 16, apakah output dari algoritma di bawah ini:

        Kamus Data

         isFalse: Boolean

         y: Integer

        BEGIN

         Input(y)

         isFalse <-- True

            
     

         If (True) Then    

             If ( ((y Mod 2) = 0) AND isFalse )    

             y <-- y Div 3    

             Else    

             y <-- y * y    

         Endif

        
     

         Else    

             y <-- 100    

         Endif        

         output(y)

        END

    5


     

BAGIAN 2: ESSAY


 

Soal Nilai Akhir

Seorang mahasiswa ingin mengetahui nilai akhir matakuliah algoritma.

Aturan perhitungan Nilai Akhir yang diterapkan :

- UTS         25 %

- UAS         35 %

- Tugas & Quiz         20 %

- Praktikum         20 %

Setelah dihitung nilai akhirnya, kemudian dapat ditentukan indeks nilainya dengan aturan:

- Indeks="A" bila Nilai Akhir >= 80

- Indeks="B" bila Nilai Akhir >= 65 dan Nilai Akhir <80

- Indeks="C" bila Nilai Akhir >= 50 dan Nilai Akhir <65

- Indeks="D" bila Nilai Akhir >= 35 dan Nilai Akhir <50

- Indeks="E" bila Nilai Akhir < 35


 

Buat algoritma untuk membantu mahasiswa tersebut dalam menghitung nilai akhir dan Indeksnya, bila semua komponen nilai diINPUT.


 

Soal Menghitung Gaji Bersih

Gaji bersih seorang pegawai dihitung dari gaji pokok dan tunjangan dipotong pajak yang harus dibayar. Besar tunjangan adalah 15 % dari gaji pokok, dan besar pajak adalah 10 % dari gaji pokok ditambah tunjangan. Buat algoritma untuk menghitung gaji bersih tersebut jika gaji pokoknya diINPUT.


 

Soal Menghitung Jumlah Bus

Sebuah acara wisata digunakan bus yang berkapasitas 30 orang. Tulis algoritma untuk menghitung jumlah bus wisata yang diperlukan bila jumlah peserta diINPUT dari keyboard. Catatan : bila jumlah peserta tidak kelipatan 30, maka jika sisanya > 5 harus disediakan 1 bus tambahan, bila sisanya <= 5 maka tidak perlu tambahan bus.


 


Algoritma Wisata

//


Kamus Data

jpeserta :

j_bus :


BEGIN

INPUT(jpeserta)

...

OUTPUT(j_bus)


END


 


 


 


 

Soal Menghitung Gaji dan Upah Lembur

Pada suatu perusahaan terdapat 5 golongan karyawan. Gaji karyawan ditentukan berdasarkan gaji tetap dan juga dari lamanya bekerja. Gaji tetap dan gaji per jam tergantung kepada golongan karyawan sesuai dengan tabel berikut:

Golongan

Gaji tetap (Rp)

Upah lembur per jam (Rp)

500.000 

5000 

300.000 

3000 

250.000 

2000 

100.000 

1500 

50.000 

1000 

Buatlah program untuk menghitung total gaji karyawan yang diterima dengan rumus: gaji sesuai golongan + (banyaknya jam lembur * tarIF lembur sesuai golongan karyawan)!

Contoh tampilan program:

INPUT:

Golongan: 2

Jumlah jam lembur: 5

OUTPUT:

Total gaji: 315000


 

#include<stdio.h>

#include<stdlib.h>

int main(){

int iGolongan, iLembur, iTotal;

printf("Golongan = ");

scanf("%d",&iGolongan);

printf("Jumlah jam lembur = ");

scanf("%d",&iLembur);

switch(iGolongan){

case 1: iTotal=500000+iLembur*5000;

break;

case 2: iTotal=300000+iLembur*3000;

break;

case 3: iTotal=250000+iLembur*2000;

break;

case 4: iTotal=100000+iLembur*1500;

break;

case 5: iTotal=50000+iLembur*1000;

break;

}

printf("Total gaji = %d\n",iTotal);

system("PAUSE");

return 0;

}

Soal: Lama Bekerja

Tulis program untuk menentukan lama bekerja seorang pegawai, jika jam masuk dan jam pulang diINPUT. Catatan: jam berupa angka 1-12, dan seorang pegawai bekerja kurang dari 12 jam.

Contoh Masukan dan keluaran:

Jam masuk 

Jam keluar 

Keluaran/tampilan 

10 

11 

Lama bekerja 1 jam 

10 

Lama bekerja 4 jam  

10 

Lama bekerja 9 jam  


 

Algoritma:

Algoritma Lama_Bekerja

{jam berupa angka 1-12, dan seorang pegawai bekerja kurang dari 12 jam}


 

KAMUS DATA

iMasuk, iKeluar, iLama: Integer


 

BEGIN

Input(iMasuk)

Input(iKeluar)


 

If (iKeluar >= iMasuk) Then

iLama ß iKeluar - iMasuk

Else

iLama ß (12-iMasuk) + iKeluar

end if


 

Output(iLama)

END

Soal: Biaya Parkir

Tulis program untuk menentukan biaya parkir yang dihitung berdasarkan lama parkir. Lama parkir dihitung dari selisih jam masuk dan jam keluar diINPUT. Biaya parkir 2 jam pertama 2000, perjam berikutnya 500.

Contoh Masukan dan keluaran:

Jam masuk 

Jam keluar 

Lama 

keluaran/tampilan 

10 

11 

Biaya = 2000 

10 

4

Biaya = 3000


 

Algoritma:

Algoritma Biaya_Parkir

{menghitung biaya parkir}


 

KAMUS DATA

iMasuk, iKeluar, iLama, iBiaya: Integer


 

BEGIN

Input(iMasuk)

Input(iKeluar)


 

If (iKeluar >= iMasuk) Then

iLama ß iKeluar - iMasuk

Else

iLama ß (12-iMasuk) + iKeluar

End If


 

If (iLama > 2) Then

iBiaya ß 2000 + ((iLama - 2)*500)

else

iBiaya ß 2000


 

Output(iBiaya)

END


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 

Soal: Penggabungan Resistor

Tulis program untuk menghitung resistor pengganti dari 3 buah resistor yang disusun secara seri atau paralel. Rumus untuk resistor pengganti sbb:

Seri:        Rgab = R1 + R2 + R3

Paralel:     1/Rgab = 1/R1 + 1/R2 + 1/R3

Besar R1, R2 dan R3 serta jenis penyusunan (seri/paralel) diINPUT oleh user.

Algoritma:

Algoritma Menghitung_Resistor

KAMUS DATA

iPilihan: Integer

fR1, fR2, fR3, fResPengganti: Float


 


 

BEGIN

Input(fR1,fR2,fR3)

Input(iPilihan)


 

Case iPilihan

    1: fResPengganti ß fR1+ fR2+ fR3

    2: fResPengganti ß (1.0/fR1)+ (1.0/fR2)+ (1.0/fR3)

     fResPengganti ß 1.0/fResPengganti

Otherwise: output("pilihan salah")

End Case


 

Output(fResPengganti)


 

END

Soal: Harga barang

Buatlah program untuk menyelesaikan masalah berikut :
Program akan menerima masukan berupa kode, jenis dan harga, dengan jenis adalah "A", "B", dan "C". Untuk setiap jenis, masing-masing akan diberikan diskon sebesar 10% untuk A, 15% untuk B, dan 20% untuk C. Program akan menghitung berapa harga setelah didiskon.
Contoh masukan :
Jenis = B

kode = 10
harga = 10000
Contoh keluaran :
Jenis barang B mENDapat diskon = 15%, Harga setelah didiskon = 8500    


 


 

Algoritma

Algoritma Menghitung_Barang


 

KAMUS DATA

iKode,iHarga:integer

cJenis: character


 

BEGIN

Input(cJenis)

Input(iKode)

Input(iHarga)


 

Case(cJenis)

    'A': iHDiskon ß 0,9 * iHarga

    'B': iHDiskon ß 0,85 * iHarga

    'C': iHDiskon ß 0,8 * iHarga

End Case


 

output(iHDiskon)

END


 


 


 


 


 


 


 


 


 

Soal: Gaji karyawan mingguan

Sebuah perusahaan swasta menggaji karyawannya secara mingguan dengan hitungan sebagai berikut :


 

golongan 1 dengan upah per jam 3.000 rupiah

golongan 2 dengan upah per jam 3.500 rupiah

golongan 3 dengan upah per jam 4.000 rupiah

golongan 4 dengan upah per jam 5.000 rupiah


 

Bila seorang karyawan bekerja kurang atau sama dengan 40 jam per minggu, akan dihitung dengan upah per jam seperti di atas, tetapi apabila bekerja lebih dari 40 jam, maka lebihnya akan dihitung sebagai lembur dengan upah per jam 1½ kali upah biasa.

Tulis algoritma untuk menghitung gaji mingguan karyawan, bila golongan dan jam kerja diINPUT dari keyboard.

    


 

Algoritma:

Algoritma Menghitung_Gaji


 

KAMUS DATA

iGol, iJam, iUpah, iGaji : Integer


 

BEGIN

    

Input(iGol)

Input(iJam)


 

iUpah ß 0


 

Case(iGol)

1: iUpah ß 3000    

2: iUpah ß 3500    

3: iUpah ß 4000    

4: iUpah ß 5000    

End case


 

If (iJam > 40) Then

iGaji ß 40 * iUpah + ((iJam - 40) * 1.5 * iUpah)

Else

iGaji ß iJam * iUpah

End if


 

Output(iGaji)


 

END


 


 

Soal: Menghitung selisih waktu dalam jam dan menit

Buat program menghitung selisih waktu (dalam jam dan menit) berdasarkan jam mulai (jam,menit) dengan jam selesai (jam,menit). Data yang diINPUT adalah jam dan menit mulai, jam dan menit selesai. Format jam yang dimasukkan bisa berupa format 12 jam ataupun 24jam.

Contoh Masukan dan Keluaran:

Mulai (jam,menit) 

Selesai (jam,menit) 

Lama (menit) 

Lama (jam,menit)

10:30

12:10

100 

1 jam 40 menit

10:30

1:40

190

3 jam 10 menit


 

Algoritma:

ALGORITMA MENGHITUNG_JAM_MENIT


 

KAMUS DATA

iJamStart,iMenitStart,iMenitStop,iJamStop: integer

iTotMenit1,iTotMenit2,iSelangMenit,iJamDurasi,iMenitDurasi: integer


 

BEGIN

Input(iJamStart)

Input(iMenitStart)


 

Input(iJamStop)

Input(iMenitStop)


 

iTotMenit1 ß iJamStart * 60 + iMenitStart

iTotMenit2 ß iJamStop * 60 + iMenitStop


 

If (iTotMenit2 >= iTotMenit1) Then

iSelangMenit ß iTotMenit2 - iTotMenit1

Else

iSelangMenit ß ((12*60)-iTotMenit1) + iTotMenit2

End if


 

iJamDurasi ß iSelangMenit div 60

iMenitDurasi ß iSelangMenit mod 60;


 

Output(iJamDurasi)

Output(iMenitDurasi)


 

END

Soal: Kuadran dari koordinat titik

Buat program dengan masukan koordinat sebuah titik (x,y) dalam sebuah system koordinat kartesian, kemudian ditentukan di kuadran mana titik tersebut.

Contoh Masukan :

Koordinat titik (x,y) : 10 -20


 

Contoh keluaran:

Titik 10,-20 berada pada kuadran 4


 


 


 


 


 

Algoritma:

ALGORITMA Menghitung_Kuadran


 

KAMUS DATA

ix, iy: Integer


 

BEGIN

Input(ix,iy)


 

If (ix >= 0)

If (iy >=0)

Output("Kuadran I")

else

Output("Kuadran IV")

else

if (iy >=0)

    Output("Kuadran II")

else

Output("Kuadran III")

END


 


 


 


 


 


 


 


 

Soal: Tunjangan Anak

Pemerintah hanya memberikan tunjangan anak dari PNS maksimal sampai 3 anak saja. Setiap anak diberikan tunjangan sebesar 10% dari gaji pokok.

Tulis program untuk menghitung total tunjangan anak, bila gaji pokok dan jumlah anak diINPUT oleh user.

Contoh Masukan dan Keluaran:

Jumlah anak

Gaji Pokok 

Tunjangan Anak

0

1.000.000

0

1

1.000.000 

100.000

1.000.000 

300.000 

1.000.000 

300.000 


 


 


 


 

Algoritma:

ALGORITMA Menghitung_Tunjangan


 

KAMUS DATA

iGajiPokok, iTunjangan, iJmlAnak: Integer


 

BEGIN


 

Input(iGajiPokok)

Input(iJmlAnak)


 

If (iJmlAnak <= 3 && iJmlAnak > 0) Then

iTunjangan ß iJmlAnak * 0.1 * iGajiPokok

Else If (iJmlAnak > 3)

iTunjangan ß 3 * 0.1 * iGajiPokok

Else

iTunjangan ß 0

End if


 

Output ( iTunjangan)


 

END

Soal: Minibus pariwisata

Sebuah acara wisata digunakan minibus kapasitas 7 penumpang per mobil. Apabila terjadi kelebihan penumpang (walaupun cuma 1), maka minibus yang digunakan ditambah 1. Tulis program untuk menghitung jumlah minibus yang diperlukan, bila jumlah pesertanya diINPUT.

Contoh Masukan dan Keluaran:

Jumlah Peserta

Jumlah Minibus

5

1

7

1


 


 


 

Algoritma:

ALGORITMA Menghitung_Tunjangan


 

KAMUS DATA

iPeserta,iMinibus : Integer


 

BEGIN

Output(iPeserta)


 

iMinibusß0


 

If (iPeserta > 7) Then

iMinibus ß iPeserta / 7

If (iPeserta % 7 != 0) Then

iMinibus ß iMinibus + 1

End If

Else if (iPeserta > 0) Then

iMinibus ß 1

End if


 

Output(iMinibus)


 

END


 


 


 

Soal: Menentukan N hari yang lalu tanpa mengINPUTkan Hari Ini

DiINPUT jumlah berapa hari yang lalu, kemudian ditentukan nama harinya. Tulis program untuk menentukan nama hari dari sekian hari yang lalu yang diINPUT. (Catatan, gunakan Hari ini = 'Senin')

Contoh Masukan dan Keluaran:

N hari yang lalu

Nama Hari

0

Senin

1

Minggu

10 

Jumat 

20 

Selasa 


 


 

Algoritma:

ALGORITMA Menentukan_Nama_Hari_1


 

KAMUS DATA

iNHari,iBelakang : Integer

cNamaHari[15]: String


 

BEGIN

Input(iNHari)


 

iBelakang ß ( iNHari + 1)


 

Case (iBelakang)

1: cNamaHari ß"Senin"

2: cNamaHari ß"Selasa"

3: cNamaHari ß"Rabu"

4: cNamaHari ß"Kamis"

5: cNamaHari ß"Jumat"

6: cNamaHari ß"Sabtu"

7: cNamaHari ß"Minggu"

Otherwise: cNamaHari ß "Inputan salah"

End Case


 

Output(cNamaHari)


 

END


 


 

Soal: Menentukan N hari yang lalu dengan mengINPUTkan Hari Ini

DiINPUT jumlah berapa hari yang lalu, kemudian ditentukan nama harinya. Tulis program untuk menentukan nama hari dari sekian hari yang lalu dan nomor hari ini yang diINPUT.

Contoh Masukan dan Keluaran:

N hari yang lalu

Hari ini 

Nama Hari

0

1

Senin

3

3

Minggu

Sabtu 


 


 

Algoritma:


 

ALGORITMA Menghitung_Hari


 

KAMUS DATA

iNHari,iHariIni,iBelakang : Integer

cNamaHari[15] : String

cNamaHariLalu: Char


 

BEGIN


 

Input(iHariIni)

Input(iNHari)


 

If (iHariIni>iNHari) Then

iBelakang ß iHariIni - iNHari

Else

iBelakang ß 7 - (iNHari - iHariIni)

End If


 

Case (iBelakang)

1: cNamaHari ß"Senin"

2: cNamaHari ß"Selasa"

3: cNamaHari ß"Rabu"

4: cNamaHari ß"Kamis"

5: cNamaHari ß"Jumat"

6: cNamaHari ß"Sabtu"

7: cNamaHari ß"Minggu"

End Case


 

Output(cNamaHari)

END

Soal: Penghitungan Pembayaran Listrik

PLN menerapkan pembayaran listrik perumahan dengan cara perhitungan sebagai berikut :

  • Untuk golongan 1 tarIF : Rp 1000/kWh
  • Untuk golongan 2 tarIF : Rp 2000/kWh


     

    Dengan syarat penghitungan:

    Minimum pembayaran adalah 100 kWh sedangkan untuk pemakaian 1000 kWh dan seterusnya tarIFnya ditambah 10% dari total pembayaran.


     

    Golongan

    Pemakaian

    Bayar

    1

    50

    100.000

    2

    150

    300.000

    1

    1000

    1.100.000


     


     

    ALGORITMA Menghitung_Pembayaran_Listrik


     

    KAMUS DATA

        iGol,iPakai,iTarIF,iBayar : Integer


     

    BEGIN

        INPUT(iGol)

        INPUT(iPakai)

        

        IF ( iGol = 1) THEN

            iTarIF <--1000

        ELSE

            iTarIF <-- 2000

        END IF


     

        IF (iPakai < 100) THEN

            iBayar <-- 100 * iTarIF

        ELSE IF ( iPakai >= 1000)

            iBayar <-- iPakai * iTarIF * 1.1

        ELSE

            iBayar <-- iPakai * iTarIF

        END IF


     

        OUTPUT(iBayar)

    END


     

    Soal: Penghitungan Bulan

    Buatlah algoritma untuk menghitung bulan pernikahan dengan mengINPUTkan bulan saat ini dan berapa bulan kedepan. Misal data:


     

    Bulan Saat Ini

    N Bulan Kedepan

    Bulan Pernikahan

    1

    2

    3

    12

    1

    1

    10

    5

    3


     


     


     


     


     


     


     


     

    ALGORITMA Menghitung_Bulan_Pernikahan


     

    KAMUS DATA

        iBlnSekarang, iNbulan, iBlnPernikahan : Integer


     

    BEGIN

    INPUT (iBlnSekarang)

    INPUT (iNBulan)


     

        IF ( (iBlnSekarang + iNbulan) <= 12     ) THEN

            iBlnPernikahan <-- iBlnSekarang + iNbulan

        ELSE

            iBlnPernikahan <-- (iBlnSekarang + iNbulan) mod 12

        END IF


     

    OUTPUT (iBlnPernikahan)


     

    END


     


     


     


     

    Soal: Selisih 2 waktu

    Buat program untuk menghitung selisih waktu antara 2 waktu, dengan masukan waktu adalah dalam bentuk (jam, menit, detik) dan keluaran dalam detik!

    Contoh tampilan program:

    INPUT:

    Waktu1= 2:30:45

    Waktu2= 2:31:20

    OUTPUT:

    Selisih waktu= 35 detik

    #include<stdio.h>

    #include<stdlib.h>

    int main(){

    int waktu1[3],waktu2[3], selisih;

    printf("Waktu 1= ");

    scanf("%d:%d:%d",&waktu1[0],&waktu1[1],&waktu1[2]);

    printf("Waktu 2= ");

    scanf("%d:%d:%d",&waktu2[0],&waktu2[1],&waktu2[2]);

    selisih=(waktu1[0]*3600+waktu1[1]*60+waktu1[2])-(waktu2[0]*3600+waktu2[1]*60+waktu2[2]);

    printf("Selisih = %d detik\n",selisih);

    system("PAUSE");

    return 0;

    }


     


     


     


     


     


     


     


     


     


     


     


     


     


     


     


     

0 komentar:

Posting Komentar