Jumat, 08 April 2016

BAB 4

Bab 4 : Pemilihan/ Kontrol Program.

Diktat (Workshop Pemrograman)
    
    1.      Buatlah flowchart dan translasi program dari algoritma 3.2.b. di atas.
             Algoritma menentukan_bilangan_terbesar
            {mencari bilangan terbesar dari 3 bilangan yang diinput}
    Deklarasi :
            Integer a,b,c,terbesar;
    Deskripsi :
            Write(“Masukkan Bilangan Pertama : ”);
            Read(a);
            Write(“Masukkan Bilangan Kedua : ”);
            Read(b);
            Write(“Masukkan Bilangan Ketiga : ”);
            Read(c);
            if (a>b) then
                        if (a>c)
                                    then write(“Terbesar = ”,a);
                                    else wrie(“Terbesar = ”,c);
                        endif
            else if (b>c)
                        then write(“Terbesar = ”,b);
                        else write(“Terbesar = ”,c);
            endif
            endif
     C++ :
      Inilah Programnya :

        Inilah Outputnya :

       Raptor :
       Inilah Programnya :

       Inilah Outputnya :

    2.      Sempurnakan algoritma 3.3. dengan akar imajiner berbentuk : a + bi dengan a dan b bilangan real dan bila harga b􀀐 4ac 􀀟 0 . Perhatikan bahwa nilai a dan b dihitung terpisah.

    Rumus menghitung nilai a :



    Rumus menghitung nilai b :



   Operator Overloading untuk output :
   Algoritma :

   {Input: a,b,c mencari akar-akar persamaan kuadrat dan mencari akar-akar persamaan kuadrat}
  Deklarasi:

a,b,c : integer{Input}
disk : longint{output}
x1,x2 : real{output}
   Deskripsi:
read(a,b,c)
disk<--b*b-4a*c
if (a=0) then write('Bukan persamaan kuadrat')
else if disk>0 then
  x1<---(-b)+sqrt(disk)/2*a
  x2<---(-b)-sqrt(disk)/2*a
else if disk=0 then
  x1<---(-b)/2*a
  x2<---x1
else write('Akar Imajiner')
end if
                       write(x1,x2)
     C++ :
     Inilah Programnya :

 

      Inilah Outputnya :


      Raptor :
      Inilah Programnya :




      Inilah Outputnya :



    3.      Buatlah program dari algoritma 3.4. menggunakan case … of .
           

            Algoritma konversi nilai

{       dibaca nilai angka kemudian di konversi ke nilai huruf}
Deklarasi :
nilai   : integer
nilai_huruf : char
      Deskripsi
read(nilai)
if (nilai>0) and (nilai <=20) then nilai_huruf <- E
      else if (nilai > 21) and (nilai<=40)then nilai_huruf <-  D
      else if (nilai > 41) and (nilai<=60)then nilai_huruf <-  C
      else if (nilai > 61) and (nilai<=80)then nilai_huruf <-  B
      else nilai_huruf <- A
                  end if
                 write(nilai_huruf)
 
           C++:
           Inilah Programnya :




           Inilah Outputnya :  

 
     Raptor :
     Inilah Programnya :


     Inilah Outputnya :  

 
    4.      Buatlah algoritma, flowchart dan program untuk mengecek apakah pemakai memasukkan bilangan bulat atau bilangan real.
Lebih dulu, carilah perbedaan dari 1.0 dan 1 kemudian 1 dan 1.23.
Perbedaan :

Algoritma :

   Algoritma_menentukan_bil_bulat/bil_real
   {menentukan bilangan bulat atau real dari input yang di masukan}  
   Deklarasi :
      a    =float
      b   = integer
     bil  = char


  Deskripsi :
     b=a
    read(a)
    if(a=b) then bil <-- 'adalah bil bulat'
    else bil<-- 'adalah bi real'
    endif
    write(bil)

 
     C++:
     Inilah Programnya :


     Inilah Outputnya :  

  
     Raptor :
     Inilah Programnya :


     Inilah Outputnya :  

 
    5.      Buatlah algoritma, flowchart dan program untuk menentukan banyaknya hari dalam suatu bulan dan tahun yang diberikan. Pertimbangkan pula adanya tahun
kabisat di mana bulan Februari mempunyai jumlah 29 hari. Gunakan case .. of
dan if .. then .. else .. yang tepat untuk setiap kasus.


Algoritma menentukan hari dalam satu bulan

