Anda di halaman 1dari 15

KUMPULAN LATIHAN SOAL ALPRO

1. Tentukan keluaran potongan algoritma berikut ini :


X  10
B  X * 2
C  X + B
Output(C)

Jawab:30

2. Tentukan keluaran potongan algoritma berikut ini :


A  7; B  4; C  1
Z  B + 2
A  A + Z
C  A
Output(C)
Jawab: 13

3. Tentukan keluaran potongan algoritma berikut ini :


A  3; B  9; C  11
Z  C - B
C  Z % B
Output(C)
Jawab: 2
4. Tentukan keluaran potongan algoritma berikut ini :
P  5
B  P % 7
C  P > B
Output(C)
Jawab: false
5. Tentukan keluaran potongan algoritma berikut ini :
P  8 ; q  5
B  P < 7
C  P > q
C  C AND B
Output(C)
Jawab: false
6. Tentukan keluaran potongan algoritma berikut ini :
X  3; Y  5
B  Y < X
C  Y > 2
C  C OR B
Output(C)
Jawab: false
7. Tentukan keluaran potongan algoritma berikut ini :
B  2 ; P  3
B  P % 5
B  B * P
Output(B)
Jawab: 9
8. Tentukan keluaran potongan algoritma berikut :
KAMUS DATA
a,b,c: Integer
BEGIN
a  5
b  7
b  b + a
c  b
Output(c)
END

Jawab:12

9. Tentukan keluaran potongan kode program C++ berikut :


int a,b,c;
KAMUS DATA
a,b,c: Integer
BEGIN
a  5
b  7
c  9
a  b + c
b  a - b
c  b
Output(c)
END
Jawab: 9
10. Tentukan keluaran potongan algoritma berikut jika variabel a diberi nilai 14 :
KAMUS DATA
a,b: Integer
BEGIN
Input(a)
b  a mod 5
Case(b)
1: a  a div 2
2: a  a * b
3: a  a + 3
Otherwise: a  a mod b
End Case
Output(a)
END
Jawab: 2
11. Tentukan keluaran potongan algoritma berikut jika variabel a diberi nilai 11 :
KAMUS DATA
a,b: Integer
BEGIN
Input(a)
If(a mod 3 = 2)
b  a div 2
a  a * b
Else
b  a / 3
a  a * b
End If
Output(a)
END
Jawab:55
12. Perhatikan algoritma berikut !
A5
B7
CA + B
AC - 2
BC - A
Output(A,B,C)
Berapakah nilai akhir A, B dan C?
Jawab: A:10, B:2, C:12

13. Perhatikan algoritma berikut !


X2
Y8
ZY - X
XZ div 2
YZ - X
Output(X,Y,Z)
Berapakah nilai akhir X, Y dan Z?
Jawab: X:3, Y:3, Z:6
14. Perhatikan algoritma berikut !
Input(X)
Y10
If (X > 10) Then
YX+5
EndIf
Output(Y)
Berapakah nilai akhir Y jika input X = 10?
Jawab: 10
15. Perhatikan algoritma berikut !
Input(A)
If (A <= 5) Then
BA+5
Else
BA*2
EndIf
Output(B)
Berapakah nilai akhir B jika input A=5 ?
Jawab:10
16. Perhatikan algoritma berikut !
Input(kode);
If (kode = “ABC”) Then
produk”KECAP”
Else If (kode = “ABB”) Then
produk”SAUS”
Else If (kode = “ABG”) Then
produk”MIE”
Else
produk”Tak Terdaftar”
EndIf
Output(produk)
Apakah produk yang muncul jika input kode=”AGB” ?
Jawab: “Tak Terdaftar”
17. Perhatikan algoritma berikut dan tentukan outputnya jika N dimasukkan nilai 5
Input(N)
Case (N)
1 : status”Juara Satu”
2 : status”Juara Dua”
3 : status”Juara Tiga”
Otherwise : status”Anda Kalah”
EndCase
Output(status)
Jawab: “Anda Kalah”
18. Perhatikan algoritma berikut !
A1
While (A <=10)
Output (“Saya Cakep”)
AA+2
EndWhile
Berapa kalikah tulisan “Saya Cakep” akan tercetak?
Jawab: 5x
19. Perhatikan algoritma berikut !
Input(A)
B0
Do
BB+10
AA+2
While (A <6)
Output(B)
Berapakah nilai akhir dari B jika input A=4?
Jawab: 10

