Jumat, 08 April 2016

Bab 6 Diktat

1. Menghitung ganjil dan genap


2. Menghitung luas persegi panjang


3. Menghitung keliling persegi panjang


4. Menghitung volum lingkaran


5. Menhitung keliling lingkaran


6. Menghitung luas segitiga


7. Menghitung keliling segitiga


8. Menghitung tinggi segitiga


9. Menghitung kombinasi


10. Menghitung permutasi


Bab 5 Diktat

BAGIAN 1

1. Cetaklah bilangan 1 sampai dengan 4 menggunakan downto.
              Algoritma :    

Deklarasi :
i  : integer
 Deskripsi : For i ← 4 to 0 do
                    Write (i)
                    Endfor


2. buatlah translasi dalam bahasa C untuk algoritma 4.5. Apakah diperlukan modifikasi

Algoritma :


Deklarasi

Hari_ke           :int;
Hari     :string;
Deskripsi
            Read (hari_ke)
            Pilih(hari_ke)untuk
1 : hari ← |senin|;
2: hari ← |selasa|;
3: hari ← |Rabu|;
4: hari ← |Kamis|;
5: hari ← |Jumat|;
6: hari ← |Sabtu|;
7: hari ← |Minggu|;
End{pilih}
Write{hari}


3. Buatlah algoritma dan program untuk mencetak bilangan yang habis dibagi 3 dan 5
antara 1 sampai dengan 100.

Algoritma :

Deklarasi

i  : integer {bilangan 1 sampai dengan 100}
Deskripsi
Read i
I ß 1 sampai dengan 100
for (int i=1; i<=100; i++)
if (i mod 3==0)
Write i
Else (i mod 5==0)
Write i



4. Hitunglah nilai dari :
1 1 1 1 12
3 4 n


5. Buatlah algoritma dan program untuk menghitung nilai dari permutasi dan kombinasi n
buah bola yang diambil r bola.
Petunjuk :
Rumus permutasi dan kombinasi adalah sebagai berikut :
( , ) !
( )!
P n r n
n r
 
dan ( , ) !
!( )!
C n r n
r n r
 
Algoritma :

Deklarasi hasil,n,k : integer
                 proses[2],yesno[2]; character
. Deskripsi
            Read(n,k)
            if(n<k)
            then write("Nilai n tidak boleh lebih kecil dari k")
            else
            write"(Pilih P (permutasi) atau C (kombinasi))"
            if(proses[0]=='p' || proses[0]=='P')
            hasil = faktorial(n)/faktorial(n-k);
            then write("\n \n")
            then write(n,"P",k," : ",hasil)
           
            else if (proses[0]=='c' || proses[0]=='C')
            hasil = faktorial(n)/(faktorial(k) * faktorial(n-k));
            then write("\n \n")
            then write(n,"C",k," : ",hasil)
           
            else
            then write("\n\tAnda tidak memilih P atau C")
            then write("\n\tIngin mengulang? <y/n> ")
            Read(yesno[0])
            if (yesno[0]=='Y'||yesno[0]=='y')
            Y=1
            else if (yesno[0]=='N'||yesno[0]=='n'||yesno[0]!='Y'||yesno[0]!='y')
            Y=0


6. Buatlah algoritma dan program untuk mengkonversi bilangan desimal menjadi bilangan
biner. Petunjuk : Gunakan operator mod dan div !

Algoritma :

Deklarasi

            desimal, pembagi, bit : long
            pembagi=1073741824

 Deskripsi
            Read(desimal)
            while(pembagi>desimal)pembagi/=2

            do
            bit=desimal/pembagi
            then write(bit)
            desimal=desimal%pembagi
            pembagi/=2;

            while(pembagi>=1)
            write("\n")


Bab 4 Diktat

 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





2. Sempurnakan algoritma 3.3. dengan akar imajiner berbentuk : a + bi dengan a dan b bilangan real dan bila harga b2 􀀐 4ac 􀀟 0 . Perhatikan bahwa nilai a dan b dihitung terpisah.
{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)





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)





 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)




  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.



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





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)




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


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


Bab 3 Diktat

2. Buatlah algoritma untuk mencari isi bola bila diketahui jari-jari bola.

 Algoritma dan Analisis.
{membaca data real berupa jari-jari bola (r), dan menghitung isi atau volumenya dengan jari-jari tertentu. Volume bola dihiutng dengan rumus V=4πr3. Nilai V dicetak sebagai output ke peranti keluaran.}
Deklarasi:
                Phi          : float                    {nilai 3,14, satuan cm}
                R             : float                    {jari-jari bola, satuan cm}
                V             : float                    {volume bola, satuan cm3}
