Senin, 28 Oktober 2013

Tugas2 DASPROG 105623303/fajar hidayat

B. SOAL PRAKTIKUM
1. Tuliskan algoritma untuk mencari sisi miring dari suatu segitiga siku-siku jika diketahui diketahui panjang dua sisi yang membentuk sudut siku-siku.
Petunjuk: sisi miring segitiga siku-siku dapat dihitung dengan rumus pythagoras,
2. Tuliskan algoritma untuk menampilkan banyaknya pecahan uang paling efisien dari sejumlah uang yang di inputkan oleh pengguna.
Pecahan uang yang digunakan: 100.000, 50.000, 20.000, 10.000, 5.000, 2.000, 1.000, 500, 200, dan 100.
Contoh, untuk uang Rp 12.500, diperlukan 1 lembar 10.000, 1 lembar 2.000, dan 1 koin 500.
Input : jumlah uang
Output : banyaknya pecahan uang
3. Buat algoritma untuk mengkonversi bilangan dalam format desimal menjadi biner.
Input : bilangan desimal
Output : bilangan biner
4. Untuk menentukan bonus pegawai, berdasarkan ketentuan yang diberikan oleh bagian personalia dan keuangan sebagai berikut : Pegawai perusahaan digolongkan menjadi dua golongan, yaitu staf dan non staf. Staf akan mendapatkan bonus sebesar 1 juta rupiah dengan syarat bahwa ia telah bekerja paling tidak 5 tahun dan umurnya sudah mencapai 50 tahun; staf yang bekerja kurang dari 5 tahun dan berapapun umurnya, hanya mendapat bonus sebesar Rp. 500.000. Pegawai non staf yang telah bekerja lebih dari 5 tahun akan mendapat bonus sebesar Rp. 400.000 jika berumur lebih dari 50 tahun sedangkan pegawai non staf yang berumur kurang dari 50 tahun hanya mendapat bonus Rp. 250.000. Pegawai staf yang umurnya kurang dari 50 tahun akan mendapat bonus Rp. 300.000.
Buat algoritmanya?
5. Tarif pemasangan iklan baris di sebuah Surat Kabar ditentukan sebagai berikut :
- Hari : Minggu, Senin, Selasa, Rabu, Kamis dan Jumat, per baris Rp. 33.000,-
- Hari : Sabtu, per baris Rp. 40.000,-
Buatlah algoritma untuk menghitung total biaya iklan baris yang harus dibayar oleh pengiklan.
Input : - Hari (Minggu, Senin, Selasa, Rabu, Kamis, Jumat atau Sabtu)
- Jumlah baris yang dipakai
Output : Total biaya iklan yang harus dibayar pengiklan
Tuliskan algoritma untuk kasus diatas dalam bentuk flowchart.
6. Info Harga Tiket Masuk bioskop Surabaya City adalah sebagai berikut :
- Senin – Kamis : Rp 15.000,-
- Jumat s/d Minggu : Rp 35.000,-
- Hari Libur : Rp 35.000,-
Input : - Hari (Minggu, Senin, Selasa, Rabu, Kamis, Jumat atau Sabtu)
- Libur atau Tidak Libur
- Jumlah tiket yang dibeli
Output : Total biaya tiket
Pertanyaan: Buat algoritma untuk menghitung total biaya tiket .
7. Di sebuah perbelanjaan di Surabaya diadakan Pekan Diskon, dimana perhitungan bonus dihitung bertingkat untuk total belanja senilai :
- Rp. 150.000,- diskonnya : 10%
- Rp. 275.000,- diskonnya : 15%
- Rp. 300.000,- diskonnya : 20%
- Rp. 400.000,- ke atas diskonnya : 25%
Diskon tidak dihitung sebagai akumulasi dari diskon nilai belanja dibawahnya.
Buatlah algoritma untuk menghitung berapa nilai yang harus dibayar oleh pelanggan dengan total nilai belanja tertentu bila disertakan pula perhitungan diskonnya.
Input : Total nilai belanja.
Output : Nilai Diskon (dalam rupiah/bukan persen), Nilai yang harus dibayar
8. Berikut ini adalah ketentuan untuk menghitung nilai, dan konversi menjadi nilai huruf.
Ketentuannya:
Nilai=((rata-rata tugas*30%)+(UTC*30%)+(UAC*40%))
Input = tugas1,tugas2,tugas3,UTC,UAC
Output = Nilai Akhir dan Nilai Huruf.
‘A’ jika nilai > 80 dan nilai <= 100 ‘AB’ jika nilai > 70 dan nilai <= 80 ‘B’ jika nilai > 65 dan nilai <= 70 ‘BC’ jika nilai > 60 dan nilai <= 65 ‘C’ jika nilai > 55 dan nilai <= 60
’D’ jika nilai > 40 dan nilai <= 55
’E’ jika nilai > 0 dan nilai <= 40
9. Berikut ini adalah tarif pemakaian Air PDAM Kota Surabaya
Jumlah Pemakaian (m3) Harga/m3
Pemakaian I ( < 50 m3)Rp.200,-
Pemakaian II ( 51 – 150 )Rp. 500,-
Pemakaian III ( 151 – 300 )Rp. 1.000,-
Pemakaian I V ( > 300 m3 )Rp. 1.500,-
Input : Jumlah Pemakaian
Output : Besar biaya yang harus dibayar
Jumlah Pemakaian = 500 m3
Pemakaian I ( s/d 50 m3) Rp. 200,- * 50 = Rp. 10.000,-
Pemakaian II ( 51 – 150 ) Rp. 500,- * 100 = Rp. 50.000,-
Pemakaian III ( 151 – 300 ) Rp. 1.000,- * 150 = Rp. 150.000,-
Pemakaian IV( > 300 m3 ) Rp. 1.500,- * 200 = Rp. 300.000,-
Biaya Total Rp. 510.000,-
Pertanyaan: Buat algoritma untuk kasus diatas.
10. Sebuah perusahaan kartu kredit memberikan cash back kepada nasabahnya berdasarkan jumlah nilai pemakaian kartu kredit selama sebulan.
Nilai pemakaian cash back
--------------------- ----------
s.d 1.000.000 5%
1.000.000 – 10.000.000 6%
10.000.000 – 25.000.000 7%
Diatas 25.000.000 8%
Ilustrasi: seorang nasabah yang total pemakaian selama sebulan 18.000.000, maka cash backnya= 5%x1.000.000+6%x9.000.000+7%x8.000.000 = 160.000
Buat algoritma untuk menghitung cash back yang diterima nasabah berdasarkan nilai pemakaian kartu kredit.