{ input bulan dan tahun kemudian output jumlah hari dalam satu bulan

Deklarasi :
   AngkaBulan : integer;           { 1 . . 12 }
   Tahun      : integer;          { > 0 }
   JumlahHari : integer;
Deskripsi :
begin
     write('Bulan (1-12) = ');
     write('Tahun = ');
     case AngkaBulan of
          1, 3, 5, 7, 8, 10, 12   : JumlahHari:=31;
           4, 6, 9, 11            : JumlahHari:=30;
           2                      : if Tahun mod 4 = 0 then
                                        JumlahHari:=29
                                    else
                                        JumlahHari:=28;
                                   {endif}
    end;
      
    writeln('Jumlah hari dalam bulan ',AngkaBulan,' adalah ',JumlahHari);
                end. 

C++ :
 Inilah Programnya :


 Inilah Outputnya :  

 
6. Buatlah algoritma, flowchart dan program untuk mengecek apakah karakter yang
dimasukkan itu merupakan huruf besar, huruf kecil atau digit (bilangan).
Gunakan fungsi ORD(char) untuk menyatakan nomor urut dalam tabel ASCII.
Algoritma :

      Algoritma mengecek karakter yang dimasukkan termasuk huruf kapital, huruf kecil atau digit

{input karakter kemudian di cek apakah huruf besar, kecil atau digit}
Deklarasi :
            karakter : string {input, output}
Deskripsi :
            Read(karakter)
            if(karakter>=’A’ && karakter<=’Z’) ß Huruf kapital
            else if(karakter>=’a’ && karakter<=’z’) ß huruf kecil
            else(karakter>=’0’ && karakter<=’9’) ß digit
            endif
write(karakter )
 
C++:
 Inilah Programnya :


 Inilah Outputnya :  



 Raptor :
 Inilah Programnya :


 Inilah Outputnya :  

 
7. Seorang dosen ingin mengkonversikan nilai angka hasil ujian mahasiswa menjadi nilai huruf dengan ketentuan :
Nilai antara Nilai Huruf
0-60 F
61-70 D
71-80 C
81-90 B
91-100 A


   Algoritma konversi nilai

{dibaca nilai angka kemudian di konversi ke nilai huruf}
Deklarasi :
nilai   : integer
nilai_huruf : char
Deskripsi
read(nilai)
if (nilai>0) and (nilai <=60) then nilai_huruf <- E
else if (nilai > 61) and (nilai<=70)then nilai_huruf <-  D
else if (nilai > 71) and (nilai<=80)then nilai_huruf <-  C
else if (nilai > 81) and (nilai<=90)then nilai_huruf <-  B
else nilai_huruf <- A
end if
write(nilai_huruf)
 
C++:
 Inilah Programnya :





 Inilah Outputnya :  

 Raptor :
 Inilah Programnya :



  Inilah Outputnya :  


8. Diberikan ketentuan pecahan uang di Indonesia. User memasukkan sebuah bilangan,  program harus dapat memecahnya menjadi pecahan sesuai dengan mata uang di Indonesia.
Misalkan dimasukkan nilai uang 127.675 rupiah. Cobalah memecah secara
manual nilai uang di atas.
Algoritma :


        Algoritma membaca nilai bilangan dengan Pangkat
{Diberikan masukan x dan y, dihitung nilai dari x pangkat y}
Deklarasi :
x, y, i : integer { input }
pangkat : integer { output }
Deskripsi :
read (x,y)
pangkat ß 1
for i ß 1 to y do
pangkat ß pangkat * x
enfor
write (pangkat)
     
Inilah Programnya :

Inilah Outputnya :  

9. Seorang pegawai bekerja selama 5 hari kerja, yaitu Senin sampai Jum’at. Setiap
hari dia masuk jam 08.00 dan pulang jam 16.00. Kecuali Jum’at dia pulang jam
11.00. Apabila dia bekerja lebih dari 30 jam per bulan maka setiap 5 jam akan
memperoleh uang lembur sebesar Rp 30.000,- bila kurang dari 5 jam maka akan
dihitung Rp 4.000,-/jam. Buat program dengan masukan bulan yang diinginkan,
dan outputnya berupa besarnya uang lembur pegawai tersebut.
Perhitungan secara manual :
    Algoritma menghitung Gaji Pegawai 
Deklarasi

NIK, Nama : String
Jhk, tunj.jabatan, tunj.makan, tunj.transport, gaji_kotor, pajak, gaji_bersih : Real
Deskripsi
READ (NIK, Nama, gaji_pokok, tunj.jabatan, Jhk)
tunj.makan = 10000 * Jhk
tunj.transport = 5000 * Jhk
gaji_kotor = (gaji_pokok + tunj.jabatan + tunj.makan + tunj.transport)
pajak = 0.1 * gaji_kotor
gaji_bersih = (gaji_kotor – pajak)

write (tunj.makan, tunj.transport, gaji_kotor, pajak, gaji_bersih)
end

Inilah Programnya :


 


Inilah Outputnya :  



Emoticon Emoticon