Senin, 04 April 2016

Diktat BAB 5

DI sini saya saya akan membuat program yang ada di diktat BAB5 

HALAMAN 120-121

1.Buatlah fungsi fibonacci dengan cara iteratif

 dengan c++

#include <iostream>


using namespace std;

int iteratif (int suku, int a, int b, int c)
{
a=0, b=1;

if (suku == 1) return b;
if (suku == 0) return a;

else{
for(int i=2; i<=suku; i++){

c = a + b;
a = b;
b = c;
}
return c;
}
}

int main()
{
int suku, a, b,c;

cout<<"Masukkan nilai suku ke-: ";

cin>>suku;
cout<<"\nBilangan fibonaccinya untuk "<<suku<<" adalah ";
cout<< iteratif ( suku,  a,  b,  c);
return 0;

}



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

dengan c++

#include <iostream>
using namespace std;
int nextTerm(int n){
int firstTerm = 0, secondTerm = 1;
int nextTerm;
cout << "Fibonacci Series: " << firstTerm << " " << secondTerm << " ";
for (int i = 1; i <= n-2; ++i) {
        nextTerm = firstTerm + secondTerm;
        cout<<nextTerm << " ";
        firstTerm = secondTerm;
        secondTerm = nextTerm;
    }
}
int main() {
    int n;
    cout << "Enter number of terms: ";
    cin >> n;
    nextTerm(n);
    return 0;

}


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. d atas

dengan c++

#include <iostream>
#include <math.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
    int a,b,i,jumlah=0;
    cout<<"Menghitung Perkalian dengan Penjumlahan"<<endl;
    cout<<"Masukan Nilai pertama = ";cin>>a;
    cout<<"Masukan Nilai Kedua   = ";cin>>b;
    if (a>0 && a<0 || b>0){
    for(i=1;i<=b;i++)
        jumlah+=a;
        cout<<a<<"x"<<b<<"="<<jumlah;
    }else if(b<0 && a<0){
        for(i=0;i>a;i--)
        jumlah-=b;
        cout<<a<<"x"<<b<<"="<<jumlah;           
    }else{
        for(i=1;i<=a;i++)
        jumlah+=b;
        cout<<a<<"x"<<b<<"="<<jumlah;
    }
    return 0;
}


4. Buatlah algoritma rekursif dari algoritma 5.3.



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

dengan c++

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,c,d;
    cout<<"masukan iteratif maupun rekursif "<<endl;
cin>>a>>b;
cout<<b<<a;
cout<<"hasil";
return 0;
}


dengan raptor




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

dengan c++

#include <iostream>
using namespace std;

int main()
{
int max,n,i,min;
float A[100];
cout <<"Masukkan Jumlah Data : ";cin>>n;
for(i=0;i<n;i++){
cout << "masukkan bilangan ke "<< i+1 << " : ";
cin >> A[i];}
max = A[0];
for (i=1;i<n;i++){
if (max < A [i])
max = A[i];
}

cout <<"Nilai Terbesar adalah : "<<max<<endl;

return 0;
}





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


dengan c++

#include <iostream>
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(void) {
int n;
int faktorial (int k);
printf("Masukkan sembarang bilangan positif : ");
scanf("%d",&n);
printf("\nMelalui perhitungan rekursif, %d! = %d\n",n,faktorial(n));
system("pause");
return 0;
}
int faktorial (int k){
if (k==0)
return 1;
else
return k*faktorial(k-1);
}




algoritman no 7.

Algoritma BAB 5 Nomor 7

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


dengan 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");
}

algoritma 


Algoritma BAB 5 Nomor 8


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.



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 :





dengan c++

#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;

class septiankonsvok{
private:
int i;
int vokal;
int konsonan;
int x;
char kalimat[20];
public:
septiankonsvok();
void input();
void proses();
void output();
};

septiankonsvok::septiankonsvok(){
cout<<"\t\tPEROGRAM MENGHITUNG HURUF KONSONAN DAN VOKAL\n";
cout<<"\t\t--------------------------------------------\n";
cout<<endl;
cout<<"Nama  : firmansyah"<<endl;
cout<<"Prodi :teknik informatika"<<endl;
cout<<endl<<endl;
}
void septiankonsvok::input(){
cout<<"::.silahkan masukkan kalimat.::\n";
cin.getline(kalimat,20);
}
void septiankonsvok::proses(){
i=0,vokal=0,konsonan=0;
x=strlen(kalimat);
for(i=0;i<x;i++)
{
if(kalimat[i]=='a'||kalimat[i]=='u'||kalimat[i]=='e'||kalimat[i]=='o')
vokal++;
konsonan++;
}
}
void septiankonsvok ::output(){
cout<<"Jumlah huruf vokal\t:"<<vokal<<"huruf"<<endl;
cout<<"Jumlah huruf konsonan\t"<<konsonan<<"huruf"<<endl;
}

int main()
{
septiankonsvok skv;
skv.input();
skv.proses();
skv.output();
return 0;
}





BAB 5 HALAMAN 110

