Instruksi:
1. Kerjakan menggunakan software DevC++ sesuai dengan deskripsi soal dan contoh
algoritma yang diberikan.
2. Untuk setiap soal, copy-kan source code yang telah dikerjakan ke dalam satu file word
beserta screenshot hasil tes sesuai contoh.
3. Source Code harus menggunakan INDENTASI dan harus lulus compile.
4. Kumpulkan hard copy file word dengan judul berisi nama matakuliah, unit, nama
lengkap, NIM, dan tanggal pada
di
5. Kumpulkan softcopy file source code (masing-masing soal) dalam satu file zip dengan
nama file: UAS-PTI-UIN-nama-NIM.zip
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:
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)
KAMUS DATA
iMasuk, iKeluar, iLama, iBiaya: Integer
BEGIN
Input(iMasuk)
Input(iKeluar)
Output(iBiaya)
END
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
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:
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
Program:
If (iJam > 40) Then
iGaji 40 * iUpah + ((iJam - 40) * 1.5 * iUpah)
Else
iGaji iJam * iUpah
End if
Output(iGaji)
END
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
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)
Program: Output(“Kuadran I”)
else
Output(“Kuadran IV”)
else
if (iy >=0)
Output(“Kuadran II”)
else
Output(“Kuadran III”)
END
KAMUS DATA
iGajiPokok, iTunjangan, iJmlAnak: Integer
BEGIN
Input(iGajiPokok)
Input(iJmlAnak)
Output ( iTunjangan)
END
KAMUS DATA
iPeserta,iMinibus : Integer
BEGIN
Output(iPeserta)
iMinibus0
Output(iMinibus)
END
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:
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"
Program:
6: cNamaHari "Sabtu"
7: cNamaHari "Minggu"
Otherwise: cNamaHari "Inputan salah"
End Case
Output(cNamaHari)
END