Deskripsi:
                Baca (phi)
                Baca (r)
                Vß4*phi*r*r*r
                Write (V)


3. Buatlah analisis dan algoritma untuk mencari hipotenusa dari segitiga Pythagoras bila
diketahui sisi siku-sikunya. (Petunjuk : gunakan fungsi sqrt yang menyatakan akar
dari).
Algoritma dan Analisis.
Analisis:
                Kasus hipotenusa: H=sqrt(A*A+B*B)
Algoritma:
{membaca panjang sisi depan (A) dan alas segitiga (B), dan menghitung hipotenusa dengan panjang sisi depan dan sisi alas tertentu. Hipotenusa dihitung dengan rumus H=sqrt(A*A+B*B). nilai H dicetak sebagai output}



Deklarasi:
A = integer          (input)
B = integer          (input)
H= float                                (output)
Deskripsi:
Read (A)
Read (B)
Hßsqrt(A*A+B*B)
Write (H)

4. Buatlah analisis dan algoritma untuk menghitung konversi detik menjadi format
jam:menit:detik

Analisis:
  Kasus jam : detik/3600
  Kasus modulus: - sisa = jam%3600
Sisa 2 =menit%60
Kasus menit : sisa/60
Kasus detik: detik=sisa 2
Algoritma:
{membaca jumlah detik (detik), dan menghitung jam=detik/3600, menit/60. Nilai jam, menit     dan detik sebagai berikut}
Deklarasi:
Detik : integer
Jam : integer
Menit : integer
Sisa : integer
Sisa 2 : integer
Deskripsi:
Baca (detik)
Jamjam/3600
Menitmenit/60
Write (jam,menit,sisa).



5. Buatlah analisis dan algoritma untuk menghitung konversi dari jam:menit:detik ke detik
Buat contoh kasus, misalnya konversikan 2 jam 13 menit 43 detik menjadi … detik.

Analisis:
Kasus: j =jam*3600
m=menit*60
Algoritma:
{membaca jumlah jam(jam), menit (menit), detik (detik) dan menghitung dengan rumus  h=j+m+detik}
Deklarasi:
Jam (integer)
Menit (integer)
Detik (integer)
Deskripsi:
Baca (jam)
Baca (menit)
Detik (detik)
Hasil j+m+detik
Write (hasil)


6. Buatlah analisis dan algoritma untuk menghitung selisih 2 waktu. Output ditampilkan
dalam bentuk jam:menit:detik. Asumsikan menggunakan sistem jam 24-an.
Buat contoh kasus, misalnya berapa selisih waktu antara jam 3.45 sore dengan jam 10.23
malam. Selesaikan secara manual lebih dulu.

Analisis:
Kasus selisih detik:
If((detik.detik-detik.detik)<0){
det.detik = (60+detik.detik)-detik.detik;
men.menit*60-60;} else{det.detik=detik.detik-deti.detik;}
kasus selisih menit:
if((menit.menit-meni.menit)<0){
men.menit=(60+meni.menit)-menit.menit;
j.jam*60-60;} else { men.menit=menit.menit-meni.menit;}
kasus selisih jam:
j.jam=jam.jam-ja.jam;
Algoritma:
{membaca nilai waktu pertama [jam(jam.jam), menit(menit),detik(detik)], nilai waktu kedua [jam(ja.jam),menit(meni,menit), detik(deti.detik)]. Menghitung selisih dengan mengurangkan waktu perjam dengan waktu kedua}
Deklarasi:
//function
Struct satu ();
Struct dua ();
Struct selisih ();
//didalam struct berisi:
jam (integer)
jenit (integer)
detik (integer)

//main ()
Jam, menit, detik (satu)
Ja, meni, deti (dua)
J, men, det (selisih)
Deskripsi:
//waktu pertama
Baca jam.jam (integer)
Baca menit.menit (integer)
Baca detik.detik (integer)
//waktu kedua
Baca ja.jam (integer)
Baca meni.menit (integer)
Baca detik.detik (integer)
Write (j.jam, men.menit, det.detik)


8. [Pengamatan] Buatlah analisis dan algoritma untuk menghitung luas sebuah plat CD.
Diameter lingkaran luar = …. cm.
Diameter lingkaran dalam = …. cm.

Analisis:
Kasus rumusD:
Phi*dalam*dalam.
Kasus rumusL:
Phi*luar*luar.
Kasus luasCD:
rumusL-rumusD.