1. cetaklah bilangan 1 sampai dengan 4 menggunakan downto.


Dengan c++


 #include <iostream>

using namespace std;

int main(){
cout <<"\n \t\t\tPROGRAM MENCETAK BILANGAN 1-4  \n";//Algoritma menceteak bilanagn 1 sampai 4
cout <<" \n\t\t\t     DENGAN PERULANGAN \n"; //{langsung mencetak bilanagn 1 sampai 4}

int b; //Deklarasi b=integer
for (b=1;b<=4;b++){ //read
cout<<b<<endl;
}

return 0;
}


dengan raptor 



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


dengan c++

#include <stdio.h>
#include <stdlib.h>
//  Tidak perlu modifikasi algoritma

int main(int argc, char *argv[]) {
printf("\t\t\tPROGRAM MENENTUKKAN HARI.\n\n\n");//Algoritam menentukan hari 
  //{masukkan integer 1 sampai 7, akan ditentukan hari apa yang sesuai}
int hari; //Deklarasi hari= integer;
printf("masukan hari ke- "); //Deskripsi 
scanf("%d", &hari); //read(hari);

switch (hari) //case(hari) of
case 1:puts("hari senin"); break; //1:hari<-'senin';
case 2:puts("hari selasa"); break; //2:hari<-'selasa';
case 3:puts("hari rabu"); break;   //3:hari<-'rabu';
case 4:puts("hari kamis"); break;  //4:hari<-'kamis';
case 5:puts("hari jumat"); break;  //5:hari<-'jumat';
case 6:puts("hari sabtu"); break;  //6:hari<-'sabtu';
case 7:puts("hari minggu"); break; //else hari<-'minggu';

default:puts("kode salah"); //endcase
} //write(hari)
return 0; 


dengan raptor 




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

dengan c++

#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
int a;
for(a=1;a<=100;a++){
if(a%3==0 && a%5==0){
cout<<"Bilangan habis dibagi 3 dan 5= "<<a;
cout<<endl;
}else{
}
}
return 0;
}


dengan raptor 




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

dengan c++


#include <iostream>
#include<conio.h>
#include<math.h>
using namespace std;

    class hitung
    {
    public:
           void input();
           int proses();
    private:
            int a;
            float bil,hasil,total;
            };
   
    void hitung::input(){
cin>>a;
    cout<<endl;}
   
    int hitung::proses(){
    hasil=0;
    total=0;
    bil=-1;
    for(int j=1; j<=a; j++){
    bil=(bil*(-1));
    total=bil/j;
    hasil+=total;
    if(j==1)
    cout<<"("<<bil<<"/"<<j<<")";
    if(j>1)
    cout<<" +("<<bil<<"/"<<j<<")";
    }
   
    cout<<endl<<endl<<"hasil penjumlahan deret = "<<hasil;
    return hasil;
    }
   
    int main()
    {
    cout<<"menghitung jumlah Hasil Deret 1-(1/2)+(1/3)-(1/4)+...+(1/n)"<<endl<<endl;
    cout<<"masukan nilai n : ";
    hitung deret;
    deret.input();
    deret.proses();
   
    getch();
    return 0;
    } 




dengan raptor








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 : ! ( , ) ( )!nP n rn r dan ( , ) ! !( )!
n
C n r
r n r

1. dengan c++


#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
/* Algoritma 5
1. Deklarasi
hasil,n,k : integer
proses[2],yesno[2]; character
2. 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 
Kelompok 4=1500018161*/

int faktorial(int N);

int main(void)

{
int hasil; 
int n,k, Y=1;
char proses[2];
char yesno[2];

while(Y) {

cout<<"\tMasukkan nilai n : "; 
cin>>n;
cout<<"\tMasukkan nilai k : ";
cin>>k; 

if(n<k){
cout<<"\tNilai n tidak boleh lebih kecil dari k\n";
}
else 
{
cout<<"\tPilih P (permutasi) atau C (kombinasi) : "; 
cin>>proses[0];
if (proses[0]=='p' || proses[0]=='P') 
{
hasil = faktorial(n)/faktorial(n-k);
cout<<"\n \n";
cout<<n<<"P"<<k<<" : "<<hasil;
}
else if (proses[0]=='c' || proses[0]=='C')
{
hasil = faktorial(n)/(faktorial(k) * faktorial(n-k));
cout<<"\n \n";
cout<<n<<"C"<<k<<" : "<<hasil;
}
else
cout<<"\n\tAnda tidak memilih P atau C"; 

cout<<"\n\tIngin mengulang? <y/n> "; 
cin>>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;
}
}
}

int faktorial(int N)
{
int F;
if (N<=1)
{
return(1);
}
else
{
F = N * faktorial(N-1);
return(F);
}
}









dengan raptor





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

dengan c++

#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
/* Algoritma 6
1. Deklarasi
desimal, pembagi, bit : long
pembagi=1073741824

3. 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")
Kelompok 4=1500018161 */

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






dengan raptor



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

dengan c++


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


































Tidak ada komentar:

Posting Komentar