Professional Documents
Culture Documents
PEMROGRAMAN MODULAR
TUJUAN
Memahami dasar-dasar pemrograman C++.
Memahami konsep variabel lokal dan variabel global dalam pemrograman.
Memahami konsep fungsi dan prosedur dalam pemrograman modular.
Memahami konsep passing by value dan passing by reference dalam
pemrograman dengan fungsi maupun prosedur.
Memahami pengaplikasian pemrograman modular pada C++.
TUGAS PENDAHULUAN
1. Jelaskan tentang konsep variabel lokal dan variabel global serta
perbedaannya.
2. Jelaskan tentang konsep fungsi dan prosedur, perbedaan keduanya, serta
aplikasinya dalam pemrograman dengan C++.
3. Jelaskan tentang konsep passing by value dan passing by reference,
perbedaannya, serta aplikasinya dalam pemrograman dengan Bahasa C++.
4. Buatlah flowchart dan pseudocode (notasi algoritma) dari program pada soal
di bawah ini, lalu lakukan trace terhadap flowchart yang anda buat sehingga
yakin bahwa flowchart tersebut sudah benar.
SOAL
1. Buatlah program untuk menghitung luas dan keliling bangun datar berikut
dengan menggunakan konsep fungsi:
a. Persegi
b. Persegi Panjang
c. Segitiga (termasuk juga segitiga sembarang)
d. Lingkaran
e. Trapesium
f. Jajargenjang
g. Belah Ketupat
h. Layang-layang
2. Buatlah program untuk menghitung volume dan luas permukaan bangun ruang
berikut dengan menggunakan konsep prosedur:
a. Kubus
b. Balok
c. Bola
d. Limas Segitiga (termasuk juga limas segitiga sembarang)
e. Limas Segiempat
f. Prisma Segitiga (termasuk juga prisma segitiga sembarang)
Jawaban
#include <iostream>
using namespace std;
bool prima(int n) {
int i, jml;
jml = 0 ;
for (i=1;i<=n;i++) {
if (n % i == 0) {
jml ++ ; }
}
if (jml == 2) {
return (true); }
else {
return(false) ; }
}
Int main() {
int j, n, cacah ;
cout << "Masukkan Batas bilangan : " ; cin >> n ;
cout << "Berikut Bilangan itu : " << endl ;
cacah = 0 ;
for (j=1;j<=n;j++) {
if (prima(j) == true) {
cout << j << " " ;
cacah ++ ;
}
}
cout << "\nBanyak bilangan prima adalah : " << cacah << endl ;
return 0;
}
Kode Program 2.1. Contoh Fungsi dalam C++
#include <iostream>
using namespace std;
void penjualan (float a, float b, float c) {
float total, temp ;
temp = b * c ;
total = temp - (a * temp) ;
cout << "Harga Kotor Barang : " << temp << endl ;
cout << "Harga Bersih Barang : " << total << endl ;
}
int main() {
float diskon, harga, jumlah ;
float total, temp ;
cout << "PROGRAM HITUNG HARGA BARANG" << endl ;
cout << "===========================" << endl << endl ;
cout << "Masukkan harga barang : " ; cin >> harga ;
cout << "Masukkan jumlah barang : " ; cin >> jumlah ;
cout << "Masukkan diskon barang : " ; cin >> diskon ;
cout << "\n" ;
penjualan(diskon, harga, jumlah) ;
return 0;
}
Kode program 2.2. Contoh Prosedur
Pseudocode
Deklarasi:
Sisi: int
luas, keliling: real
Proses :
read : sisi
luas =sisi*sisi
keliling = 4*sisi
return (luas,keliling)
Trace:
Input : sisi = 4
Proses :
Luas = 4*4
Keliling = 4*4
Output : 16 16
b) Persegi Panjang
Flowchatnya
Pseudocode
Deklarasi:
p,l: int
luas, keliling: real
Proses :
read : p,l
luas =p*l
keliling = 2*(p+l)
return (luas,keliling)
Trace:
Input : p = 4, l=2
Proses :
Luas = 4*2
Keliling = 2*(4+2)
Output : 8 16
Pseudocode
Deklarasi:
a,b,c,s: double
luas, keliling: real
Proses :
read : a,b,c
Keliling =a+b+c
S= * keliling
Luas = akar(s*(s-a)*(s-b)*(s-c))
return (luas,keliling)
Trace:
Input : a = 2, b=2 c=2
Proses :
Keliling = 2+2+2
S = *6
Luas = akar(3*(3-2)*(3-2)*(3-2))
Output : 6 akar3
d) Lingkaran
Flowchatnya
Pseudocode
Deklarasi:
r: double
luas, keliling: real
Proses :
read : r
Luas = 3,14 *r*r
Keliling = 2*3,14 * r
return (luas,keliling)
Trace:
Input : r=2
Proses :
Luas = 3,14 *2*2
Keliling = 2*3,14 * 2
Output : 12.56 12.56
e) Trapesium
Flowchatnya
Pseudocode
Deklarasi:
sSejajar1,sSejajar2,t,s1.s2: double
luas, keliling: real
Proses :
read : sSejajar1,sSejajar2,t,s1.s2
Luas = (sSejajar1+ sSejajar2) * t
Keliling = sSejajar1+ sSejajar2 + s1 +s2
return (luas,keliling)
Trace:
Input : sSejajar1=2,sSejajar2=2,t=2,s1=2,s2=2
Proses :
Luas = (2+ 2) * 2
Keliling = 2+ 2 + 2 +2
Output : 4 8
f) Jajargenjang
Flowchatnya
Pseudocode
Deklarasi:
a,t,s1,s2: int
luas, keliling: real
Proses :
read : a,t,s1,s2
Luas = a * t
Keliling =2*(s1 + s2)
return (luas,keliling)
Trace:
Input : a=2,t=2,s1=3,s2=3
Proses :
Luas = 2* 2
Keliling =2*(3 + 3)
Output : 4 12
g) Belah Ketupat
Flowchatnya
Pseudocode
Deklarasi:
d1,d2, sisi: int
luas, keliling: real
Proses :
read : d1,d2, sisi
Luas = * (d1*d2)
Keliling = 4*sisi
return (luas,keliling)
Trace:
Input : d1=2,d2=2, sisi=4
Proses :
Luas = * (2*2)
Keliling = 4*4
Output : 2 16
h) Layang-layang
Flowchatnya
Pseudocode
Deklarasi:
d1,d2, sisi1, sisi2: int
luas, keliling: real
Proses :
read : d1,d2, sisi1, sisi2
Luas = * (d1*d2)
Keliling = 2* (sisi1 + sisi2)
return (luas,keliling)
Trace:
Input : d1=2, d2=3, sisi1 =4, sisi2 = 5
Proses :
Luas = * (2*3)
Keliling = 2*(4+5)
Output : 3 18
i) Bangun datar
Flowchatnya
Gambar 4.9. Flowchat dari Bangun Datar
Pseudocode
Deklarasi
pilih=int
Proses
read (pilih)
if pilih =1
input sisi
panggil kubus(sisi)
else if pilih =2
input p,l
panggil persegi panjang(p,l)
else if pilih =3
input : a, b, c
panggil segitiga sembarang (a,b,c)
else if pilih =4
input : r
panggil lingkaran (r)
else if pilih =5
input : sSejajar1,sSejajar2,t,s1,s2
panggil trapesium (sSejajar1,sSejajar2,t,s1,s2)
else if pilih =6
input : a,t,s1,s2
panggil jajargenjang(sSejajar1,sSejajar2,t,s1,s2)
else if pilih =7
input : d1,d2, sisi
panggil belahketupat(d1,d2, sisi)
else if pilih =8
input : d1,d2, sisi1,sisi2
panggil layanglayang(d1,d2, sisi1,sisi2)
else
print :input pilih salah
end if
Trace:
Input : pilih =1;
Proses :
input : sisi=4
Luas = 4*4
Keliling = 4*4
Output : 16 16
b. Program untuk menghitung volume dan luas permukaan bangun ruang yaitu
a) Kubus
Flowchatnya
Gambar 4.10. Flowchat Penghitungan dari Kubus
Pseudocode
Deklarasi:
s: int
V, Lp: real
Proses :
V =s*s*s
LP = 6*s*s
print(V, Lp)
Trace:
Input : s =2
Proses :
V = 2*2*2
Lp = 6*2*2
Output : 8 24
b) Balok
Flowchatnya
Gambar 4.11. Flowchat Penghitungan dari Balok
Pseudocode
Deklarasi:
p,l,t: int
V, Lp: real
Proses :
V =p*l*t
Lp = 2x((pxl)+(pxt)+(lxt))
print (V, Lp)
Trace:
Input : p = 4, l=2, t=2
Proses :
V = 4*2*2
Lp = 2x((4x2)+(4x2)+(2x2))
Output : 16 38
c) Bola
Flowchatnya
Pseudocode
Deklarasi:
r: double
V, Lp: real
Proses :
V =4/3*3.14*r*r*r
Lp = 4*3.14*r*r
print (V, Lp)
Trace:
Input : r = 4
Proses :
V = 4/3*3.14*4*4*4
Lp = 4*3.14*4*4
Output : 66.98 200.96
d) Limas Segitiga (termasuk juga limas segitiga sembarang)
Flowchatnya
Pseudocode
Deklarasi:
a,b,c,t,s,alas : double
V, Lp: real
Proses :
s = (a+b+c)
La = akar(s*(s-a) * (s-b) * (s-c))
V =La*t
Lp = La+3*(alas*t)
print(V, Lp)
Trace:
Input : a=2, b=2, c=2, t=2, alas=2
Proses :
s = (2+2+2)
La = akar(3*(3-2) * (3-2) * (3-2))
V = akar 3*2
Lp = akar 3 +3*(2*2)
Output : 3 13.73
e) Limas Segiempat
Flowchatnya
Pseudocode
Deklarasi:
a,b,c,t,s : double
V, Lp: real
Proses :
La = s*s
V =La*t
Lp = La+4*(alas*t)
print(V, Lp)
Trace:
Input : a=2, b=2, c=2, t=2, s=3
Proses :
La = 3*3
V = 9*2
Lp = 9+4*(2*2)
Output : 18 25
f) Prisma Segitiga (termasuk juga prisma segitiga sembarang)
Flowchatnya
Pseudocode
Deklarasi:
a,b,c,t,s : double
V, Lp: real
Proses :
s = (a+b+c)
La = akar(s*(s-a) * (s-b) * (s-c))
V =La*t
Lp = La+(a+b+c)*t
print(V, Lp)
Trace:
Input : a=2, b=2, c=2, t=2, s=3
Proses :
s = (2+2+2)
La = akar(3*(3-2) * (3-2) * (3-2))
V = akar 3*2
Lp = akar 3 +(2+2+2)*2
Output : 3 13.73
g) Bangun ruang
Flowchatnya
Proses
read (pilih)
if pilih =1
panggil kubus()
else if pilih =2
panggil balok()
else if pilih =3
panggil bola()
else if pilih =4
panggil limassegitiga()
else if pilih =5
panggil limassegiempat ()
else if pilih =6
panggil prismasegitiga()
else
print :input pilih salah
end if
Trace:
Input : pilih =1;
Proses :
Input : s =2
V = 2*2*2
Lp = 6*2*2
Output : 8 24