51 soal
http://awanrimbawan.wordpress.com
DISCLAIMER
http://awanrimbawan.wordpress.com 04Nov2010
Page 1
- For educational purpose only
http://awanrimbawan.wordpress.com 04Nov2010
Page 2
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.
10 11 Lama bekerja 1
jam
10 2 Lama bekerja 4
jam
10 7 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)
Output(iLama)
END
http://awanrimbawan.wordpress.com 04Nov2010
Page 3
Program:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int iMasuk, iKeluar, iLama;
system("PAUSE");
return 0;
}
10 11 1 Biaya = 2000
10 2 4 Biaya = 3000
http://awanrimbawan.wordpress.com 04Nov2010
Page 4
Algoritma:
Algoritma Biaya_Parkir
{menghitung biaya parkir}
KAMUS DATA
iMasuk, iKeluar, iLama, iBiaya: Integer
BEGIN
Input(iMasuk)
Input(iKeluar)
Output(iBiaya)
END
#include <stdio.h>
#include <stdlib.h>
int main()
{ int iMasuk, iKeluar, iLama;
long int iBiaya;
if (iLama > 2)
iBiaya = 2000 + ((iLama - 2)*500);
else
iBiaya = 2000;
BEGIN
Besar R1, R2 dan R3 serta jenis penyusunan (seri/paralel) diinput oleh
user.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”)
Algoritma:
End Case
http://awanrimbawan.wordpress.com
Output(fResPengganti) 04Nov2010
Page 6
END
#include <stdio.h>
#include <stdlib.h>
int main()
{ int iPilihan;
float fR1, fR2, fR3;
float fResPengganti;
switch (iPilihan)
{ case 1:
fResPengganti = fR1+ fR2+ fR3;
break;
case 2:
fResPengganti = (1.0/fR1)+ (1.0/fR2)+ (1.0/fR3);
fResPengganti = 1.0/fResPengganti;
break;
default:
printf("inputan salah");
}
Program:
printf("\n\nBesar resistor pengganti adalah : %.2f \n",
fResPengganti);
system("PAUSE");
return 0;
http://awanrimbawan.wordpress.com
} 04Nov2010
Page 7
4. 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.
http://awanrimbawan.wordpress.com 04Nov2010
Page 8
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
#include <stdio.h>
KAMUS DATA
#include <stdlib.h>
iKode,iHarga:integer
#include <conio.h>
cJenis: character
int main()
BEGIN
{ int iKode,iDiskon;
Input(cJenis)
char cJenis;
Input(iKode)
long int iHarga, iHDiskon;
Input(iHarga)
printf(" Jenis : ");
Case(cJenis)
scanf("%c",&cJenis);
'A': iHDiskon 0,9 * iHarga
'B': Kode
printf(" iHDiskon
: "); 0,85 * iHarga
'C': iHDiskon 0,8 * iHarga
scanf("%d",&iKode);
End Case
printf(" Harga : ");
output(iHDiskon)
scanf("%d",&iHarga);
END
switch (cJenis)
{ case 'A':
iDiskon=10;
iHDiskon = 0.9 * iHarga;
break;
case 'B':
iDiskon=15;
iHDiskon = 0.85 * iHarga;
break;
case 'C':
iDiskon=20;
iHDiskon = 0.8 * iHarga;
break;
default:
printf("inputan salah");
}
Program:
printf("\n\n Jenis barang %c mendapat diskon %d %%, Harga
setelah didiskon : Rp %d \n", cJenis, iDiskon, iHDiskon);
system("PAUSE");
return 0;
}
http://awanrimbawan.wordpress.com 04Nov2010
Page 9
5. Soal: Gaji karyawan mingguan
Sebuah perusahaan swasta menggaji karyawannya secara mingguan
dengan hitungan sebagai berikut :
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 10
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
#include <stdio.h>
#include
KAMUS DATA<stdlib.h>
#include <conio.h>
iGol, iJam, iUpah, iGaji : Integer
int main()
BEGIN
{ int iGol,iJam, iUpah;
int iGaji;
Input(iGol)
Input(iJam)
iUpah=0;
iUpah 0
printf(" Jumlah Jam Kerja : ");
scanf("%d",&iJam);
Case(iGol)
1: iUpah 3000
printf(" Golongan(1,2,3,4) : ");
2: iUpah 3500
scanf("%d",&iGol);
3: iUpah 4000
switch4: iUpah
(iGol) 5000
End case
{ case 1:
iUpah=3000;
If (iJam > 40) Then
break;
iGaji
case 2: 40 * iUpah + ((iJam - 40) * 1.5 * iUpah)
Else iUpah=3500;
iGaji iJam * iUpah
break;
End
caseif 3:
iUpah=4000;
Output(iGaji)
break;
case 4:
END iUpah=5000;
break;
default:
printf("inputan golongan salah");
}
system("PAUSE");
return 0;
http://awanrimbawan.wordpress.com 04Nov2010
}
P a g e 11
6. 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.
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 12
Mulai Selesai Lama Lama
(jam,menit) (jam,menit) (menit) (jam,menit
)
Algoritma:
ALGORITMA MENGHITUNG_JAM_MENIT
KAMUS DATA
iJamStart,iMenitStart,iMenitStop,iJamStop: integer
iTotMenit1,iTotMenit2,iSelangMenit,iJamDurasi,iMenitDurasi:
integer
BEGIN
Input(iJamStart)
Input(iMenitStart)
#include <stdio.h>
Input(iJamStop)
#include <stdlib.h>
Input(iMenitStop)
#include <conio.h>
intiTotMenit1
main() iJamStart * 60 + iMenitStart
iTotMenit2 iJamStop * 60 + iMenitStop
{ int iJamStart,iMenitStart,iJamStop,iMenitStop,iSelangMenit,
iJamDurasi, iMenitDurasi ;
If (iTotMenit2 >= iTotMenit1) Then
longiSelangMenit iTotMenit2
int iTotMenit1, iTotMenit2;- iTotMenit1
Else
iSelangMenit
printf(" ((12*60)-iTotMenit1)
MasukkanWaktu + iTotMenit2
Mulai (contoh 10:05) : ");
End if
scanf("%d:%d",&iJamStart,&iMenitStart);
printf(" Masukkan
iJamDurasi iSelangMenit
Waktu Berhenti
div 60 (contoh 11:04) : ");
scanf("%d:%d",&iJamStop,&iMenitStop);
iMenitDurasi iSelangMenit mod 60;
system("PAUSE");
http://awanrimbawan.wordpress.com 04Nov2010
return 0;
P a g e 13
}
7. 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
ALGORITMA berada pada kuadran 4
Menghitung_Kuadran
KAMUS DATA
ix, iy: Integer
Algoritma:
BEGIN
Input(ix,iy)
If (ix >= 0)
If (iy >=0)
Output(“Kuadran I”)
else
Output(“Kuadran IV”)
else
if (iy >=0)
Output(“Kuadran II”)
http://awanrimbawan.wordpress.com 04Nov2010
else
P a g e 14 Output(“Kuadran III”)
END
Program:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int ix, iy;
if (ix >= 0)
if (iy >=0)
printf("\nKuadran I\n");
else
printf("\nKuadran IV\n");
else
if (iy >=0)
printf("\nKuadran II\n");
else
printf("\nKuadran III\n");
system("PAUSE");
return 0;
}
Tulis program untuk menghitung total tunjangan anak, bila gaji pokok dan
jumlah anak diinput oleh user.
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 15
h
anak
0 1.000.000 0
1 1.000.000 100.000
3 1.000.000 300.000
5 1.000.000 300.000
Algoritma:
ALGORITMA Menghitung_Tunjangan
KAMUS DATA
iGajiPokok, iTunjangan, iJmlAnak: Integer
BEGIN
Input(iGajiPokok)
Input(iJmlAnak)
Output ( iTunjangan)
#include <stdio.h>
END
#include <stdlib.h>
int main()
{ int iGajiPokok, iTunjangan, iJmlAnak;
5 1
7 1
8 2
ALGORITMA Menghitung_Tunjangan
KAMUS DATA
iPeserta,iMinibus : Integer
Algoritma:
BEGIN
Output(iPeserta)
iMinibus0
int main()
{ int iPeserta,iMinibus;
iMinibus=0;
system("PAUSE");
return
10. Soal: 0;
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’)
0 Senin
1 Minggu
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 18
10 Jumat
20 Selasa
Algoritma:
ALGORITMA Menentukan_Nama_Hari_1
KAMUS DATA
iNHari,iBelakang
#include <stdio.h>: Integer
cNamaHari[15]:
#include <stdlib.h> String
#include <string.h>
BEGIN
intInput(iNHari)
main()
{ int iNHari,iBelakang;
iBelakang ( iNHari + 1)
char cNamaHari[15];
system("PAUSE");
return 0;
}
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 19
11. 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.
0 1 Senin
3 3 Minggu
5 4 Sabtu
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 20
Algoritma:
ALGORITMA Menghitung_Hari
KAMUS DATA
iNHari,iHariIni,iBelakang : Integer
#include <stdio.h>
cNamaHari[15] : String
#include <stdlib.h>
cNamaHariLalu: Char
#include <string.h>
BEGIN
int main()
{ Input(iHariIni)
int iNHari,iHariIni,iBelakang;
char cNamaHari[15],cNamaHariLalu;
Input(iNHari)
printf("Masukkan
If (iHariIni>iNHari)Kode
ThenHari ini : ");
scanf("%d",&iHariIni);
iBelakang iHariIni - iNHari
Else
printf("Masukkan
iBelakang 7 - N Hari yg
(iNHari lalu : ");
- iHariIni)
scanf("%d",&iNHari);
End If
if (iHariIni>iNHari)
Case (iBelakang)
iBelakang
1: cNamaHari= iHariIni - iNHari;
"Senin"
else
2: cNamaHari "Selasa"
iBelakang= 7 - (iNHari - iHariIni);
3: cNamaHari "Rabu"
4: cNamaHari
switch (iBelakang){"Kamis"
5: cNamaHari
case "Jumat"
1: strcpy(cNamaHari,"Senin");
6: cNamaHari
break; "Sabtu"
7: cNamaHari
case 2:strcpy(cNamaHari,"Selasa");
"Minggu"
End Case break;
case 3:strcpy(cNamaHari,"Rabu");
Output(cNamaHari)break;
END case 4: strcpy(cNamaHari,"Kamis");
break;
case 5:
strcpy(cNamaHari,"Jumat");
Program: break;
case 6:
strcpy(cNamaHari,"Sabtu");
break;
case 7:
strcpy(cNamaHari,"Minggu");
break;
default:
strcpy(cNamaHari,"Inputan salah");
}
system("PAUSE");
return 0;
http://awanrimbawan.wordpress.com 04Nov2010
}
P a g e 21
12. 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
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 22
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
Output(iBayar)
END
SOURCE CODE:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int iGol,iPakai,iTarif,iBayar;
if (iGol == 1 )
{iTarif=1000;}
else
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 23
{iTarif=2000;}
system("PAUSE");
return 0;
}
ALGORITMA Menghitung_Bulan_Pernikahan
KAMUS DATA
iBlnSekarang, iNbulan, iBlnPernikahan : Integer
BEGIN
Input (iBlnSekarang)
Input (iNBulan)
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 24
Output (iBlnPernikahan)
END
SOURCE CODE:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int iBlnSekarang, iNbulan, iBlnPernikahan;
system("PAUSE");
return 0;
}
ALGORITMA Menampilkan_deret_ganjil
KAMUS DATA
i : Integer
BEGIN
i1
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 25
SOURCE CODE:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int i=1;
while(i<=20){
printf("%d ",i);
i=i+2;
}
system("PAUSE");
return 0;
}
Contoh inputan :
Awal : 1
Akhir : 10
Kelipatan 3 : 3 6 9
Awal : 15
Akhir : 30
Kelipatan 3 : 15 18 21 24 27 30
ALGORITMA Kelipatan_Tiga
KAMUS DATA
i : Integer
BEGIN
Input(i) {awalan}
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 26
Input(j) {akhiran}
Do
If (i mod 3 = 0) Then
Output(i)
End If
i i+1
While (i <= j)
END
SOURCE CODE:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int i,j,k;
printf("awal : ");
scanf("%d",&i);
printf("akhir : ");
scanf("%d",&j);
do{
if (i % 3 == 0)
printf(" %d ",i);
i=i+1;
}while(i<=j);
system("PAUSE");
return 0;
}
INPUT :7
PROSES : 1+2+3+4+5+6+7
OUTPUT : 28
ALGORITMA Menghitung_sederet_bilangan
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 27
KAMUS DATA
i,j,k : Integer
BEGIN
k0
Output("Input : ")
Input(i)
Output("Proses : ")
j 1;
While (j <= i)
Output(j)
If (j <> i) Then
Output(" + ")
End If
k k+j
jj+1
End While
Output(k)
END
SOURCE CODE:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int i,j,k=0;
printf("Input : ");
scanf("%d",&i);
printf("Proses : ");
j = 1;
while(j <= i)
{
printf("%d",j);
if (j != i)
printf(" + ");
k=k+j;
j = j + 1;
}
printf(" = %d\n",k);
system("PAUSE");
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 28
return 0;
}
Masukkan angka: 4
*
**
***
****
ALGORITMA Menampilkan_Segitiga
KAMUS DATA
i,j,k : Integer
BEGIN
Input(k)
SOURCE CODE:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int i,j,k;
for (i=1;i<=k;i++){
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 29
for(j=1; j<=i; j++){
printf("*");
}
printf("\n");
}
system("PAUSE");
return 0;
}
n! = n*(n-1)*(n-2)*…*(n-(n-1))
Contoh inputan
Faktorial dari : 3
3! = 3*2*1=6
Faktorial dari : 5
5! = 5*4*3*2*1 = 120
ALGORITMA Faktorial
KAMUS DATA
i,j,k : Integer
BEGIN
k1
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 30
Input(i)
While(i >= 1)
k k*i
ii-1
End While
Output(k)
END
SOURCE CODE:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int i,j,k=1;
printf("\n!%d = ",i);
while(i >= 1)
{
printf("%d",i);
if (i != 1)
printf(" * ");
k=k*i;
i = i - 1;
}
printf(" = %d\n",k);
system("PAUSE");
return 0;
}
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 31
19. Soal: Gaji Karyawan
Buatlah sebuah program untuk menghitung gaji n karyawan, n merupakan
sebuah bilangan bulat yang akan diinputkan oleh user, kemudian akan
dihitung gaji perkaryawan dengan ketentuan sebagai berikut :
Gaji per jam : Rp 10.000,-
Bila jam kerja > 7 jam, maka sisa jam kerja dihitung sebagai lembur yg
besarnya 1.5 * gaji per jam
Kemudian ditampilkan total gaji karyawan yang harus dibayarkan oleh
perusahaan.
Jumlah jam kerja tiap karyawan akan diinputkan oleh user
Contoh inputan
Jumlah karyawan : 3 [inputan user]
Jam kerja karyawan 1 : 8 [inputan user]
Total Gaji : 85000
Jam kerja karyawan 2 : 6 [inputan user]
Total Gaji : 60000
Jam kerja karyawan 3 : 12 [inputan user]
Total Gaji : 145000
ALGORITMA Faktorial
KAMUS DATA
i,j,k : Integer
BEGIN
iTotalGaji 0
input(iKaryawan)
Output(iGaji)
iTotalGaji iTotalGaji + iGaji
End For
Output(iTotalGaji)
END
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 32
SOURCE CODE:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int i,iKaryawan,iJam,iLembur,iGaji,iTotalGaji=0;
for (i=1;i<=iKaryawan;i++){
printf("\njam kerja karyawan %d: ",i);
scanf("%d",&iJam);
system("PAUSE");
return 0;
}
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 33
20. Buatlah program untuk menampilkan angka
seperti berikut :
Contoh inputan :
Jumlah angka : 5
1 5
2 4
3
2 4
1 5
Jumlah angka : 6
1 6
2 5
34
34
2 5
1 6
Jumlah angka : 9
1 9
2 8
3 7
4 6
5
4 6
3 7
2 8
1 9
ALGORITMA Bintang_x
KAMUS DATA
i,j,k,l,m : Integer
BEGIN
Output("mmasukkan angka : ")
Input(k)
l1
m k;
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 34
Output("\n")
m--
End For
END
SOURCE CODE:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{ int i,j,k,l,m;
l=1;
m=k;
for (i=1;i<=k;i++){
for(j=1; j<=k; j++){
if (i==j or j==m)
printf("%d",j);
else
printf(" ");
}
printf("\n");
m-- ;
}
system("cls");
system("PAUSE");
return 0;
}
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 35
21. Soal: Bintang Ketupat
Buatlah program untuk menampilkan bintang berbentuk belah ketupat
seperti berikut :
Contoh inputan :
Jumlah bintang : 5
*
* *
* *
* *
*
Jumlah bintang : 6
**
* *
* *
* *
* *
**
Jumlah bintang : 9
*
* *
* *
* *
* *
* *
* *
* *
*
ALGORITMA Bintang_Ketupat
KAMUS DATA
i,j,k,l,m,input,tengah : Integer
BEGIN
m0
k input / 2
l input % 2
tengah k + l
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 36
If (j = tengah-m || j = tengah+m)
Then
Output(*)
Else
Output(" ")
End If
Else
If (j = tengah-m || j = tengah+m+1)
Then
Output (*)
Else
Output (" ")
End If
End If
End For
End If
End For
Output("\n")
End For
END
SOURCE CODE:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int i,j, k, l,m=0,input,tengah;
k=input / 2;
l=input % 2;
tengah=k+l;
for (i=1;i<=input;i++){
for(m=0;m<=tengah;m++){
if(i==m+1 || i==input-m){
for(j=1; j<=input; j++){
if(l){
if (j==tengah-m || j==tengah+m)
printf("*");
else
printf(" ");
}else{
if (j==tengah-m || j==tengah+m+1)
printf("*");
else
printf(" ");
}
}
}
}
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 37
printf("\n");
}
system("PAUSE");
return 0;
}
ALGORITMA Input_nilai1
KAMUS DATA
N, Max, i : Integer
BEGIN
Input(N)
Max N
i2
While ( i <= 4)
Input(N)
If (N > Max) Then
Max N
End If
i++
End While
Output(i)
END
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 38
23. Soal: Buatlah algoritma yang menginputkan 7 bilangan
yang merupakan nilai ujian mahasiswa, mencetak nilai
tertinggi yang didapat mahasiswa dan juga mencetak
berapa orang yang mendapat nilai tertinggi tersebut.
ALGORITMA Nilai2
KAMUS DATA
N, Max, i, Jumlah : Integer
BEGIN
Input(N)
Max N
i2
While ( i <= 7)
Input(N)
If (N > Max) Then
Max N
Jumlah 1
Else if ( N = Max )
Jumlah++
End If
i++
End While
Output(Max)
Output(Jumlah)
END
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 39
24. Soal:Buatlah algoritma yang menginputkan 10
bilangan yang merupakan nilai ujian mahasiswa,
kemudian mencetak nilai tertinggi dan nilai terendahnya.
ALGORITMA Input_nilai3
KAMUS DATA
N, Max, Min, i : Integer
BEGIN
Input(N)
Max N
Min N
i2
While (i <= 10)
Input(N)
i++
End While
Output(Max)
Output(Min)
END
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 40
ALGORITMA Input_nilai4
KAMUS DATA
nilai : Integer
BEGIN
nilai -1
While ( nilai < 0 Or nilai > 100)
Output(“Masukkan nilai Ujian (0-100):”)
Input(nilai)
End While
ALGORITMA Input_nilai5
KAMUS DATA
nilai: integer
BEGIN
Do
Output(“Masukkan nilai (0-100):”)
Input(nilai)
If (nilai<0 Or nilai>100)
Output(“Data salah, silahkan ulangi lagi”)
End If
While(nilai<0 Or nilai>100)
If (nilai>=60) Then
Output(“LULUS”)
Else
Output(“Coba lagi tahun depan”)
End If
END
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 41
Output: 3
ALGORITMA Input_jumlah
KAMUS DATA
nilai,i,jumlah : integer
BEGIN
jumlah 0
i0
While ( jumlah <= 1000)
Output(“Input Nilai”)
Input(nilai)
jumlah jumlah + nilai
i++
End While
Output(i)
END
28. Soal: Buat algoritma untuk menghitung rata-rata nilai
mahasiswa. Berapa banyak nilai mahasiswa tidak
diketahui. Kondisi berhenti adalah ketika diinputkan nilai
999 yang pasti bukan merupakan nilai ujian.
Misal data yang ada: 60, 50, 999, 65, 75, 999
Maka rata-ratanya: (60+50+70+65+75) / 5 = 64
Note: data bisa berupa n bilangan (n tidak diketahui)
ALGORITMA Rata_rata
KAMUS DATA
nilai, jumlah, banyak, ratarata : Integer
BEGIN
banyak 0
jumlah 0
Input(nilai)
ratarata jumlah/banyak
Output(ratarata)
END
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 42
29. Buatlah algoritma yang menentukan apakah sebuah
bilangan genap atau ganjil. Bilangan diinputkan oleh user.
Jika genap maka cetak perkataan “Even”, jika ganjil maka
cetak perkataan “Odd”. Susun algoritma pengecekan
genap atau ganjil ini tidak menggunakan Mod tetapi
menggunakan loop
ALGORITMA Genapganjil_loop
KAMUS DATA
nilai,
BEGIN
Output(“Inputkan sebuah nilai: ”)
Input(nilai)
If (nilai = 0)
output(“Even”)
Else
output(“Odd”)
End If
END
ALGORITMA cekprima
KAMUS DATA
nilai, x, batasatas, penanda: Integer
BEGIN
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 43
Input(nilai)
x2
batasatas nilai – 1
penanda 0
If (penanda = 0) Then
Output(“prima”)
Else
Output(“bukan prima”)
End If
END
Note:
Gunakan mekanisme loop untuk menentukan jam dan menit. Untuk
mendapatkan jam kurangi terus menerus detik dengan 3600, sampai nilainya
< 3600. Setiap detik dikurangi 3600 maka Jam bertambah 1. Untuk
mendapatkan menit kurangi terus detik dengan 60, sampai nilainya < 60.
Setiap detik dikurangi 60 menitnya ditambah 1.
ALGORITMA UbahDetik
KAMUS DATA
J, M, D: Integer
BEGIN
Input(D)
J 0
M0
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 44
Output(J,M,D)
END
ALGORITMA BuatDeret
KAMUS DATA
J, M, D: Integer
BEGIN
a1
b1
i1
Input(banyak)
Output(b)
While ( i < banyak)
ca+b
Output(c)
a b
bc
i++
End While
End
ALGORITMA HitungBebek
KAMUS DATA
I, M, T : Integer
BEGIN
T1000
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 45
I1
Output(T)
End
ALGORITMA HitungBahanBakar
KAMUS DATA
i: Integer
n,t: Float
BEGIN
t0
n10
i1
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 46
algoritma untuk menghitung dan mencetak jumlah uang
setelah 10bulan.
ALGORITMA HitungBunga1
KAMUS DATA
u, b: Float
i: Integer
BEGIN
u1000000
i1
Output(u)
End
ALGORITMA HitungJarak
KAMUS DATA
Jam1, Jam2, JumWaktu, Interval, SisaWaktu, V, TS, I: Integer
BEGIN
Jam1 8*3600 + 25*60 + 10
Jam2 10*3600
JumWaktu Jam2 – Jam1
Interval 10 * 60
JumInterval JumWaktu Div Interval
SisaWaktu JumWaktu Mod Interval
V5
TS 0
I1
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 47
V V+1
I++
End While
TS TS + (SisaWaktu * V)
Output(TS)
End
ALGORITMA Balapan
KAMUS DATA
JamBerangkatBadu,JarakAli,JarakBadu,JamBertemu: Integer
t, jam,menit,detik: Integer
BEGIN
JamBerangkatBadu 9*3600
t 1
JarakBadu 0
JarakAli 3600*5
JamBertemu JamBerangkatBadu + t
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 48
menit detik Div 60
detik detik Mod 60
Output(jam, menit,detik)
End
ALGORITMA BuatDeret
KAMUS DATA
V, Detik, Jarak: Integer
BEGIN
V10
Detik 0
Jarak0
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 49
Detik Detik Mod 3600
ALGORITMA loop1
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For (i 0 ; i<n ; i++)
ALGORITMA loop2
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For (i 0 ; i<n ; i++)
ALGORITMA loop3
KAMUS DATA
I,j,n: Integer
BEGIN
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 50
Input(n)
For (i 0 ; i<n ; i++)
ALGORITMA loop4
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For (i 0 ; i<n ; i++)
ALGORITMA loop5
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For (i 0 ; i<n ; i++)
ALGORITMA loop6
KAMUS DATA
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 51
I,j,n: Integer
BEGIN
Input(n)
For (i 0 ; i<n ; i++)
ALGORITMA loop7
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For(i0; i<n; i++)
For(j0; j<n; j++)
If ( (i = j) || (i+j = n-1) ) Then
Output(i+1)
Else
Output(" ")
End If
End For
Output("\n")
End For
End
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 52
algoritma berikut?
ALGORITMA loop8
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For(i0; i<n; i++)
For(j0; j<n; j++)
If ( (i = j) || (i+j = n-1) ) Then
Output(j+1)
Else
Output(" ")
End If
End For
Output("\n")
End For
End
ALGORITMA loop9
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For(i0; i<n; i++)
For(j0; j<n-1; j++)
If ( (i = j) || (i+j = n-1) ) Then
Output(i+1)
Else
Output(" ")
End If
End For
Output("\n")
End For
End
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 53
48. Jikauser memasukkan angka 5 Apa Output dari
algoritma berikut?
ALGORITMA loop10
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For(i0; i<n; i++)
For(j0; j<n-1; j++)
If ( (i=j) || (i+j = n-1) ) Then
Output(j+1)
Else
Output(" ")
End If
End For
Output("\n")
End For
End
ALGORITMA loop11
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For(i0; i<n; i++)
For(j0; j<n; j++)
If (i+j = n-1) Then
Output(i+1)
Else
Output(" ")
End If
End For
Output("\n")
End For
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 54
End
ALGORITMA loop12
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For(i0; i<n; i++)
For(j0; j<n; j++)
If (i+j = n-1) Then
Output(j+1)
Else
Output(" ")
End If
End For
Output("\n")
End For
End
ALGORITMA loop13
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For(i0; i<n; i++)
For(j0; j<n; j++)
If (i=j) Then
Output(i+1)
Else
Output(" ")
End If
End For
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 55
Output("\n")
End For
End
52.
http://awanrimbawan.wordpress.com 04Nov2010
P a g e 56