Anda di halaman 1dari 7

Latihan

Algoritma dan Pemrograman 1

1.
Perhatikan flowchart di bawah ini ! buatlah kode program C++ berdasarkan flowchart tersebut
kemudian jelaskan apa yang dilakukan program tersebut.
Start

i=0

i < 10

increment i

i=0

input A[i]

i=0

i < 10

output A[i]

i < 10

increment i

increment i

i=0

tmp = A[i]
i < 10

A[i] = A[i+1]

output A[i]
A[i+1] = tmp

end

increment i

Kode Program :
#include <iostream>
using namespace std;
int main()
{
int i=0;
int A[i];
int tmp;
while(i<10) {
cin>>A[i];
i++;
}
while(i<10) {
cout<<A[i]<<endl;
i++;
}
while(i<10) {
tmp=A[i];
A[i]=A[i+1];
A[i+1]=tmp;
i++;
}
while(i<10) {
cout<<A[i]<<endl;
}
return 0;
}

Penjelasan Program
Program diatas merupakan sebuah program array dimana akan dimasukkan sebuah Angka(A)
sebanyak [i] yang disyaratkan kurang dari 10 (namun semenjak i=0 maka akan ada 10 inputan), dan
mencetaknya, setelah itu hal yang sama kembali dilakukan akan tetapi akan digunaknya fungsi
tambahan berupa tmp, yang berfungsi sebagai sebuah fungsi penyimpanan sementara oleh data
inputan A[i]. Yang dimana A[i] akan digantikan oleh sebuah fungsi baru bernama A[i+1], dimana A[i+1]
ialah sama namun akan dimulai dari i yang ditambah 1(2,3,4,5,etc) namun masih dalam batas <10,
dan fungsi tersebut akan dipindahkan ke fungsi temp, dan akan dicetak kembali

2.
lain

Sebuah apotek mempunya contoh data sebagai berikut dan masih diikuti dengan data yang

No
Kode Obat
1 C003
2 A002
3 A001

Kode Barcode
Nama Obat
9891234567004 CTM
9891234567006 Alopurinol
9891234567012 Alpi

Jumlah Transaksi
2
4
1

Jumlah Terjual
30
21
10

a. Buatlah deklarasi struct untuk menyimpan data transaksi obat diatas.


b. Perhatikan flowchart berikut! Buatlah kode program C++ berdasarkan flowchart di bawah ini
dan data apotek diatas (deklarasi struct yang telah anda deklarasikan). Selanjutnya jelaskan apa
yang dilakukan oleh program tersebut!
start

i=0

i < 10

input obat[i].no
input obat[i].kodeobat
input obat[i].kodebarcode
input obat[i].namaobat
input obat[i].jtrans
input obat[i].jterjual

increment i

i=0

increment i

i < 10

output X

X = X + obat[i].jterjual

end

Kode Program :
#include <iostream>
using namespace std;

int main()
{
struct obat{
char Kobat;
int Kobat1;
long double Kbar;
string Nama;
int Jtransaksi;
int Jjual;
}obt[10];
int i=0;
int X=0;
int main ();
while (i<10) {
cin>>obt[i].Kobat>>obt[i].Kobat1;
cin>>obt[i].Kbar;
cin>>obt[i].Nama;
cin>>obt[i].Jtransaksi;
cin>>obt[i].Jjual;
i++;
cout<<endl;
}
while (i<10) {
X=X+obt[i].Jjual;
i++;
}
cout<<X<<endl;
return 0;
}
Penjelasan Program: Program ini merupakan sebuah program pengolah data inputan user berupa
data-data mengenai obat yang telah disediakan oleh struct obat, obat yang dimasukkan akan
sebanyak [i] yaitu dengan syarat i<10(namun semenjak i=0 maka akan ada 10 inputan) 10 inputan
obat akan diteruskan ke fungsi selanjutnya untuk menghitung berapa banyak jumlah total obt[i].Jjual
lalu mencetaknya

3.

Perhatikan kembali flowchart no.2

a.
Di dalam flowchart no.2, terdapat mekanisme untuk menghitung jumlah total penjualan obat
untuk seluruh obat. Pisahkan mekanisme tersebut ke dalam fungsi tersendiri dan kembalikan hasil
penjumlahannya ke fungsi utama (main).
Kode untuk fungsi main (utama) dan deklarasi
struct:
#include <iostream>
using namespace std;
struct obat{
char Kobat;
int Kobat1;
long double Kbar;
string Nama;
int Jtransaksi;
int Jjual;
}obt[10];
int i=0;
int X=0;
int main()
{
while (i<10) {
cin>>obt[i].Kobat>>obt[i].Kobat1;
cin>>obt[i].Kbar;
cin>>obt[i].Nama;
cin>>obt[i].Jtransaksi;
cin>>obt[i].Jjual;
i++;
}
total();
cout<<X<<endl;
return 0;
}

Kode untuk fungsi menghitung total penjualan :


int total (){
while(i<10) {
X=X+obt[i].Jjual;
i++;
}
return X;
}

b.
Kemudian cobalah ubah fungsi yang anda buat menjadi prosedur dengan ketentuan pencetakan
hasil perhitungan total tetap dilakukan di fungsi main.
Kode untuk fungsi main (utama) dan deklarasi
struct:

#include <iostream>
using namespace std;
struct obat{
char Kobat;
int Kobat1;
long double Kbar;
string Nama;
int Jtransaksi;
int Jjual;
}obt[10];
int i=0;
int main()
{
while (i<10) {
cin>>obt[i].Kobat>>obt[i].Kobat1;
cin>>obt[i].Kbar;
cin>>obt[i].Nama;
cin>>obt[i].Jtransaksi;
cin>>obt[i].Jjual;
i++;
}
total();
cout<<X<<endl;
return 0;
}

Kode untuk prosedur menghitung total penjualan


:
void total (int &X){
while(i<10) {
X=X+obt[i].Jjual;
i++;
}
}