Senin, 28 Oktober 2013

Tugas Modul 2 Dasar Pemprograman


A.     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
Ilustrasi:

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.




B.     PSOUDOCODE
a.      Soal 1 Pythagoras
Deskripsi
hasil , sisi1, sisi2 : Double
Implementasi
hasilß
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
            pemakaian1ß1000000
            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 ß jml_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