Jumat, 08 April 2016

BAB 5

Bab 5 : Perulangan/ Loop.

Diktat (Workshop Pemrograman)

Latihan 1
      1.      Cetaklah bilangan 1 sampai dengan 4 menggunakan downto.
              Algoritma :     
              Deklarasi :
i                         : integer
             Deskripsi :
                     For i ← 4 to 0 do
                    Write (i)
                    Endfor 
     C++:    
     Inilah Programnya :
   

      Inilah Outputnya :
       Raptor :
       Iniliah Programnya :
       Inilah Outputnya :


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

algoritma ?

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}
 

C++ : 
Inilah Programnya :
  


Inilah Outputnya :
 Raptor :
Inilah Programnya :

Inilah Outputnya : 
 
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

C++:
Inilah Programnya :



Inilah Outputnya : 


Raptor:
Inilah Programnya :

Inilah Outputnya :


4. Hitunglah nilai dari :
1 1 1 1 12
3 4 n
􀀐 􀀎 􀀐 􀀎􀀖􀀎

Inilah Programnya :





Inilah Outputnya : 

Raptor :
Inilah Program & Outputnya :



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
 
 
Inilah Programnya :




Inilah Outputnya : 

Raptor :
Inilah Program & Outputnya :



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")
Inilah Programnya :



Inilah Outputnya : 


Raptor :
Inilah Program & Outputnya :

7. Buatlah algoritma, flowchart dan program untuk menampilkan permutasi dari 3 huruf.
Misalnya diberikan : abc
output :
abc
bca
bac, dan seterusnya

Inilah Programnya :



Inilah Outputnya : 




Latihan 2 :

      1.      Buatlah fungsi fibonacci dengan cara iteratif.
             
            Inilah Programnya :



            Inilah Outputnya :



      2.      Buatlah fungsi fibonacci dengan 2 cara rekursif yang lain.
             
            Inilah Programnya :
            Cara 1 =




            Inilah Outputnya :
              Cara 2 =
            Inilah Programnya :



            Inilah Outputnya : 
 
  
      3.      Algoritma perkalian dengan cara penjumlahan pada algoritma 5.3. belum sempurna karena belum mencakup semua kemungkinan, misalnya untuk harga b negatif. Buatlah fungsi perkalian dengan cara penjumlahan dengan menyempurnakan algoritma 5.3. di atas. 
            
            Inilah Programnya :


            Inilah Outputnya :


    4. Buatlah algoritma rekursif dari algoritma 5.3. 

          Algoritma :

5. Diberikan suatu bilangan bulat positif. Cetaklah bilangan bulat tersebut secara terbalik, secara iteratif maupun rekursif.

#include <iostream>
#include <cstdlib>

using namespace std;

class perulangan{
public :
perulangan() {int i=0;}
void balik_while(int);
void balik_iteratif(int);
void balik_rekursif(int);
private :
int a,b,c,d;
};
void balik(char*s)
{
if(*s !='\0'){
balik(&s[1]);
cout<<s[0];
}
}
main(){ 
char*balik="balik bilagan";
int a,b;
    cout<<"masukan iteratif maupun rekursif "<<endl;
cin>>a>>b;
cout<<b<<a;
return 0;
}
 

6. Buatlah suatu subprogram yang mengembalikan nilai maksimum pertama (misal m1) dan nilai maksimum kedua (misal m2, dan m1 􀁺 m2) dari array dengan n bilangan bulat. 

Inilah Program dan Outputnya :
 

7. Algoritma 5.5 menggunakan fungsi untuk menghitung n faktorial secara rekursif. Buatlah algoritma menghitung n faktorial dengan menggunakan prosedur ! 

Inil;ah Programnya & Outputnya :
 


8. [Pengamatan : membayar barang belanja di kasir] Amatilah kejadian di mana seorang
pembeli (yang membeli barang cukup banyak) pada sebuah took swalayan. Perhatikan

apa yang dilakukan pembeli dan apa yang dilakukan oleh kasir ketika mengambil barang belanjaan untuk menghitung berapa harga keseluruhan yang harus dibayar pembeli.

Laporkan konsep counter dan konsep total yang anda temukan pada kejadian tersebut.
Konsep counter :
a.
b.
c.
Konsep total :
a.
b.
c.
Langkah yang dilakukan saat belanja :
a. mulai : kondisi awal sebelum belanja
b. proses :kegiatan apa saja yang dilakukan saat belanja
c. akhir : berapa uang yang diserahkan ke kasir, berapa jumlah barang yang dibeli beserta jumlah uang yang harus dibayar dan uang kembalian (jika ada).

Inilah Programnya & Outputnya :

9. [Proyek] Buatlah suatu class yang akan mengeksplorasi kalimat. Kalimat dapat disimpan dalam bentuk array (kumpulan) karakter.
a. masukan user diterima huruf demi huruf sampai diakhiri tanda akhir baris (sentinel)
b. buat method untuk menghitung statistik :
i. huruf hidup (vokal)
ii. huruf mati (konsonan)
iii. banyak kata
iv. huruf terbanyak dalam kalimat.
c. buat method untuk mengubah huruf awal setiap kata menjadi huruf besar
class Kalimat {
friend
friend
public :
private :
};
Operator overloading input :
Operator overloading output :
Method statistik :
 


Emoticon Emoticon