Soal UAS Algoritma Dan Pemrograman 2 PTI - UIN Arraniry [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

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 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) If (iKeluar >= iMasuk) Then iLama  iKeluar - iMasuk Else iLama  (12-iMasuk) + iKeluar end if



Program:



Output(iLama) END



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 Jam keluar Lama keluaran/tampilan masuk 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) 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



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: 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



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:



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: 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



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 (menit) Lama (jam,menit) (jam,menit) (jam,menit) 10:30 12:10 100 1 jam 40 menit 10:30 1:40 130 3 jam 10 menit



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) iTotMenit1  iJamStart * 60 + iMenitStart iTotMenit2  iJamStop * 60 + iMenitStop



Program:



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



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: ALGORITMA Menghitung_Kuadran KAMUS DATA ix, iy: Integer BEGIN Input(ix,iy) If (ix >= 0) If (iy >=0) Output(“Kuadran I”) Program: else Output(“Kuadran IV”) else if (iy >=0) Output(“Kuadran II”) else Output(“Kuadran III”) END



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: ALGORITMA Menghitung_Tunjangan KAMUS DATA iGajiPokok, iTunjangan, iJmlAnak: Integer BEGIN Input(iGajiPokok) Input(iJmlAnak) If (iJmlAnak 0) Then iTunjangan  iJmlAnak * 0.1 * iGajiPokok Else If (iJmlAnak > 3) iTunjangan  3 * 0.1 * iGajiPokok Program: Else iTunjangan  0 End if Output ( iTunjangan) END



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: 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 Program: iMinibus  iMinibus + 1 End If Else if (iPeserta > 0) Then iMinibus  1 End if 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