Algoritma:
{membaca jari-jari dalam(dalam) dan jari-jari(luar). Menghitung luasCD dengan rumus rumusL-rumusD)
Deklarasi:
Dalam (integer).
Luar (integer).
rumusD (integer).
rumusL (integer).
luasCD (integer).
Phi (float, nilai 3.14).
Deskripsi:
Baca (dalam).
Baca (luar).
luasCD  rumusL-rumusD.
Write (luasCD).


9. Buatlah analisis dan algoritma untuk menghitung operasi bilangan rasional :
penjumlahan, pengurangan, perkalian, pembagian dan kebalikan.
Buat contoh kasus, misalnya dua bilangan rasional 2/3 dan 4/7.


10. Buatlah analisis dan algoritma untuk mengkonversi bilangan biner 4 digit menjadi
bilangan desimal. Operator overloading input mencegah user untuk memasukkan
bilangan selain 0 dan 1. Deklarasi variabel input dan output adalah bertipe integer.

Analisis:
Kasus biner 4 digit:
Switch(biner){
Case 1000
Case 1001
Case 1010
Case 1011
Case 1100
Case 1101
Case 1110
Case 1111
Algoritma:
{membaca nilai biner (biner), mencari nilai desimal dengan menggunakan switch)
Deklarasi:
Biner (integer).
Deskripsi:
Baca (biner).
Switch (biner).
Write (case 1000, case 1001, case 1010, case 1011, case 1100, case 1101, case 1110, case 1111).


Bab 2 Diktat

1. Buatlah program yang meminta user memasukkan jam, menit dan detik kemudian
menampilkannya dengan format jam:menit:detik. Deklarasikan jam dan menit berupa
integer, sedangkan menit berupa floating point. Buat masukan dan keluaran
menggunakan operator overloading << dan >> sesuai yang dikehendaki.


2. Buatlah program yang meminta user memasukkan bagian penyebut dan pembilang dari
sebuah bilangan rasional berbentuk p/q. Setiap memasukkan bilangan rasional outputnya
berbentuk p/q. Misalnya, masukan 1 dan 2 maka tampilan outputnya ½.


3. Buatlah program yang meminta user memasukkan bagian ribuan, ratusan, puluhan dan
satuan. Misalnya : 1000, 200, 30, 4. Tampilan yang dikehendaki adalah 1234.


4. Buatlah program untuk merepresentasikan operasi-operasi aritmatika : penjumlahan,
pengurangan, perkalian dan pembagian. User diminta memasukkan 2 buah bilangan bulat,
kemudian menampilkan sajian lengkapnya dari semua operasi. Sebagai contoh, user
memasukkan 1 dan 2 maka tampilan outputnya :
1 + 2 = 2
1 – 2 = -1
1 * 2 = 2
1 : 2 = ½


5. Buatlah program untuk merepresentasikan bilangan bulat menjadi bilangan scientific
number berbentuk 1.23E1 untuk menyatakan bilangan 12.3. Masukan bilangan bulat 4
digit, keluaran berbentuk aEb, dengan a adalah bilangan antara 0 dan 10, sedangkan b
dari 0 sampai 4.


Bab 1 Diktat

Disini ane dapet tugas dari pak dosen untuk mengerjakan soal yang ada di modul. modul bisa di download Di sini. oke kita langsung kerjakan aja gan ;

1. Buatlah program yang menampilkan biodata pribadi anda.


2. Buatlah program yang meminta input dari user berupa tanggal, bulan dan tahun kelahiran


3. Buatlah program yang menampilkan huruf I yang semuanya menggunakan karakter ‘*’
dengan tinggi 6 karakter dan lebar 3 karakter.



4. Buatlah program untuk menghitung luas dan keliling lingkaran beserta volume bola. Buat
deklarasi terpisah antara variabel dan konstanta yang diperlukan.


5. Buatlah program yang menampilkan pilihan-pilihan menu dari sebuah restoran atau cafe.


6. Buatlah program yang merepsentasikan cerita berikut. Ibu memberi uang kepada adik sebesar 20 ribu rupiah. Ibu meminta adik untuk membeli 3 kg beras. Setiap kilogram


7. Ulangi untuk kasus no 6. Apabila banyak beras tidak diketahui, berapa kg maksimal


8. Buatlah sekurang-kurangnya 4 baris puisi (boleh potongan lagu), kemudian buat program
yang menampilkan per baris. Untuk menampilkan baris berikutnya, user diminta
menekan sebuah tombol.