Академический Документы
Профессиональный Документы
Культура Документы
Dan Pemrograman
1. 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.
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
Program:
#include <stdio.h>
#include <stdlib.h>
/*Tulis procgram 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.
asumsi jam yang dimasukkan adalah tepat (tidak memasukkan menit)
*/
int main()
{ int iMasuk, iKeluar, iLama;
system("PAUSE");
return 0;
}
10 11 1 Biaya = 2000
10 2 4 Biaya = 3000
Algoritma:
Algoritma Biaya_Parkir
{menghitung biaya parkir}
KAMUS DATA
iMasuk, iKeluar, iLama, iBiaya: Integer
BEGIN
Input(iMasuk)
Input(iKeluar)
Output(iBiaya)
END
Program:
#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;
system("PAUSE");
return 0;
}
Seri: Rgab = R1 + R2 + 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
Program:
#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");
}
system("PAUSE");
return 0;
}
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. 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
Program:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{ int iKode,iDiskon;
char cJenis;
long int iHarga, iHDiskon;
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");
}
system("PAUSE");
return 0;
}
5. Soal: Gaji karyawan mingguan
Sebuah perusahaan swasta menggaji karyawannya secara mingguan dengan hitungan
sebagai berikut :
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
Output(iGaji)
END
Program:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{ int iGol,iJam, iUpah;
int iGaji;
iUpah=0;
switch (iGol)
{ case 1:
iUpah=3000;
break;
case 2:
iUpah=3500;
break;
case 3:
iUpah=4000;
break;
case 4:
iUpah=5000;
break;
default:
printf("inputan golongan salah");
}
system("PAUSE");
return 0;
}
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.
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)
Output(iJamDurasi)
Output(iMenitDurasi)
END
Program:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{ int iJamStart,iMenitStart,iJamStop,iMenitStop,iSelangMenit, iJamDurasi,
iMenitDurasi ;
system("PAUSE");
return 0;
}
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
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;
}
8. 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.
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)
END
Program:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int iGajiPokok, iTunjangan, iJmlAnak;
system("PAUSE");
return 0;
}
5 1
7 1
8 2
Algoritma:
ALGORITMA Menghitung_Tunjangan
KAMUS DATA
iPeserta,iMinibus : Integer
BEGIN
Output(iPeserta)
iMinibus0
Output(iMinibus)
END
Program:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int iPeserta,iMinibus;
iMinibus=0;
system("PAUSE");
return 0;
}
10. 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’)
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
Program:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{ int iNHari,iBelakang;
char cNamaHari[15];
iBelakang = (iNHari+1) ;
switch (iBelakang){
case 1:
strcpy(cNamaHari,"Senin");
break;
case 2:
strcpy(cNamaHari,"minggu");
break;
case 3:
strcpy(cNamaHari,"sabtu");
break;
case 4:
strcpy(cNamaHari,"jumat");
break;
case 5:
strcpy(cNamaHari,"kamis");
break;
case 6:
strcpy(cNamaHari,"rabu");
break;
case 7:
strcpy(cNamaHari,"selasa");
break;
default:
strcpy(cNamaHari,"Inputan salah");
}
system("PAUSE");
return 0;
}
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
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
Program:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{ int iNHari,iHariIni,iBelakang;
char cNamaHari[15],cNamaHariLalu;
if (iHariIni>iNHari)
iBelakang = iHariIni - iNHari;
else
iBelakang= 7 - (iNHari - iHariIni);
switch (iBelakang){
case 1: strcpy(cNamaHari,"Senin");
break;
case 2: strcpy(cNamaHari,"Selasa");
break;
case 3: strcpy(cNamaHari,"Rabu");
break;
case 4: strcpy(cNamaHari,"Kamis");
break;
case 5:
strcpy(cNamaHari,"Jumat");
break;
case 6:
strcpy(cNamaHari,"Sabtu");
break;
case 7:
strcpy(cNamaHari,"Minggu");
break;
default:
strcpy(cNamaHari,"Inputan salah");
}
system("PAUSE");
return 0;
}
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
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
{iTarif=2000;}
system("PAUSE");
return 0;
}
KAMUS DATA
iBlnSekarang, iNbulan, iBlnPernikahan : Integer
BEGIN
Input (iBlnSekarang)
Input (iNBulan)
Output (iBlnPernikahan)
END
SOURCE CODE:
#include <stdio.h>
#include <stdlib.h>
int main()
{ int iBlnSekarang, iNbulan, iBlnPernikahan;
system("PAUSE");
return 0;
}
14. Soal: Deret Ganjil
Buatlah sebuah program untuk menampilkan bilangan ganjil antara 1-20 dengan
menggunakan struktur while.
ALGORITMA Menampilkan_deret_ganjil
KAMUS DATA
i : Integer
BEGIN
i1
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;
}
15.Soal: Menampilkan bilangan kelipatan 3
Buatlah sebuah program untuk menampilkan bilangan kelipatan 3, dengan range berupa
inputan dari user. Gunakan struktur do…while
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}
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
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");
return 0;
}
17.Soal: Segitiga
Buatlah program pengulangan bersarang dengan sintaks FOR untuk menampilkan output
sebagai berikut:
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++){
for(j=1; j<=i; j++){
printf("*");
}
printf("\n");
}
system("PAUSE");
return 0;
}
18.Soal: Faktorial
Buatlah program untuk menghitung nilai faktorial suatu bilangan yang diinputkan oleh user.
Rumus faktorial adalah sebagai berikut :
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
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;
}
KAMUS DATA
i,j,k : Integer
BEGIN
iTotalGaji 0
input(iKaryawan)
Output(iGaji)
iTotalGaji iTotalGaji + iGaji
End For
Output(iTotalGaji)
END
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;
}
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;
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;
}
ALGORITMA Bintang_Ketupat
KAMUS DATA
i,j,k,l,m,input,tengah : Integer
BEGIN
m0
k input / 2
l input % 2
tengah k + l
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(" ");
}
}
}
}
printf("\n");
}
system("PAUSE");
return 0;
}
22.Soal: Buatlah algoritma yang menginputkan 4 bilangan yang merupakan nilai
ujian mahasiswa, serta mencetak nilai tertinggi yang didapat mahasiswa.
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
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
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
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
27.Soal: Dalam lembar dokumen tersedia banyak sekali data berupa bilangan-
bilangan integer. Susun algoritma untuk menginput data-data tersebut dan
menjumlahkannya. Kondisi berhenti adalah ketika jumlah dari data tersebut
sudah melebihi 1000. Cetak berapa banyak bilangan yang diinputkan.
Cth:
Data Input: 300, 300, 500
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
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
Input(nilai)
x2
batasatas nilai – 1
penanda 0
If (penanda = 0) Then
Output(“prima”)
Else
Output(“bukan prima”)
End If
END
31.Buat Algoritma yang menginput sebuah bilangan bulat yang menyatakan waktu
dalam detik. Kemudian konversikan dan cetak waktu itu dalam satuan Jam,
Menit, Detik.
Cth:
Input: 7405
Output: 2 Jam, 3 Menit, 25 Detik
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
Output(J,M,D)
END
32.Buat algoritma yang menampilkan deret: 1 2 3 5 8 13 21....
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
33.Dalam sebuah kandang ada 1000 bebek. Setiap akhir bulan bebek tersebut
serempak melahirkan satu bebek baru. Namun sebelum melahirkan, 20% dari
bebek tersebut mati. Susun program untuk menghitung dan mencetak jumlah
bebek setelah 10 bulan.
ALGORITMA HitungBebek
KAMUS DATA
I, M, T : Integer
BEGIN
T1000
I1
Output(T)
End
34.Sebuah truk bergerak dari Kota Malang ke Pulau Sempu. Pada Km pertama ia
menghabiskan 10kg bahan bakar. Pada Km ke 2 ia menghabiskan 8kg bahan
bakar (atau 80% dibanding Km pertama). Demikian seterusnya setiap Km
sebelumnya. Susun algoritma untuk menghitung dan mencetak total bahan
bakar yang dihabiskan setelah mencapai 100km.
ALGORITMA HitungBahanBakar
KAMUS DATA
i: Integer
n,t: Float
BEGIN
t0
n10
i1
ALGORITMA HitungBunga1
KAMUS DATA
u, b: Float
i: Integer
BEGIN
u1000000
i1
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
TS TS + (SisaWaktu * V)
Output(TS)
End
37.Ali berangkat dari titik A menuju titik B tepat pukul 08:00 dengan kecepatan
tetap 5 m/detik. Badu juga berangkat dari titik A menuju titik B tepat pukul
09:00 dengan kecepatan tetap 8 m/detik. Buat algoritma untuk menghitung dan
mencetak pada pukul berapa Ali dan Badu tepat berada pada titik yang sama
dimana Badu mulai akan mendahului Ali.
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
Output(jam, menit,detik)
End
38.Ali berangkat dari titik A menuju titik B yang berjarak 100km dengan kecepatan
tetap 10 m/detik. Tetapi setelah 10menit kemudian, kecepatannya menjadi 11
m/detik. Demikian setelah 10 menit berikutnya kecepatan konstan dengan lebih
cepat 1 m/detik dibandingkan 10 menit sebelumnya. Buat algoritma yang
menghitung dan mencetak berapa lama Ali menempuh perjalanan (dalam Jam,
Menit dan Detik) dari titik A sampai titik B.
ALGORITMA BuatDeret
KAMUS DATA
V, Detik, Jarak: Integer
BEGIN
V10
Detik 0
Jarak0
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
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
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
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
47.Jika user memasukkan angka 5 Apa Output dari algoritma berikut?
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
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
49.Jika user memasukkan angka 4 Apa Output dari algoritma berikut?
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
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
51.Jika user memasukkan angka 4 Apa Output dari algoritma berikut?
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
Output("\n")
End For
End
52.