20. Perhatikan algoritma berikut !


For(i=1;i<=3;i++)
For(j=1;j<=4;j++)
Output (“*”)
EndFor
EndFor
Berapakah banyak bintang yang akan tercetak?
Jawab: 12

21. Tentukan hasil akhir dari program berikut ini, jika a,b,c berturut-turut diisi 5, 11, 32 :
a  a mod b
b c div a
a b mod c
output(a)
jawab: 6
22. Untuk program :
input(batas1)
input(batas2)
if 40>batas1 and batas2>300 then
batas1=200
endif
if 30>batas1 or batas2>200 then
batas1=100
endif
if 20>batas1 and batas2>100 then
batas1=50
endif
output(batas1)
jika masukkan dari pengguna, untuk batas1 adalah 14 dan batas2 adalah 104, maka hasil
program ini adalah……………….
Jawab: 100
23. for (I0;i<10;i++)
if A < 30 then
x  x + 1
endif
endfor
output(x)
Jika nilai A dan x berturut-turut diisi dengan angka 30, 10 pada awal program, maka hasil dari
program ini adalah …………….
Jawab:10
24. Apakah hasil dari program berikut ini :
a 5
for (x1;x>a;x++)
for (y1;y>x;x++)
output(”#”)
endfor
output(”\n”) {ganti baris}
endfor
Jawab: tidak ada output

25. Kamus
n, i, hasil, token: integer
Begin
input (n)
hasil  0
token  0
i  1
while (i ≤ n) do
if (i mod 2 = 1) then
hasil  hasil + i
token  token + 1
endIf
i  i + 1
endWhile
output (hasil,token)
End
Apa hasil keluaran variabel hasil dan token dari algoritma di atas bila n=10!
Jawab: hasil:25, token: 5
26. Input(N)
IF (N > 50) THEN
N  N – 25
IF (N > 75) THEN
N  N – 20
ELSE
N  N – 10
ENDIF
ENDIF
Output(N)
Berapa nilai akhir N, apabila nilai awal N diinputkan 35 ?
Jawab: 35

27. Lengkapi titik-titik yang ada pada algoritma berikut.


Program MenghitungSelisihWaktu
/*
Program akan menerima inputan 2 buah waktu. Masing masing waktu terdiri dari jam,
menit, dan detik.
Contoh :
Masukkan Waktu Pertama : 8 40 40
Masukkan Waktu Kedua : 10 20 36
Selisih Waktu = 1 Jam, 39 Menit, 56 Detik
*/
Kamus Data
h1, h2, h, m1, m2, m, d1, d2, d : integer
Algoritma
Output(”Masukkan Waktu Pertama”)
Input(h1,m1,d1)
Output(”Masukkan Waktu Kedua”)
Input(h2,m2,d2)
d  d2 – d1
if( d<0 )
m2  m2 - 1
d  60 - d1 + d2
endif

m  m2 – m1
if( m<0 )
h2  h2 - 1
m  60 - m1 + m2
endif

if(h1 > h2)


h  12 - h1 + h2
else
h  h2 – h1
endif

output(“Selisih waktu = ”, h,m,d)

28. Lengkapi titik-titik yang ada pada algoritma berikut.


Program MenghitungRataRata
/*
Program akan menerima inputan jumlah data yang akan dimasukkan. Setelah data di
input, akan dihitung rata-rata dari data tersebut dan mencari nilai terbesar.
Contoh :
Jumlah data : 4
Data 1 : 2
Data 2 : 4
Data 3 : 8
Data 4 : 2
Rata-rata = 4
Nilai terbesar = 8
*/
Kamus Data
x, y, z, jum, rata, besar : integer
Algoritma
output(”Jumlah data : ”)
input(x)
jum  0
besar  0
for(y  1; y<=x ; y++)
output(“data ”,y)
input(z)
jum  jum + z

if( besar < z )


besar  z
endif
endfor
rata  jum/x
output(rata, besar)

29. Di bawah ini adalah pseudocode dari algoritma penghitungan luas permukaan balok. Inputan
dari user berupa panjang, lebar, dan tinggi. Outputan berupa luas permukaan balok tersebut.

Kamus Data
___(a)___: ________(b)_________
___(c)___: ________(d)_________
___(e)___ : ________(f)_________
___(g)___ : ________(h)_________

Algoritma
Input (iPanjang,ilebar,iTinggi)
iLuasPerm  ________(i)________
output (______(j)______)
End Algoritma

(a) iPanjang
(b) integer
(c) ilebar
(d) integer
(e) iTinggi
(f) integer
(g) iLuasPerm
(h) integer
(i) iPanjang * Ilebar * iTinggi * 6
(j) iLuasPerm
30. Lengkapi program berikut

//Algoritma Gaji_Pegawai
//hitung jumlah dan rata-rata gaji
//dari data gaji seluruh pegawai yang diinput

void main() {
//KamusData
...1)
//Begin
printf(“Masukkan banyaknya pegawai : ”);
scanf(...2));
Jml = ...3);
for (i=1;i<=...4);i++) {
printf(“Masukkan data gaji pegawai ke-%d : ”,... 5));
scanf(...6));
Jml = ... 7);
}
Rata2 =...8);
printf(...9));
printf(...10));
}
//End

