Diktat Bab ke 5

LATIHAN Hal 110
11. cetaklah bilangan 1 sampai dengan 4 menggunakan downto 
       
2. buatlah translasi dalam bahasa C untuk algoritma 4.5. Apakah diperlukan modifikasi
algoritma ?

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

4. Hitunglah nilai dari :




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 :

6. Buatlah algoritma dan program untuk mengkonversi bilangan desimal menjadi bilangan
biner. Petunjuk : Gunakan operator mod dan div !
 #include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
/* Algoritma 6
 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")
int main(int argc, char** argv) {
    long desimal, pembagi, bit;
    pembagi=1073741824;
    cout<<"\t\t Program Konversi Bilangan Desimal ke Biner"<<endl<<endl;
    cout<<" Masukan bilangan  desimal : ";
    cin>>desimal;
    while(pembagi>desimal)pembagi/=2;
    do{
        bit=desimal/pembagi;
        cout<<bit;
        desimal=desimal%pembagi;
        pembagi/=2;
    }
    while(pembagi>=1);
    cout<<"\n";
    return 0;
}



7. Buatlah algoritma, flowchart dan program untuk menampilkan permutasi dari 3 huruf.
Misalnya diberikan : abc
output :
abc
bca
bac, dan seterusnya
#include <iostream>
#include <string.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
void masuk(char a[50]);
void keluar(char b[50]);
void identitas();
int main()
 {
  char kata[50];
      cout<<"\nPermutasi dari tiga huruf"<<endl;
      masuk(kata);
      keluar(kata);;
  getch();
 }
void masuk(char a[50]){
   cout<<"\nMasukkan Kata           : ";
  gets(a);
  cout<<endl;
      }
void keluar(char b[50]){
cout<<"\nHasil Pembalikkan kata  :";
  for(int a=strlen(b);a>=0;a--)
   {
    cout<<b[a];
   }
      cout<<endl;
      }


jika anda ingin melengkapkan jawaban di atas silahkan kopas link dibawah ini.
no 1 sampai 3 ada di link ( eladwianggraini.blogspot.com )


no 4 sampai 5 ada di link ( hayupermatasari.blogspot.com )

LATIHAN Hal 120-121
1. Buatlah fungsi fibonacci dengan cara iteratif.

2. Buatlah fungsi fibonacci dengan 2 cara rekursif yang lain.

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.

4. Buatlah algoritma rekursif dari algoritma 5.3.

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

7. Algoritma 5.5 menggunakan fungsi untuk menghitung n faktorial secara rekursif. Buatlah
algoritma menghitung n faktorial dengan menggunakan prosedur !
*ALGORITMA : 
Dimisalkan menginputkan angka 4 sebagai bilangan positif, maka perhitungan menjadi 4*3*2*1.
int n; merupakan inisialisasi variabel n dengan tipe data integer sebagai proses perhitungan.
int faktorial(int k); merupakan inisialisasi variabel dengan nama faktorial yang dimana digunakan 
untuk melakukan perhitungan variabel yang akan dijadikan variabel dalam melakukan perhitungan secara rekursif.
printf("Masukkan sembarang bilangan positif"); adalah perintah awal untuk menginputkan bilangan positif yang akan diproses.
printf(\nMelalui perhitungan rekursif, %d!= %d\n",n,faktorial(m)); adalah perintah untuk mengeksekusi 
fungsi angka faktorialdimana angka akan terus berulang selama nilai variabel k belum bernilai 0, namun 
jika sudah benar (0) maka akan mengembalikan nilai k*faktorial(k-1);

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

*ALGORITMA :
Menggunakan tipe data integer, menginputkan kode barang, nama barang, harga barang,
jumlah barang, kemudian akan muncul total harga belanjanya, jika harga belanjanya
kurang dari sama dengan 5000 maka diskonnya 0, jika lebih dari sama dengan 100000
maka mendapatkan diskon,total yang harus dibayarkan adalah total belanja dikurangi diskon, jika 
total yang harus dibayarkan 230000 dan uang yang dibayar kekasir 250000 maka kembaliannya adalah 20000.
*C++
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
    char nm_brg [50],lnjt='Y';
    int diskon,Total_Belanja,bayar,kd_brg,jml_brg,hrg_brg,jml_uang,kembali;
    do{
        system("cls");
        cout<<"Program kasir sederhana"<<endl;
        cout<<"======================="<<endl;
        cout<<"Masukkan kode barang : ";cin>>kd_brg;
        cout<<"Masukkan nama barang : ";cin>>nm_brg;
        cout<<"Masukkan harga barang : ";cin>>hrg_brg;
        cout<<"Masukkan jumlah barang : ";cin>>jml_brg;
        cout<<"========================="<<endl;
        Total_Belanja=hrg_brg*jml_brg;
        cout<<"Total : Rp."<<Total_Belanja<<endl;
        cout<<"========================="<<endl;
        if(Total_Belanja<=5000){
        diskon=Total_Belanja*0;
        }
        else if(Total_Belanja>=100000){
            diskon=Total_Belanja*10/100;
        }
        cout<<"Diskon : Rp."<<diskon<<endl;
        bayar=Total_Belanja-diskon;
        cout<<"Total bayar : Rp."<<bayar<<endl;
        cout<<"========================"<<endl;
        cout<<"Masukkan jumlah uang : Rp.";cin>>jml_uang;
        cout<<"========================(-)"<<endl;
        kembali=jml_uang-bayar;
        cout<<"Kembali : Rp."<<kembali<<endl<<endl;
        cout<<"Brang yang sudah dibeli tidak dapat ditukar atau dikembalikan"<<endl;
        cout<<"Terimakasih atas kunjungan anda"<<endl<<endl;
        cout<<"Ulangi lagi [Y/T] : ";cin>>lnjt;
        cout<<endl<<endl;
    }while(lnjt=='Y');
    system("pause");


 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 :
};

jika anda ingin melengkapkan jawaban di atas silahkan kopas link dibawah ini.
no 1 sampai 3 ada di link ( eladwianggraini.blogspot.com )

no 4 sampai 6 ada di link ( hayupermatasari.blogspot.com )
Semoga bermanfaat teman-teman

Komentar

Postingan populer dari blog ini

perulangan bertingkat di C++

Diktat ke 7

Diktat Bab ke 3