Seorang mahasiswa ingin mengetahui nilai akhir matakuliah algoritma.
Aturan perhitungan Nilai Akhir yang diterapkan :
- UTS 25 %
- UAS 35 %
- Tugas & Quiz 20 %
- Praktikum 20 %
Setelah dihitung nilai akhirnya, kemudian dapat ditentukan indeks nilainya dengan aturan:
- Indeks=”A” bila Nilai Akhir >= 80
- Indeks=”B” bila Nilai Akhir >= 65 dan Nilai Akhir <80
- Indeks=”C” bila Nilai Akhir >= 50 dan Nilai Akhir <65
- Indeks=”D” bila Nilai Akhir >= 35 dan Nilai Akhir <50
- Indeks=”E” bila Nilai Akhir < 35
Buat algoritma untuk membantu mahasiswa tersebut dalam menghitung nilai akhir dan Indeksnya, bila semua komponen nilai diINPUT.
Jawab:varna, uts, uas, tugas, praktikum: Realbegininput(uts, uas, tugas, praktikum)na <-- ((uts * 0.25) + (uas * 0.35) + (tugas * 0.2) + (praktikum * 0.2))output(na)if (na >= 80) thenoutput('A')else if (na >= 65) and (na < 80) thenoutput('B')else if (na >= 50) and (na < 65) thenoutput('C')else if (na >= 35) and (na < 50) thenoutput('D')elseoutput('E')end algoritma.
Soal Menghitung Gaji Bersih
Gaji bersih seorang pegawai dihitung dari gaji pokok dan tunjangan dipotong pajak yang harus dibayar. Besar tunjangan adalah 15 % dari gaji pokok, dan besar pajak adalah 10 % dari gaji pokok ditambah tunjangan. Buat algoritma untuk menghitung gaji bersih tersebut jika gaji pokoknya diINPUT.
Jawab:vargaji, tunjangan, gtunjangan, pajak, gbersih: realbegininput(gaji)tunjangan <-- gaji * 0.15output(tunjangan)gtunjangan <-- tunjangan + gajioutput(gtunjangan)pajak <-- gtunjangan * 0.1output(pajak)gbersih <-- gtunjangan - pajakoutput(gbersih)end.
Soal Menghitung Jumlah Bus
Sebuah acara wisata digunakan bus yang berkapasitas 30 orang. Tulis algoritma untuk menghitung jumlah bus wisata yang diperlukan bila jumlah peserta diINPUT dari keyboard. Catatan : bila jumlah peserta tidak kelipatan 30, maka jika sisanya > 5 harus disediakan 1 bus tambahan, bila sisanya <= 5 maka tidak perlu tambahan bus.
Jawab:varjbus, jpeserta: integerbegininput(jpeserta)if (jpeserta > 30) thenif (jpeserta mod 30 > 5) thenjbus <-- (jpeserta div 30) + 1elsejbus <-- jpeserta div 30elsejbus <-- 1output(jbus)end algoritma
Soal Menghitung Gaji dan Upah Lembur
Pada suatu perusahaan terdapat 5 golongan karyawan. Gaji karyawan ditentukan berdasarkan gaji tetap dan juga dari lamanya bekerja. Gaji tetap dan gaji per jam tergantung kepada golongan karyawan sesuai dengan tabel berikut:
Golongan
|
Gaji tetap (Rp)
|
Upah lembur per jam (Rp)
|
1
|
500.000
|
5000
|
2
|
300.000
|
3000
|
3
|
250.000
|
2000
|
4
|
100.000
|
1500
|
5
|
50.000
|
1000
|
Buatlah program untuk menghitung total gaji karyawan yang diterima dengan rumus: gaji sesuai golongan + (banyaknya jam lembur * tarIF lembur sesuai golongan karyawan)!
Contoh tampilan program:
INPUT:
Golongan: 2
Jumlah jam lembur: 5
OUTPUT:
Total gaji: 315000
Jawab:uses crt;vargol, lembur: integer;totgaji: real;beginclrscr;writeln('Masukkan Golongan: ');readln(gol);writeln('Masukkan jam lembur: ');readln(lembur);case gol of1:totgaji := (500000 + (5000 * lembur));2:totgaji := (300000 + (3000 * lembur));3:totgaji := (250000 + (2000 * lembur));4:totgaji := (100000 + (1500 * lembur));5:totgaji := (50000 + (1000 * lembur));end;writeln('Total gaji adalah: ', totgaji:2:0);readln;end.
#include<stdio.h
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
|
Jawab:uses crt;VARimasuk, ikeluar, ilama: Integer;BEGINclrscr;REPEATwriteln('Masukkan Jam Masuk: ');readln(imasuk);writeln('Masukkan Jam Keluar: ');readln(ikeluar);IF (imasuk > 12) OR (ikeluar > 12) THEN writeln('Data yang anda masukkan lebih dari 12, silahkan masukkan lebih kecil')ELSEIF (imasuk <= ikeluar) THENwriteln ('Lama nya Bekerja: ', ikeluar - imasuk)ELSEwriteln('Lama nya Bekerja: ', (12 - imasuk) + ikeluar);readln;UNTIL imasuk < 12;end.Algoritma:END
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
|
Jawab:uses crt;VARimasuk, ikeluar, ilama, ibiaya: integer;BEGINclrscr;writeln('Masukkan Jam Masuk: ');readln(imasuk);writeln('Masukkan Jam Keluar: ');readln(ikeluar);IF (imasuk <= ikeluar) THENilama := ikeluar - imasukELSEilama := (12 - imasuk) + ikeluar;writeln('Lama parkir adalah: ', ilama);readln;IF (ilama > 2) THENibiaya := 2000 + ((ilama - 2) * 500)ELSEibiaya := 2000;writeln('Biaya nya adalah: ', ibiaya);readln;end.
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.
Jawab:uses crt;vargab, r1, r2, r3: real;jenis: string;beginclrscr;writeln('Masukkan R1: ');readln(r1);writeln('Masukkan R2: ');readln(r2);writeln('Masukkan R3: ');readln(r3);writeln('Masukkan Jenis susunan, Seri / Paralel: ');readln(jenis);if (jenis = 'seri') thengab := r1 + r2 + r3elsegab := (1 / r1) + (1 / r2) + (1 / r3);readln;writeln('R gabungan adalah: ', gab:2:0);readln;end.
Algoritma:
Algoritma Menghitung_Resistor
END
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
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
harga = 10000
Contoh keluaran :
Jenis barang B mENDapat diskon = 15%, Harga setelah didiskon = 8500
Jawab:uses crt;varharga, disk: Real;jenis: char;beginclrscr;writeln('Masukkan Jenis: ');readln(jenis);writeln('Masukkan Harga: ');readln(harga);case jenis of'a':disk := harga * 0.1;'b':disk := harga * 0.15;'c':disk := harga * 0.2;end;writeln('Harga setelah diskon: ', harga - disk:2:0);readln;end.
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 golongandan jam kerja diINPUT dari keyboard.
Jawab:vargol, jamk: Integergaji: realbegininput(gol)input(jamk)if (jamk > 40) thencase (gol) of1:gaji<--(3000 * 40) + ((jamk - 40) * 3000 * 1.5)2:gaji<--(3500 * 40) + ((jamk - 40) * 3500 * 1.5)3:gaji<--(4000 * 40) + ((jamk - 40) * 4000 * 1.5)4:gaji<--(5000 * 40) + ((jamk - 40) * 5000 * 1.5)endcaseelsecase (gol) of1:gaji<-- 3000 * jamk2:gaji<-- 3500 * jamk3:gaji<-- 4000 * jamk4:gaji<-- 5000 * jamkendcaseoutput(gaji)end.
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. Format jam yang dimasukkan bisa berupa format 12 jam ataupun 24jam.
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
|
190
|
3 jam 10 menit
|
Jawab:
uses crt;VARijamstart, imenitstart, imenitstop, ijamstop: Integer;itotmenitstart, itotmenitstop, iselangmenit, ijamdurasi: Integer;imenitdurasi: Integer;BEGINclrscr;writeln('Masukkan Jam Mulai: ');readln(ijamstart);writeln('Masukkan Menit Mulai: ');readln(imenitstart);writeln('Masukkan Jam Berhenti: ');readln(ijamstop);writeln('Masukkan Menit Berhenti: ');readln(imenitstop);itotmenitstart := ijamstart * 60 + imenitstart;itotmenitstop := ijamstop * 60 +imenitstop;IF (itotmenitstop >= itotmenitstart) THENiselangmenit := itotmenitstop - itotmenitstartELSEiselangmenit := (12*60) - itotmenitstart + itotmenitstop;writeln('Selisih total dalam menit: ', iselangmenit);writeln('Selisih ', iselangmenit div 60, 'Jam,', iselangmenit mod 60, 'Menit');readln;end.
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
Jawab:uses crt;VARix, iy: Integer;BEGINclrscr;writeln('Masukkan x:');readln(ix);writeln('Masukkan y:');readln(iy);IF (ix >= 0) THENIF (iy >= 0) THENwriteln('Bilangan merupakkan kuadran I')ELSEwriteln('Bilangan merupakkan kuadran IV')ELSEIF (iy >= 0) THENwriteln('Bilangan merupakkan kuadran II')ELSEwriteln('Bilangan merupakkan kuadran III');readln;end.
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
|
Jawab:uses crt;VARgajipokok, tunjangan: real;jmlanak: integer;BEGINclrscr;writeln('Masukkan Gaji Pokok: ');readln(gajipokok);writeln('Masukkan Jumlah Anak: ');readln(jmlanak);if (jmlanak <= 3) thentunjangan := jmlanak * 0.1 * gajipokokelsetunjangan := 300000;writeln('Tunjangannya adalah: ', tunjangan:2:0);readln;END.
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
|
Jawab:uses crt;varjpeserta, jbus: integer;beginclrscr;writeln('Masukkan Jumlah Peserta: ');readln(jpeserta);if (jpeserta > 7) thenjbus := jpeserta div 7;if (jpeserta mod 7 > 0) thenjbus := jbus + 1elsejbus := 1;readln;writeln('Jumlah bus yang dibutuhkan adalah: ', jbus);readln;end.
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
|
Jawab:
uses crt;varhlalu: integer;beginclrscr;writeln('Masukkan berapa hari yang lalu, jika sekarang senin: ');readln(hlalu);if (hlalu > 7) thenhlalu := hlalu mod 7elsehlalu := hlalu;readln;case (hlalu) of0:writeln('Hari yang lalu adalah Senin');1:writeln('Hari yang lalu adalah Minggu');2:writeln('Hari yang lalu adalah Sabtu');3:writeln('Hari yang lalu adalah Jumat');4:writeln('Hari yang lalu adalah Kamis');5:writeln('Hari yang lalu adalah Rabu');6:writeln('Hari yang lalu adalah Selasa');end;readln;end.
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 lalu
|
Hari ini
|
Nama Hari
|
0
|
1
|
Senin
|
3
|
3
|
Minggu
|
5
|
4
|
Sabtu
|
Jawab:uses crt;varhlalu, hini, namahari: integer;beginclrscr;writeln('Masukkan hari keberapa sekarang: ');readln(hini);writeln('Masukkan berapa hari yang lalu: ');readln(hlalu);if (hini > hlalu) thennamahari := hini - hlaluelsenamahari := 7 - (hlalu - hini);readln;case (namahari) of1:writeln('Hari yang lalu adalah Senin');2:writeln('Hari yang lalu adalah Selasa');3:writeln('Hari yang lalu adalah Rabu');4:writeln('Hari yang lalu adalah Kamis');5:writeln('Hari yang lalu adalah Jumat');6:writeln('Hari yang lalu adalah Sabtu');7:writeln('Hari yang lalu adalah Minggu');end;readln;end.END
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
|
Pemakaian
|
Bayar
|
1
|
50
|
100.000
|
2
|
150
|
300.000
|
1
|
1000
|
1.100.000
|
Jawab:uses crt;vargol, pakai, tarif, bayar: real;beginclrscr;writeln('Masukkan Golongan 1 atau 2: ');readln(gol);writeln('Masukkan Pemakaian: ');readln(pakai);if ( gol = 1) thentarif := 1000elsetarif := 2000;if (pakai >= 1000) thenbayar := pakai * tarif * 1.1else if (pakai < 100) thenbayar := 100 * tarifelsebayar := pakai * tarif;writeln('Pembayarannya adalah: ', bayar:2:0);readln;end.
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
|
Jawab:VARBini, bdepan, bnikah: integerBEGININPUT(bini, bdepan)IF (bini + bedpan <= 12) thenbnikah ß bini + bedpanelsebnikah ß (bini + bedpan) mod 12output(bnikah)END ALGORITMA
Soal: Selisih 2 waktu
Buat program untuk menghitung selisih waktu antara 2 waktu, dengan masukan waktu adalah dalam bentuk (jam, menit, detik) dan keluaran dalam detik!
Contoh tampilan program:
INPUT:
Waktu1= 2:30:45
Waktu2= 2:31:20
OUTPUT:
Selisih waktu= 35 detik
Jawab:uses crt;varjam1, jam2, menit1, menit2, detik1, detik2, selisih: real;beginclrscr;writeln('Masukkan Jam Pertama: ');readln(jam1);writeln('Masukkan Menit Pertama: ');readln(menit1);writeln('Masukkan Detik Pertama: ');readln(detik1);writeln('Masukkan Jam Kedua: ');readln(jam2);writeln('Masukkan Menit Kedua: ');readln(menit2);writeln('Masukkan Detik Kedua: ');readln(detik2);jam1 := jam1 * 3600;menit1 := menit1 * 60;jam2 := jam2 * 3600;menit2 := menit2 * 60;detik1 := jam1 + menit1 + detik1;detik2 := jam2 + menit2 + detik2;writeln('Total detik Pertama adalah: ', detik1);writeln('Total detik Kedua adalah: ', detik2);if (detik1 > detik2) thenselisih := detik1 - detik2elseselisih := detik2 - detik1;readln;writeln('Selisih nya Dalam detik adalah: ', selisih:2:0,'detik');readln;end.
0 Response to "SOAL DAN JAWABAN ALGORITMA PASCAL ESSAY"
Post a Comment