Kumpulan Soal Dasar-Dasar Algoritma 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.
Contoh Masukan dan keluaran:
"Jam "Jam "Keluaran/tampilan "
"masuk "keluar " "
"10 "11 "Lama bekerja 1 jam"
"10 " 2 "Lama bekerja 4 jam"
"10 " 7 "Lama bekerja 9 jam"
Algoritma:
Program:
2. 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/tampi"
" " " "lan "
"10 "11 "1 "Biaya = 2000 "
"10 "2 "4 "Biaya = 3000 "
Algoritma:
Program:
3. 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:
Program:
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:
Program:
5. 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:
Program:
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.
Contoh Masukan dan Keluaran:
"Mulai "Selesai "Lama "Lama "
"(jam,menit)"(jam,menit)"(menit) "(jam,menit)"
"10:30 "12:10 "100 "1 jam 40 "
" " " "menit "
"10:30 " 1:40 "130 "3 jam 10 "
" " " "menit "
Algoritma:
Program:
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 berada pada kuadran 4
Algoritma:
Program:
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.
Contoh Masukan dan Keluaran:
"Jumlah"Gaji Pokok "Tunjangan Anak "
"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:
Program:
9. 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 "Jumlah Minibus "
"Peserta " "
"5 "1 "
"7 "1 "
"8 "2 "
Algoritma:
Program:
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')
Contoh Masukan dan Keluaran:
"N hari yang lalu"Nama Hari "
"0 "Senin "
"1 "Minggu "
"10 "Jumat "
"20 "Selasa "
Algoritma:
Program:
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.
Contoh Masukan dan Keluaran:
"N hari yang "Hari ini"Nama Hari "
"lalu " " "
"0 "1 "Senin "
"3 "3 "Minggu "
"5 "4 "Sabtu "
Algoritma:
Program:
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
Dengan syarat penghitungan:
Minimum pembayaran adalah 100 kWh sedangkan untuk pemakaian 1000 kWh
dan seterusnya tarifnya ditambah 10% dari total pembayaran.
"Golongan "Pemakaia"Bayar "
" "n " "
"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
SOURCE CODE:
#include
#include
int main()
{ int iGol,iPakai,iTarif,iBayar;
printf("masukkan golongan: ");scanf("%d",&iGol);
printf("masukkan jam pemakaian: ");scanf("%d",&iPakai);
if (iGol == 1 )
{iTarif=1000;}
else
{iTarif=2000;}
if (iPakai < 100)
{iBayar=100*iTarif;}
else if (iPakai >= 1000)
{iBayar=iPakai*iTarif*1.1;}
else
{iBayar=iPakai * iTarif;}
printf("\n yg harus dibayarkan %d\n",iBayar);
system("PAUSE");
return 0;
}
13. 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
SOURCE CODE:
#include
#include
int main()
{ int iBlnSekarang, iNbulan, iBlnPernikahan;
printf("masukkan Bulan Sekarang: "); scanf("%d",&iBlnSekarang);
printf("masukkan N Bulan Kedepan: "); scanf("%d",&iNbulan);
if ( (iBlnSekarang + iNbulan) <= 12 )
{iBlnPernikahan=iBlnSekarang + iNbulan;}
else
{iBlnPernikahan=(iBlnSekarang + iNbulan) % 12;}
printf("\n Bulan Pernikahan adalaha bulan ke-%d\n",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
i ( 1
While (i <= 20)
Output(i)
i ( i + 2
End While
END
SOURCE CODE:
#include
#include
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
#include
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;
}
16. Soal: menghitung sederet bilangan
Buatlah program pengulangan untuk menghitung jumlah sederet bilangan
berurut yang dimulai dari 1 hingga bilangan inputan. Contoh:
INPUT : 7
PROSES : 1+2+3+4+5+6+7
OUTPUT : 28
ALGORITMA Menghitung_sederet_bilangan
KAMUS DATA
i,j,k : Integer
BEGIN
k ( 0
Output("Input : ")
Input(i)
Output("Proses : ")
j ( 1;
While (j <= i)
Output(j)
If (j <> i) Then
Output(" + ")
End If
k ( k+j
j ( j + 1
End While
Output(k)
END
SOURCE CODE:
#include
#include
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)
For (i ( 1; i <= k ; i++)
For(j ( 1 ; j<=i ; j++)
Output("*")
End For
Output("\n")
End For
END
SOURCE CODE:
#include
#include
int main()
{ int i,j,k;
printf("masukkan angka : ");
scanf("%d",&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))
n merupakan inputan dari user.
Boleh menggunakan struktur pengulangan manapun.
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
k ( 1
Input(i)
While(i >= 1)
k ( k*i
i ( i - 1
End While
Output(k)
END
SOURCE CODE:
#include
#include
int main()
{ int i,j,k=1;
printf("faktorial dari : ");
scanf("%d",&i);
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;
}
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 "
" "
"Total Gaji karyawan : 290000 "
ALGORITMA Faktorial
KAMUS DATA
i,j,k : Integer
BEGIN
iTotalGaji ( 0
input(iKaryawan)
For (i(1 ; i <= iKaryawan ; i++)
Output("jam kerja karyawan: ")
Input(iJam)
If (iJam > 7) Then
iLembur ( iJam - 7
iGaji ( 7 * 10000 + iLembur * 1.5 * 10000
Else
iGaji = iJam * 10000
End If
Output(iGaji)
iTotalGaji ( iTotalGaji + iGaji
End For
Output(iTotalGaji)
END
SOURCE CODE:
#include
#include
int main()
{ int i,iKaryawan,iJam,iLembur,iGaji,iTotalGaji=0;
printf("jml karyawan: ");
scanf("%d",&iKaryawan);
for (i=1;i<=iKaryawan;i++){
printf("\njam kerja karyawan %d: ",i);
scanf("%d",&iJam);
if (iJam > 7){
iLembur = iJam - 7;
iGaji = 7 * 10000 + iLembur * 1.5 * 10000;
}else{
iGaji = iJam * 10000 ;
}
printf("Gaji karyawan %d \n",iGaji);
iTotalGaji = iTotalGaji + iGaji;
}
printf("\nGaji karyawan %d: ",iTotalGaji);
system("PAUSE");
return 0;
}
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)
l ( 1
m ( k;
For (i ( 1; i<=k ; i++)
For (j ( 1 ; j<=k ; j++)
If (i = j or j = m) Then
Output(j)
Else
Output(" ")
End If
End For
Output("\n")
m--
End For
END
SOURCE CODE:
#include
#include
#include
int main()
{ int i,j,k,l,m;
printf("mmasukkan angka : ");
scanf("%d",&k);
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;
}
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
m ( 0
Output("masukkan angka: ")
Output(input)
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) Then
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
#include
int main()
{ int i,j, k, l,m=0,input,tengah;
printf("masukkan angkaa: ");
scanf("%d",&input);
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
i ( 2
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.
Misal bilangan yg diinput: 72 80 80 92 95 87 95
Nilai Tertinggi: 95
Jumlah: 2
ALGORITMA Nilai2
KAMUS DATA
N, Max, i, Jumlah : Integer
BEGIN
Input(N)
Max ( N
i ( 2
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
i ( 2
While (i <= 10)
Input(N)
If (N > Max) Then
Max ( N
Else If (N < Min)
Min ( N
End If
i++
End While
Output(Max)
Output(Min)
END
25. Soal: Buatlah algoritma yang menginputkan sebuah bilangan bulat yang
merupakan nilai ujian. Apabila nilai yang diinput < 0 atau > 100 maka
ulangi menginput data. Bila nilainya berada dalam batas 0-100, maka
periksa nilai tersebut. Bila nilainya >= 60 maka cetak perkataan "LULUS",
selainnya cetak perkataan "COBA LAGI TAHUN DEPAN".
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
If (nilai >= 60) Then
Output("LULUS")
Else
Output("Coba Lagi Tahun Depan")
End If
END
26. Soal: Buatlah algoritma yang menginputkan sebuah bilangan bulat yang
merupakan nilai ujian. Apabila nilai yang diinput < 0 atau > 100 maka
cetak perkataan "Data salah, silahkan ulangi lagi" dan ulangi menginput
data. Bila nilainya >= 60 maka cetak perkataan "LULUS", selainnya cetak
perkataan "COBA LAGI TAHUN DEPAN". Gunakan format Do 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
Data Input: 200, 400, 100, 200,100,1
Output: 6
ALGORITMA Input_jumlah
KAMUS DATA
nilai,i,jumlah : integer
BEGIN
jumlah ( 0
i ( 0
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)
While (nilai <> 999)
jumlah ( jumlah + nilai
banyak++
Input(nilai)
End While
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)
While (nilai > 0)
nilai ( nilai - 2
End While
If (nilai = 0)
output("Even")
Else
output("Odd")
End If
END
30. Buat algoritma yang inputannya sebuah bilangan. Kemudian menentukan
apakah bilangan tersebut adalah bilangan prima atau bukan.
ALGORITMA cekprima
KAMUS DATA
nilai, x, batasatas, penanda: Integer
BEGIN
Input(nilai)
x ( 2
batasatas ( nilai – 1
penanda ( 0
While (penanda = 0 And x <= batasatas)
If (nilai Mod x = 0) Then
penanda ( 1
End If
x ( x+1
END WHILE
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
M ( 0
While (D >= 3600)
D ( D – 3600
J ++
End While
While (D >= 60)
D ( D – 60
M++
End While
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
a(1
b(1
i(1
Input(banyak)
Output(b)
While ( i < banyak)
c ( a + b
Output(c)
a( b
b ( c
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
T(1000
I(1
While ( I <= 10)
M ( T * 0.2
T ( T – M
T ( T * 2
I++
End While
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
t(0
n(10
i(1
While ( i <= 100)
t ( t + n
n ( n*0.8
i++
End While
Output(t)
End
35. Seseorang menyimpan uang 1.000.000 di bank dengan bunga 2% perbulan.
Jadi setelah satu bulan uangnya menjadi 1.020.000. satu bulan berikutnya
uang 1.020.000 ini mendapat bunga lagi 2% sehingga setelah 2 bulan
uangnya menjadi 1.020.000 + 20.400 = 1.040.400. Buat algoritma untuk
menghitung dan mencetak jumlah uang setelah 10bulan.
ALGORITMA HitungBunga1
KAMUS DATA
u, b: Float
i: Integer
BEGIN
u(1000000
i(1
While ( i <= 10)
b ( U * 0.02
u ( u + b
i++
End While
Output(u)
End
36. Seseorang mengendarai mobil dengan kecepatan tetap. Tepat pukul
08:25:10 pagi kecepatannya masih tetap 5 m/detik. Tetapi sepuluh menit
kemudian, kecepatannya dinaikkan 1 m/detik sehingga kecepatannya menjadi
tetap 6 m/detik. Demikian 10 menit berikutnya kecepatannya selalu
dinaikkan 1 m/detik. susun algoritma untuk menghitung jarak yang
ditempuhnya sejak pukul 08:25:10 sampai jam tepat menunjukkan 10:00:00
pagi pada hari yang sama.
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
V(5
TS( 0
I(1
While ( I <= JumInterval)
S ( Interval * V
TS ( TS + S
V ( V+1
I++
End While
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
While ( JarakBadu < JarakAli)
JarakAli ( JarakAli + 5
JarakBadu ( JarakBadu + 8
t++
End While
JamBertemu ( JamBerangkatBadu + t
jam ( JamBertemu Div 3600
detik ( JamBertemu Mod 3600
menit ( detik Div 60
detik ( detik Mod 60
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
V(10
Detik (0
Jarak(0
While ( Jarak < 100000)
Detik++
Jarak ( Jarak + V
If (Detik Mod 600 = 0) Then
V++
End If
End While
Jam ( Detik Div 3600
Detik ( Detik Mod 3600
Menit ( Detik Div 60
Detik ( Detik Mod 60
Output(Jam, Menit, Detik)
End
39. Jika user memasukkan angka 5 Apa Output dari algoritma berikut?
ALGORITMA loop1
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For (i (0 ; i
For(j(0; j
Output(i+1)
End For
Output("\n\n") {ganti baris}
End For
End
40. Jika user memasukkan angka 5 Apa Output dari algoritma berikut?
ALGORITMA loop2
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For (i (0 ; i
For(j(0; j
Output(j+1)
End For
Output("\n\n") {ganti baris}
End For
End
41. Jika user memasukkan angka 4 Apa Output dari algoritma berikut?
ALGORITMA loop3
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For (i (0 ; i
For(j(0; j
Output(i+1)
End For
Output("\n\n") {ganti baris}
End For
End
42. Jika user memasukkan angka 4 Apa Output dari algoritma berikut?
ALGORITMA loop4
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For (i (0 ; i
For(j(0; j
Output(j+1)
End For
Output("\n\n") {ganti baris}
End For
End
43. Jika user memasukkan angka 6 Apa Output dari algoritma berikut?
ALGORITMA loop5
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For (i (0 ; i
For(j(0; j < i+1; j++)
Output(i+1)
End For
Output("\n\n") {ganti baris}
End For
End
44. Jika user memasukkan angka 6 Apa Output dari algoritma berikut?
ALGORITMA loop6
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For (i (0 ; i
For(j(0; j < i+1; j++)
Output(j+1)
End For
Output("\n\n") {ganti baris}
End For
End
45. Jika user memasukkan angka 5 Apa Output dari algoritma berikut?
ALGORITMA loop7
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For(i(0; i
For(j(0; j
If ( (i = j) "" (i+j = n-1) ) Then
Output(i+1)
Else
Output(" ")
End If
End For
Output("\n")
End For
End
46. Jika user memasukkan angka 5 Apa Output dari algoritma berikut?
ALGORITMA loop8
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For(i(0; i
For(j(0; 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(i(0; i
For(j(0; j
If ( (i = j) "" (i+j = n-1) ) Then
Output(i+1)
Else
Output(" ")
End If
End For
Output("\n")
End For
End
48. Jika user memasukkan angka 5 Apa Output dari algoritma berikut?
ALGORITMA loop10
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For(i(0; i
For(j(0; 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(i(0; i
For(j(0; j
If (i+j = n-1) Then
Output(i+1)
Else
Output(" ")
End If
End For
Output("\n")
End For
End
50. Jika user memasukkan angka 4 Apa Output dari algoritma berikut?
ALGORITMA loop12
KAMUS DATA
I,j,n: Integer
BEGIN
Input(n)
For(i(0; i
For(j(0; 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(i(0; i
For(j(0; j
If (i=j) Then
Output(i+1)
Else
Output(" ")
End If
End For
Output("\n")
End For
End
52.
-----------------------
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
#include
#include
/*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;
printf("Menentukan lama bekerja\n\n");
printf(" Jam Masuk : ");
scanf("%d",&iMasuk);
printf(" \nJam Keluar : ");
scanf("%d",&iKeluar);
if (iKeluar >= iMasuk)
iLama = iKeluar - iMasuk;
else
iLama = (12-iMasuk) + iKeluar;
printf("\n\n Lama bekerja adalah : %d Jam\n", iLama);
system("PAUSE");
return 0;
}
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
#include
#include
int main()
{ int iMasuk, iKeluar, iLama;
long int iBiaya;
printf("Menghitung Biaya Parkir\n\n");
printf(" Jam Masuk : ");
scanf("%d",&iMasuk);
printf(" \nJam Keluar : ");
scanf("%d",&iKeluar);
if (iKeluar >= iMasuk)
iLama = iKeluar - iMasuk;
else
iLama = (12-iMasuk) + iKeluar;
if (iLama > 2)
iBiaya = 2000 + ((iLama - 2)*500);
else
iBiaya = 2000;
printf("\n\n Biaya parkir adalah : Rp %d \n", iBiaya);
system("PAUSE");
return 0;
}
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
#include
#include
/*Resistor Pengganti. Modul Praktikum Poltek. hal 27*/
int main()
{ int iPilihan;
float fR1, fR2, fR3;
float fResPengganti;
printf("Menghitung Resistor Pengganti");
printf("\n\nMasukkan Nilai R1: ");
scanf("%f",&fR1);
printf("\nMasukkan Nilai R2: ");
scanf("%f",&fR2);
printf("\nMasukkan Nilai R3: ");
scanf("%f",&fR3);
printf(" \n\nPenyusunan Resistor: ");
printf("\n 1.Seri");
printf("\n 2.Paralel");
printf("\nMasukkan pilihan penyusunan (1 atau 2): ");
scanf("%d",&iPilihan);
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");
}
printf("\n\nBesar resistor pengganti adalah : %.2f \n",
fResPengganti);
system("PAUSE");
return 0;
}
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
#include
#include
#include
int main()
{ int iKode,iDiskon;
char cJenis;
long int iHarga, iHDiskon;
printf(" Jenis : ");
scanf("%c",&cJenis);
printf(" Kode : ");
scanf("%d",&iKode);
printf(" Harga : ");
scanf("%d",&iHarga);
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");
}
printf("\n\n Jenis barang %c mendapat diskon %d %%, Harga setelah
didiskon : Rp %d \n", cJenis, iDiskon, iHDiskon);
system("PAUSE");
return 0;
}
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
#include
#include
#include
int main()
{ int iGol,iJam, iUpah;
int iGaji;
iUpah=0;
printf(" Jumlah Jam Kerja : ");
scanf("%d",&iJam);
printf(" Golongan(1,2,3,4) : ");
scanf("%d",&iGol);
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");
}
if (iJam > 40)
iGaji = 40 * iUpah + ((iJam - 40) * 1.5 * iUpah);
else
iGaji = iJam * iUpah;
printf("\n\n Gaji : Rp %d \n", iGaji);
system("PAUSE");
return 0;
}
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
#include
#include
#include
int main()
{ int iJamStart,iMenitStart,iJamStop,iMenitStop,iSelangMenit, iJamDurasi,
iMenitDurasi ;
long int iTotMenit1, iTotMenit2;
printf(" Masukkan Waktu Mulai (contoh 10:05) : ");
scanf("%d:%d",&iJamStart,&iMenitStart);
printf(" Masukkan Waktu Berhenti (contoh 11:04) : ");
scanf("%d:%d",&iJamStop,&iMenitStop);
iTotMenit1 = iJamStart * 60 + iMenitStart;
iTotMenit2 = iJamStop * 60 + iMenitStop;
if (iTotMenit2 >= iTotMenit1)
iSelangMenit = iTotMenit2 - iTotMenit1;
else
iSelangMenit = ((12*60)-iTotMenit1)+iTotMenit2;
iJamDurasi = iSelangMenit / 60;
iMenitDurasi = iSelangMenit % 60;
printf("\n\n Durasi adalah %d Jam %d Menit\n", iJamDurasi,
iMenitDurasi);
system("PAUSE");
return 0;
}
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
#include
#include
int main()
{ int ix, iy;
printf(" Masukkan koordinat x,y : ");
scanf("%d,%d",&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;
}
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
#include
#include
int main()
{ int iGajiPokok, iTunjangan, iJmlAnak;
printf(" Masukkan Gaji Pokok : ");
scanf("%d",&iGajiPokok);
printf(" Masukkan JmlAnak : ");
scanf("%d",&iJmlAnak);
if (iJmlAnak<=3 && iJmlAnak>0)
iTunjangan = iJmlAnak * 0.1 * iGajiPokok;
else if (iJmlAnak>3)
iTunjangan = 3 * 0.1 * iGajiPokok;
else
iTunjangan =0;
printf("\nTunjangan Anak adalah sebesar Rp.%d \n", iTunjangan);
system("PAUSE");
return 0;
}
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
#include
#include
int main()
{ int iPeserta,iMinibus;
printf(" Masukkan jml peserta : ");
scanf("%d",&iPeserta);
iMinibus=0;
if (iPeserta > 7){
iMinibus = iPeserta / 7;
if (iPeserta % 7 != 0)
iMinibus++;
}else if (iPeserta > 0)
iMinibus=1;
printf("Minibus yg diperlukan: %d\n",iMinibus);
system("PAUSE");
return 0;
}
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
#include
#include
#include
int main()
{ int iNHari,iBelakang;
char cNamaHari[15];
printf("Masukkan N Hari yg lalu : ");
scanf("%d",&iNHari);
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");
}
printf("\n Sekarang Hari Senin. %d Hari yang lalu adalah hari %s
\n",iNHari,cNamaHari);
system("PAUSE");
return 0;
}
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
#include
#include
#include
int main()
{ int iNHari,iHariIni,iBelakang;
char cNamaHari[15],cNamaHariLalu;
printf("Masukkan Kode Hari ini : ");
scanf("%d",&iHariIni);
printf("Masukkan N Hari yg lalu : ");
scanf("%d",&iNHari);
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");
}
printf("\n %d Hari yang lalu adalah hari %s \n",iNHari,cNamaHari);
system("PAUSE");
return 0;
}