Soal UAS Algoritma dan Pemrograman 2 PTI - UIN Arraniry
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 masuk
Jam keluar
Keluaran/tampilan
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/tampilan
10 11 1 Biaya = 2000
10 2 4 Biaya = 3000
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
Algoritma:
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 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
Algoritma:
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 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
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 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
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 (jam,menit)
Selesai (jam,menit)
Lama (menit) Lama (jam,menit)
10:30 12:10 100 1 jam 40
menit
10:30 1:40 130 3 jam 10
menit 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
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 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
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 anak
Gaji Pokok Tunjangan 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 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
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 Peserta Jumlah Minibus
5 1
7 1
8 2
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
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 Menghitung_Tunjangan KAMUS DATA
iPeserta,iMinibus : Integer BEGIN
Output(iPeserta)
iMinibus0
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
Algoritma:
Program:
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