top of page
Writer's pictureD A Rosi Arsida Wardani

Perulangan / Loop | Workshop 5

Updated: May 28, 2021

Soal. Fungsi fibonacci dengan 2 cara rekrusif

Jawab :

Cara 1 :

fungsi fibonacci (input n : integer) : integer

Deskripsi :

if (n > 2) then

fibonacci ← fibonacci (n - 1) + fibonacci (n - 2)

else

fibonacci ← 1

end if


Program C++


#include <iostream>
using namespace std;

class hitung{
	friend istream& operator>>(istream&, hitung&);

	public :
		int n;
		cetak();
		int fibonacci (int n){
			if (n > 2){
				return (fibonacci (n - 1)+fibonacci (n - 2));
			}else{
				return (1);
			}	
		}
};

istream& operator>>(istream& in, hitung& input){
	cout<<"masukkan batas fibonacci : ";
  	in>>input.n;
	return in;
}

hitung::cetak(){
	int i;
	for(i=1; i<=n; i++){
		cout<<" "<<fibonacci(i);
	}
}

int main(){
	hitung x;
	
	cin>>x;
	x.cetak();

	return 0;
}

Hasil run :




Cara 2 :

fungsi fibonacci (input n, fib1, fib2 : integer) : integer

Deskripsi :

fib1 ← 0

fib2 ← 1

if (n = 0) then

fibonacci ← fib1

if (n = 1) then

fibonacci ← fib2

else

fibonacci ← fibonacci(n - 1, fib2, fib1 + fib2)

end if


Program C++


#include <iostream>
using namespace std;

class hitung{
	friend istream& operator>>(istream&, hitung&);

	public :
		int n;
		cetak();
		int fibonacci(int n, int fib1=0, int fib2=1){
			if (n==0){
				return fib1;
			}
			if (n==1){
				return fib2;
			}else{
				return fibonacci(n-1, fib2, fib1+fib2);
			}	
		}
};

istream& operator>>(istream& in, hitung& input){
	cout<<"masukkan batas fibonacci : ";
    in>>input.n;
	return in;
}

hitung::cetak(){
	int i;
	for(i=1; i<=n; i++){
		cout<<" "<<fibonacci(i);
	}
}

int main(){
	hitung x;
	
	cin>>x;
	x.cetak();

	return 0;
}

Hasil run :


 

Soal. Algoritma rekursif dari algoritma 5.3

Jawab :

Algoritma mencari_ratarata

{diberikan n data kemudian dicari rata-ratanya}

Deklarasi :

n, jumlah, x : integer

rata : real

Deskripsi :

read (n)

jumlah ← 0

function

rt (n : integer)

if (n = 0) then

return (n)

else

read (x)

jumlah ← jumlah + x

return (rt (n - 1))

end if

end function

rata ← jumlah / n

write (rata)


Program C++


#include<iostream>
using namespace std;

class hitung{
	friend ostream& operator<<(ostream&, const hitung&);
	friend istream& operator>>(istream&, hitung&);

	public :
		int jumlah=0;
		int x, n;
		float rata;
		rt(int n);
		outp();
};

istream& operator>>(istream& in, hitung& input){
	cout<<"Masukkan n : ";
	in>>input.n;
	return in;
}

hitung::rt(int n){
	if(n==0){
		return(n);
	}else{
		cout<<"Masukkan x : ";
		cin>>x;
		jumlah+=x;
		return(rt(n-1));
	}
}

hitung::outp(){
	rt(n);
	rata=jumlah/n;
	return rata;
}
		
ostream& operator<<(ostream& out, hitung& hasil){
	cout<<"Rata-rata = "<<hasil.outp();
	return out;
}


int main(){
	hitung x;
	
	cin>>x;
	cout<<x;

	return 0;
}

Hasil run :



 

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

Jawab :

1. Konsep counter :

a. Pertambahan tetap barang belanja yang diambil oleh kasir untuk kemudian discan barcode perbarang.

Bukti : kasir akan mengambil barang yang tergeletak dimeja kasir satu per satu untuk discan.

2. Konsep total :

a. Pertambahan barang di meja kasir yang dikembalikan oleh pembeli dari keranjang belanja.

Bukti : saat pembeli mengeluarkan / mengambil barang belanjaan dan keranjang belanja dan kemudian diletakkan di meja kasir akan bertambah. Oleh karena pembeli mengeluarkan barang tidak hanya satu, namun bisa dua atau lebih, maka jumlah barang dimeja kasir bertambah dengan pertambahan yang tidak konsisten.


Langkah yang dilakukan saat belanja :

a. mulai : kondisi awal sebelum belanja

i. mengambil kereanjang belanja yang masih kosong


b. proses : kegiatan apa saja yang dilakukan saat belanja

  1. memilih-milih barang yang ingin dibeli

  2. mengambil barang yang akan dibeli

  3. memasukkan barang tersebut ke dalam keranjang

  4. menuju ke kasir untuk melakukan pembayaran

  5. mengeluarkan barang belanjaan dari keranjang belanjaan ke meja kasir

c. akhir : berapa uang yang diserahkan ke kasir, berapa jumlah barang yang dibeli beserta jumlah uang yang harus dibayar dan uang kembalian (jika ada)

  1. membayar total hargra barang belanjaan ke kasir

  2. mengambil uang kembalian belanja

  3. mengambil barang belanjaan

4 views0 comments

Recent Posts

See All

One-dimensional Arrays

One-dimensional arrays are data structures that contain data types of the same type. In the form of a group of related memories...

Loop

Introduction Examples of algorithms in everyday life : Example 1 : To finish eating a plate of rice (initial conditions) Mouthfuls of a...

Comments


Post: Blog2_Post
bottom of page