Contoh tampilan di layar:


Masukkan banyaknya pegawai : 4
Masukkan data gaji pegawai ke-1 : 1000000
Masukkan data gaji pegawai ke-2 : 1500000
Masukkan data gaji pegawai ke-3 : 2300000
Masukkan data gaji pegawai ke-4 : 2000000
Total Gaji Pegawai = 6800000
Rata2 = 1700000

int main()
{
int Jml,banyak, gaji,Rata2,i;

printf("Masukkan banyaknya pegawai : ");


scanf("%d", &banyak);
Jml = 0;
for (i=1;i<=banyak;i++) {
printf("Masukkan data gaji pegawai ke-%d : ",i);
scanf("%d", &gaji);
Jml = Jml+gaji;
}
Rata2 =Jml/banyak;
printf("Total Gaji Pegawai: %d \n", Jml);
printf("Rata-rata: %d ", Rata2);

system("PAUSE");
return 0;
}
31. Lengkapi program berikut agar tampilan yang diharapkan sebagai berikut

Jumlah dari 5 + 10 + 15 + 20 + 25 + 30 + 35 + 40 + 45 + 50 = 275


Maka programnya :

//Program JumlahDeret
//hitung Jml = 5 + 10 + 15 + ... + 45 + 50 }

void main() {
//KamusData
int Jml, i;

//Begin
Jml =0;
printf(“Jumlah dari “);
i=5;
while (i<55) {
printf(“%d + “,i);
Jml =Jml+i;
i=i+5;
}

printf(“%d”, Jml);
}
//End

32. Algoritma Mencari_Bilangan_Terbesar


IS : pengguna memasukkan bilangan bulat positif, diakhiri dengan angka -999
FS : menampilkan angka terbesar dari seluruh angka yang dimasukkan

Kamus data
statstop : boolean
x,bMax : integer
Begin
statstop true
bMax  -999
while (statstop) do
output(”masukkan angka yang ingin dibandingkan : ”)
input(x)
if (x < 0) then
output(”masukkan hanya bilangan bulat positif”)
endif
output(”akhiri dengan masukkan angka -999”)
if(x = -999) then
statstop  false
else
if(x>bMax) then
bMax x
endif
endif
endwhile
if(bMax = -999) then
output(”Tidak ada angka yang dimasukkan”)
else
output(”Nilai terbesar adalah”,bMax)
End
33. Buatlah algoritma untuk menghitung pangkat suatu bilangan dengan menggunakan perulangan.
Contoh :
Bilangan : 5
Pangkat : 4
5 dipangkatkan 4 = 625.

Algoritma Pangkat
Kamus Data
i, bilangan, pangkat, hasil: Integer
Begin
Input(bilangan)
Input(pangkat)

Hasil1

i1
While (i<=pangkat) Do
hasil hasil * bilangan
i++
End While

Output(hasil)
End

34. Buatlah pseudocode/algoritma untuk mengkonversi mata uang menjadi pecahan 10 ribuan, lima
ribuan, seribuan, lima ratusan, seratusan.
Contoh :
input : 16000.
Ouput : 1 buah sepuluh ribuan, 1 buah lima ribuan, 1 buah seribuan, 0 buah lima ratusan

Algoritma Hitung_Uang
Kamus Data
uang,sepuluhrb, limarb, seribu, limaratus, seratus: Integer

Begin
Input(uang)
sepuluhrb0
limarb0
seribu0
limaratus0
seratus0

