Assalamualaikum Wr Wb.
Disini saya akan membahas tentang Workshop 6 Algoritma Pemrograman
Langsung saja...
Kasus 6.1
Hitung rata-rata dari n bilangan bulat dengan menggunakan array!
Algoritma :
Deklarasi : Integer i,jumlah;
Deskripsi : jumlah=0;
for i=1 to n do;
jumlah = jumlah +x[i]
end for;
rata = jumlah/n
Ini Flowchart nya :
Ini Source Code C++ nya :
#include <iostream>
#include <cstdlib>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class HitungRATA {
friend ostream& operator<<(ostream&, HitungRATA&);
friend istream& operator>>(istream&, HitungRATA&);
public:
float rata();
private:
int n;
int A[20];
};
istream& operator>>(istream& in, HitungRATA& a) {
cout << "Banyaknya data : ";
in >> a.n;
for (int i = 0; i < a.n; i++) {
cout << "Masukkan data ke- : " << i+1 << " > ";
cin >> a.A[i];
}
return in;
}
float HitungRATA::rata() {
float total=0;
for (int i = 0; i<n; i++) total = total + A[i];
return(total/n);
}
ostream& operator<<(ostream& out, HitungRATA& a) {
cout << "Rata-rata dari " << a.n;
cout << " bilangan adalah : "<< a.rata();
return out;
}
main() {
HitungRATA run;
cin >> run;
cout << run;
return 0;
}
Kasus 6.3
Algoritma untuk menentukan nilai maksimum dari n bilangan.
Algoritma :
Deklarasi : integer i,temp;
deskripsi : temp=data[1];
for i=2 to n do;
temp=maksimum2(temp,data[i]);
maksimum=temp;
Ini Flowchartnya :
Ini Source Code C++ nya :
#include <iostream>
#include <math.h>
using namespace std;
class HitungStatistik {
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);
public:
int maksimum();
private:
int maksimum2(int, int);
int n;
int A[20];
};
istream& operator>>(istream& in, HitungStatistik& a)
{
cout << "Banyaknya data : ";
cin >> a.n;
for (int i = 0; i < a.n; i++)
{
cout << "Data ke- : " << i+1 << " > ";
cin >> a.A[i];
}
return in;
}
int HitungStatistik::maksimum2(int a, int b)
{ if (a>b) return(a);
else return(b);
}
int HitungStatistik::maksimum()
{ int temp = A[0];
for (int i = 1; i<n; i++)
temp = maksimum2(temp, A[i]);
return(temp);
}
ostream& operator<<(ostream& out, HitungStatistik& a) {
cout << "Nilai terbesar: " << a.maksimum();
return out;
}
main() {
HitungStatistik run;
cin >> run;
cout << run;
return 0;
}
Kasus 6.5
Modus dari n buah data berupa bilangan bulat (data antara 1 sampai dengan 10).
Analisis :
Modus adalah bilangan (data) yang paling sering muncul. Dengan kata lain, frekuensi data terbesarlah yang dicari.
Langkah penyelesaian masalahnya adalah :
- setiap jenis data dihitung frekuensi kemunculannya
- dari frekuensi-frekuensi tersebut dicari frekuensi terbesarnya.
Algoritma :
Deklarasi : integer i;
Deskripsi : maks=data[1]
item=1;
for i=2 to n do;
if(data[i]>maks)then
maks=data[i];
item=i;
endif
endfor;
Ini Flowchart nya :
Ini Source Code C++ nya :
#include <iostream>
#include <math.h>
using namespace std;
class HitungStatistik {
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);
public:
HitungStatistik();
void hitung_modus();
private:
void maksimum();
void frekuensi();
int maks, item;
int n;
int A[20];
int f[11];
};
HitungStatistik::HitungStatistik()
{ for (int i=0; i<20; i++) f[i] = 0; }
istream& operator>>(istream& in, HitungStatistik& a) {
cout << "Banyaknya data : ";
cin >> a.n;
for (int i = 0; i < a.n; i++) {
cout << "Data ke- : " << i+1 << " > ";
cin >> a.A[i];
}
return in;
}
void HitungStatistik::maksimum()
{
maks = f[0];
item = 1;
for (int i=0; i<n; i++)
if (f[i] > maks) {
maks = f[i];
item = i;
}
cout << "Modus = " << item;
}
void HitungStatistik::frekuensi()
{
for (int i=1; i<n; i++) ++f[A[i]];
}
void HitungStatistik::hitung_modus() {
cout << "Frekuensi running\n";
frekuensi();
maksimum();
}
ostream& operator<<(ostream& out, HitungStatistik& a) {
cout << "Mulai ...\n";
a.hitung_modus();
cout << "Nilai modus : " << a.item;
return out;
}
main() {
HitungStatistik run;
cin >> run;
cout << run;
return 0;
}
Sekian dan Terima Kasih.






Tidak ada komentar:
Posting Komentar