C. PSOUDOCODE
a. Soal 1 Pythagoras
Deskripsi
hasil , sisi1, sisi2 : Double
Implementasi
hasil : C= √(a*a)+(b*b)
Output(hasil)
End.
b. Soal 2 Pecahan Uang
Deskripsi
seratusribu, limapuluhribu, duapuluhribu, sepuluhribu, limaribu, duaribu, seribu, limaratus, duaratus, seratus, inputuang, sisa : Integer
Implementasi
seratusribu = inputuang/100000;
sisa =inputuang - (seratusribu*100000);
limapuluhribu =sisa / 50000;
sisa =sisa - (limapuluhribu * 50000);
duapuluhribu =sisa / 20000;
sisa =sisa - (duapuluhribu * 20000);
sepuluhribu =sisa / 10000;
sisa =sisa - (sepuluhribu * 10000);
limaribu =sisa / 5000;
sisa =sisa - (limaribu * 5000);
duaribu =sisa / 2000;
sisa =sisa - (duaribu * 2000);
seribu =sisa / 1000;
sisa =sisa - (seribu * 1000);
limaratus =sisa / 500;
sisa =sisa - (limaratus * 500);
seratus =sisa / 100;
sisa =sisa - (seratus * 100);
if inputuang >= 100000 then
if seratusribu == 0 then
Output (“ ”)
else
Output (seratusribu)
endif
endif
if inputuang >= 50000 then
if limapuluhribu == 0 then
Output (“ ”)
else
Output (limapuluhribu)
endif
endif
if inputuang >= 20000 then
if duapuluhribu == 0 then
Output (“ ”)
else
Output (duapuluhribu)
endif
endif
if inputuang >= 10000 then
if sepuluhribu == 0 then
Output (“ ”)
else
Output (sepuluhribu)
endif
endif
if inputuang >= 5000 then
if limaribu == 0 then
Output (“ ”)
else
Output (limaribu)
endif
endif
if inputuang >= 2000 then
if duaribu == 0 then
Output (“ ”)
else
Output (duaribu)
endif
endif
if inputuang >= 1000 then
if seribu == 0 then
Output (“ ”)
else
Output (seribu)
endif
endif
if inputuang >= 500 then
if limaratus == 0 then
Output (“ ”)
else
Output (limaratus)
endif
endif
if inputuang >= 100 then
if seratus == 0 then
Output (“ ”)
else
Output (seratus)
endif
endif
if inputuang >= 0 then
Output (sisa)
End if
End.
c. Soal 3 Bilangan Desimal ke Biner
Deskripsi
bilangan , hasil=0 , i=0 : Integer
Implementasi
While bilangan>0 Repeat
hasil+=bilangan mod 2 * (int) Math.pow(10, i);
bilangan/=2;
i++;
Output (hasil)
End.
d. Soal 4 Bonus Pegawai
Deskripsi
nama, pegawai : String
masakerja, umur : Integer
Implementasi
If pegawai = staf then
If masakerja >=5 and umur >=50 then
Output (bonus)
Else if masakerja < 5 And umur = umur then
Output (bonus)
Else if masakerka = masakerja And umur < 50 then
Output (bonus)
End if
Else If pegawai = nonstaf then
If masakerja >= 5 And umur >=50 then
Output (bonus)
Else
Output (bonus)
End if
Else
Output (Pesan Error)
End.
e. Soal 5 Tarif Iklan
Deskripsi
hari : String
baris : Double
Implementasi
If hari = minggu Or hari = senin Or hari = selasa Or hari = rabu Or hari = kamis Or hari = jumat then
Output (baris * 33000)
Else if hari = sabtu then
Output (baris * 40000)
Else
Output (Pesan Error)
End.
f. Soal 6 Harga Tiket
Deskripsi
hari, jenis : String
tiket : Integer
Implementasi
If hari = senin Or hari = selasa Or hari = rabu Or hari = kamis then
If jenis = tidak then
Output (tiket*15000)
Else
Output (tiket*35000)
Else if hari = jumat Or hari = sabtu Or hari = minggu
If jenis = tidak then
Output (tiket*35000)
Else
Output (tiket*35000)
Else
Output (Pesan Error)
End.
g. Soal 7 Diskon Belanja
Deskripsi
total, diskon, bayar : Double
Implementasi
if total < 150000 then
diskon = total * 0%
bayar = total - diskon
Output (diskon)
Output (bayar)
Else if total < 275000 then
diskon = total * 10%
bayar = total - diskon
Output (diskon)
Output (bayar)
Else if total < 300000 then
diskon = total * 15%
bayar = total - diskon
Output (diskon)
Output (bayar)
Else if total < 400000 then
diskon = total * 20%
bayar  total - diskon
Output (diskon)
Output (bayar)
Else
diskon = total * 25%
bayar = total - diskon
Output (diskon)
Output (bayar)
End.
h. Soal 8 Nilai Huruf
Deskripsi
Nama : String
tugas1,tugas2,tugas3,UTS,UAS, rata2, total : Double
Implementasi
rata2 = (tugas1+tugas2+tugas3)/3;
total = (rata2*(30%))+(UTS*(30%))+(UAS*(40%));
if total > 0 And total <= 40 then
Output (total)
Output (“E”)
else if total > 40 And total <= 55
Output (total)
Output (“D”)
else if total > 55 And total <= 60
Output (total)
Output (“C”)
else if total > 60 And total <= 65
Output (total)
Output (“BC”)
else if total > 65 And total <= 70
Output (total)
Output (“B”)
else if total > 70 And total <= 80
Output (total)
Output (“AB”)
else if total > 80 And total <= 100
Output (total)
Output (“A”)
End.
i. Soal 9 Tarif PDAM
Deskripsi
Pemakaian : Double
Implementasi
If pemakaian <= 0 then
Output ( pemakaian*0 )
Else if pemakaian <= 50 then
Output ( pemakaian*200)
Else if pemakain <=150 then
Output ((50*200)+((pemakaian - 100) * 500))
Else if pemakaian <= 300 then
Output ((50 * 200) + (100 * 500) + ((pemakaian - 150) * 1000))
Else
Output ((50 * 200) + (100 * 500) + (150 * 1000) + ((pemakaian - 300) * 1500))
End.
j. Soal 10 Cash Back
Deskripsi
pemakaian1=  0 : Integer
pemakaian2 = 0 : Integer
pemakaian3 = 0 : Integer
pemakaian4 = 0 : Integer
cash_back_total= 0 : Integer
jml_pemakaian : Integer
Implementasi
pemakaian11000000
if jml_pemakaian<=1000000 then
pemakaian1 = jml_pemakaian
Else if jml_pemakaian > 1000000 And jml_pemakaian <= 10000000 then
pemakaian1  =10000000
pemakaian2 = jml_pemakaian – 1000000
Else if jml_pemakaian > 10000000 And jml_pemakaian <= 25000000 then
pemakaian2 = 10000000
pemakaian3 = jml_pemakaian-25000000
Else if jml_pemakaian > 25000000 then
pemakaian2  =10000000
pemakaian3 =  25000000
pemakaian4  =j ml_pemakaian – 25000000
cash_back_total=(pemakaian1*5%)+(pemakaian2*6%)+(pemakaian3*7%)+(pemakaian4*8%)
Output (jml_pemakaian , cash_back_total)
End.

Tidak ada komentar:

Posting Komentar