While (uang >= 10000) Do


uanguang-10000
sepuluhrb++
End While

While (uang >= 5000) Do


Uanguang-5000
limarb++
End While

While (uang >= 1000) Do


Uanguang-1000
seribu++
End While

While (uang >= 500) Do


Uanguang-500
limaratus++
End While

While (uang >= 100) Do


uanguang-100
seratus++
End While

Output(sepuluhrb, limarb, seribu, limaratus, seratus)

End

35. Buatlah pseudocode/algoritma untuk menghitung total belanja customer pada sebuah toko
sembako. Sembako yang disediakan adalah sebagai berikut:
a. Beras. Harga Rp. 5500/kg
b. Gula. Harga Rp. 9000/kg
c. Minyak Goreng. Harga Rp. 12.000/liter
d. Telur . Harga Rp. 11.000/kg
Toko sembako tersebut memberikan potongan harga dengan ketentuan sebagai berikut:
a. Beras. Jika membeli lebih dari 20 kg beras, maka mendapatkan diskon 10% untuk
beras merk Ayam Jago dan diskon 15% untuk beras merk Ayam Bali.
b. Gula. Jika membeli gula lebih dari 15 kg, maka mendapatkan diskon 5% untuk gula
dengan merk GULAKU dan 18% untuk gula dengan merk GULAMU.
c. Minyak Goreng. Diskon 7% dari harga total belanja minyak goreng, jika membeli
lebih dari 12 liter
d. Telur . Jika membeli lebih dari 10 kg telur, maka mendapatkan diskon 15% untuk
jenis telur puyuh, 5% untuk jenis telur bebek, 20% untuk jenis telur biasa.
Inputan berupa jumlah belanja beras dalam kg, jumlah belanja gula dalam kg, jumlah belanja
minyak goreng dalam liter, jumlah belanja telur dalam kg.

Algoritma Hitung_Belanja
Kamus Data
jmlberas, jmlgula, jmlminyak, jmltelur: Integer
hargaberas, hargagula, hargaminyak, hargatelur, totalharga: Integer
jenisberas, jenisgula, jenistelur: String
Begin
Input(jmlberas)
Input(jenisberas)
Input(jmlgula)
Input(jenisgula)
Input(jmlminyak)
Input(jmltelur)
Input(jenistelur)

If ( jmlberas > 20) Then


If (jenisberas = “Ayam Jago”)
hargaberas 5500 * jmlberas * 0.9
Else
hargaberas 5500 * jmlberas * 0.85
End If
Else
hargaberas 5500 * jmlberas
End If

If ( jmlgula > 15) Then


If (jenisgula = “GULAKU”)
hargagula 9000 * jmlgula * 0.95
Else
hargagula 9000 * jmlgula * 0.82
End If
Else
hargagula 9000 * jmlgula
End If

If ( jmlminyak > 12) Then


hargaminyak  12000 * jmlminyak * 0.93
Else
hargaminyak 12000 * jmlminyak
End If

If ( jmltelur > 10) Then


If (jenistelur = “puyuh”)
hargatelur 11000 * jmltelur * 0.85
Else If ( jenistelur = “bebek” )
hargatelur 11000 * jmltelur * 0.95
Else If ( jenistelur = “biasa” )
hargatelur 9000 * jmltelur * 0.8

End If
Else
hargatelur 11000 * jmltelur
End If

totalharga  hargatelur + hargaminyak+hargagula+hargaberas

output(totalharga)
End

36. Buat algoritma untuk Menghitung Upah Lembur, dengan ketentuan sebagai berikut:
Uang lembur akan diterima pegawai jika jumlah jam kerja > 40 jam.
Upah lembur per jam ditetapkan berdasarkan golongan.
Jika Golongan=1 maka upah lembur per jam = 2000
Jika Golongan=2 maka upah lembur per jam = 1500
Jika Golongan=3 maka upah lembur per jam = 1000
Selain diatas maka upah lembur per jam = 500

Jumlah jam lembur merupakan hasil dari jumlah jam kerja dikurangi 40.
Uang lembur yang diterima merupakan hasil kali antara upah lembur per jam dan jumlah jam
lembur.
Lalu tampilkan upah lembur yang diterima pegawai.

Input : jumlah jam kerja dan golongannya !


