TUGAS BAB 5
Kelompok 08
Kelas C
Anggota:
1. 2000018166 - Muhammad Izza
2. 2000018167 - Alja Priambodo Pinem
3. 2000018177 – Laila Sekar Gupita
1. Buatlah fungsi fibonacci dengan cara iteratif. Algoritma membuat fungsi fibonacci {membuat fungsi fibonacci yang diinputkan nilainya sebelum ke piranti keluaran} Deklarasi n,c,first=0,second=1,next : integer x : integer Deskripsi read (n) for (c=0;c < n ; c++ )then if (c<=1) next = c else next <- first + second; first <- second; second <- next; write (next) endfor endif program C++ #include <iostream> using namespace std; int interatif (int x){ int n, c, first = 0, second = 1, next; cout <<"Masukan Nilai =";cin>>n;cout<<endl; cout <<"Nilai =" <<n<< " fibonacci:- " <<endl; for (c=0;c < n ; c++ ) { if (c<=1) next = c;
else { next = first + second; first = second; second = next; } cout<<next<<endl; } } int main(int argc, char** argv) { int x; interatif(x); return 0; } Hasil Run
2. Buatlah fungsi fibonacci dengan 2 cara rekursif yang lain Algoritma membuat fungsi fibonacci 2 cara rekursif {membuat fungsi fibonacci 2 cara rekursif yang diinputkan nilainya sebelum ke piranti keluaran} Deklarasi n,c,first=0,second=1,next : integer x : integer Deskripsi read (n) for (c=0;c < n ; c++ )then if (c<=1) next = c else next <- first + second; first=second; second=next; for (x=0;x<n;x++) if (x<=1) next=x; else next <- first + second; first=second; second=next; write (next) write (interatif(x),rekursif (x)) endfor endif program C++ #include <iostream> using namespace std; int interatif (int x){ int c,n,first = 0, second = 1, next; cout <<"Masukan Nilai =";cin>>n;cout<<endl; for (c=0;c < n ; c++ ) { if (c<=1) next = c; else { next = first + second; first = second; second = next; } cout<<next<<endl; }
} int rekursif (int x){ int n,next,first=0,second=1; cout <<"\nMasukan Nilai =";cin>>n;cout<<endl; for (x=0;x<n;x++){ if (x<=1) next=x; else{ next = first + second; first=second; second=next; } cout<<next<<endl; } } int main(int argc, char** argv) { int x; cout<<"Interatif ="<<interatif(x);cout<<endl; cout<<"Recurtif ="<<rekursif (x);cout<<endl; return 0; } Hasil Run : 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. Algoritma menghitung perkalian dan penjumlahan {menyempurnakan program penjumlahan dan perkalian dari program kasus 5.3} Deklarasi a,b,i : integer jumlah <- 0 : integer Deskripsi read (a,b) if (a>0 && a<0 || b>0)then for(i=1;i<=b;i++) jumlah+=a else if(b<0 && a<0) jumlah-=b else for(i=1;i<=a;i++) jumlah+=b endfor endif write (a,b) program c++ #include <iostream> #include <math.h> using namespace std; class hitung{ private: int a,b,i,jumlah=0; public: hitung(){ cout<<"Menghitung Perkalian dengan Penjumlahan"<<endl; cout<<"Masukan Nilai pertama = ";cin>>a; cout<<"Masukan Nilai Kedua = ";cin>>b; } void output(); }; void hitung::output(){ 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; } } int main(int argc, char** argv) { hitung x;
x.output(); return 0; } Hasil Run :
4.
Algoritma : algoritma rekrusif
(diberikan masukan a,b,I,jumlah)
Deklarasi :
I,n,jumlah,x:integer
Deskripsi:
Read (n)
jumlah←0
for i←1 to n do
read(x)
jumlah←jumlah+x
endifor ata←jumlah/n
write(rata)
5. #include <iostream>
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;
}
6. #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 !
Algoritma mencari jumlah deret
Deklarasi
n, jumlah, x : integer
rata : real
Deskripsi
jumlah 0
i 1
repeat
jumlah jumlah + (1/i)
i i+1
selisih (1/i)-(1/(i-1))
until abs(selisih) < 0.001
write(jumlah, i)
A. Kode Sumber
#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);
}
B. Tangkapan Layar Hasil
Algoritma 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.
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).
A. Kode Sumber
#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");
}
B. Tangkapan Layar Hasil
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 4.119.300 dan uang yang dibayar kekasir 10.500.000 maka kembaliannya adalah 6.380.700.
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
A. Kode Sumber
#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 << 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;
}
B. Tangkapan Layar Hasil