37. Suatu perusahaan memberikan kode bonus tersendiri bagi para salesnya. Buat algoritma untuk
menghitung total gaji yang diterima oleh seorang sales, jika :
- Sales dengan kode A mendapat bonus 7% dari total penjualan dan uang jasa sebesar 5%
dari besar bonus yang diterimanya.
- Sales dengan kode B mendapat bonus 8% dari total penjualan dan uang jasa sebesar 6%
dari total bonus yang diterimanya.
- Sales dengan kode C mendapat bonus 8% dari total penjualan jika total penjualan kurang
dari Rp 2.000.000,- serta uang jasa 6% dari bonus , dan bonus 10% untuk total penjualan lebih
besar sama dengan Rp 2.000.000,- serta uang jasa 8% dari total bonus yang diterimanya.
Jadi komponen Gaji yang diterima seorang sales adalah : Bonus dan Uang Jasa

Algoritma Hitung_bonus
Kamus Data
totalpenjualan, bonus, uangjasa: Integer
kodesales: Char
Begin
Input(kodesales)
Input(totalpenjualan)

Case (kodesales)
“A”: bonus 0.07 * totalpenjualan
uangjasa 0.05 * bonus
“B”: bonus  0.08 * totalpenjualan
uangjasa 0.06 * bonus
“C”: If (totalpenjualan >= 2000000) Then
bonus  0.1 * totalpenjualan
uangjasa 0.08 * bonus
Else
bonus  0.08 * totalpenjualan
uangjasa 0.06 * bonus
End If
End Case

Output(bonus,uangjasa)
End

38. Buat algoritma untuk menampilkan deret goyang sebagai berikut beserta jumlahnya.
1 -2 3 -4 5 -6 7 -8 9 -10
Jumlah = ……

Algoritma deret_goyang
Kamus Data
i,jumlah,banyak: Integer

Begin
banyak10
jumlah0

For (i1;i<=banyak;i++)

If (i Mod 2 = 0) Then
Output(i * -1)
jumlah  jumlah + (i*-1)
Else
Output( i )
jumlah  jumlah+i
End If

Output( jumlah )
End

39. Buat algoritma untuk meminta masukan dua buah nilai, kemudian mengalikan dua buah nilai
tersebut. Syarat : tidak boleh menggunakan operator *

Asumsi: dua buah bilangan yg diinputkan merupakan bilangan bulat positif

Algoritma deret_goyang
Kamus Data
a,b,hasil,i: Integer

Begin
Input(a)
Input(b)
hasil  0

For (i1;i<=b;i++)
hasil  hasil+a
End For

Output( hasil )
End

40. “PT. MAJU TERUS” mempunyai 3 golongan karyawan. Gaji karyawan ditentukan berdasarkan Gaji
Pokok dan jumlah tunjangan keluarga yang dapat diterima oleh seorang karyawan. Ketentuan
Gaji Pokok yang berlaku tergantung pada golongan karyawan sesuai dengan tabel berikut :
Gol Gaji Pokok
C Rp 250.000
B Rp 350.000
A Rp 600.000
- Tunjangan keluarga adalah sebesar 35 % dari Gaji Pokok dan hanya untuk pegawai laki-laki
saja.
- Tunjangan anak adalah 10% dari gaji pokok untuk setiap anak dan hanya diberikan sampai
anak ketiga saja.
- Total Gaji yang diterima adalah Gaji Pokok dijumlahkan dengan besar tunjangan keluarga dan
tunj anak.
Buat algoritma untuk menghitung besar Total Gaji yang dapat diterima oleh seorang karyawan.

Algoritma Hitung_total_gaji
Kamus Data
golongan: Char
jeniskelamin: Char
jmlanak,tunjangankelg,tunjangananak, gajipokok, totgaji: Integer

Begin
Input(golongan)
Input(jeniskelamin)
Input(jmlanak)
tunjangankelg 0
tunjangananak0

Case(golongan)
”A”: gajipokok 600000
“B”: gajipokok 350000
“C”: gajipokok  250000
End Case

If (jeniskelamin = “L”)
tunjangankelg  0.35 *gajipokok
End If

If (jmlanak > 3)
tunjangananak  3 * 0.1 * gajipokok
Else
tunjangananak  jmlanak * 0.1 * gajipokok
End If

totgaji  tunjangankelg + tunjangananak + gajipokok

Output (totgaji)

End

Anda mungkin juga menyukai