Berikut penyelesaian soal tersebut:* Robot A berkepala 2 dan berkaki 3* Robot B berkepala 3 dan berkaki 4* Jumlah kepala yang dihitung = 22* Jumlah kaki yang dihitung = 31* Kita buat persamaan:** Jumlah Robot A = x** Jumlah Robot B = y ** Kepala Robot A = 2x** Kepala Robot B = 3y** Kaki Robot A = 3x ** Kaki Robot B = 4y* Maka didapat persamaan
Similar to Berikut penyelesaian soal tersebut:* Robot A berkepala 2 dan berkaki 3* Robot B berkepala 3 dan berkaki 4* Jumlah kepala yang dihitung = 22* Jumlah kaki yang dihitung = 31* Kita buat persamaan:** Jumlah Robot A = x** Jumlah Robot B = y ** Kepala Robot A = 2x** Kepala Robot B = 3y** Kaki Robot A = 3x ** Kaki Robot B = 4y* Maka didapat persamaan
Similar to Berikut penyelesaian soal tersebut:* Robot A berkepala 2 dan berkaki 3* Robot B berkepala 3 dan berkaki 4* Jumlah kepala yang dihitung = 22* Jumlah kaki yang dihitung = 31* Kita buat persamaan:** Jumlah Robot A = x** Jumlah Robot B = y ** Kepala Robot A = 2x** Kepala Robot B = 3y** Kaki Robot A = 3x ** Kaki Robot B = 4y* Maka didapat persamaan (20)
Berikut penyelesaian soal tersebut:* Robot A berkepala 2 dan berkaki 3* Robot B berkepala 3 dan berkaki 4* Jumlah kepala yang dihitung = 22* Jumlah kaki yang dihitung = 31* Kita buat persamaan:** Jumlah Robot A = x** Jumlah Robot B = y ** Kepala Robot A = 2x** Kepala Robot B = 3y** Kaki Robot A = 3x ** Kaki Robot B = 4y* Maka didapat persamaan
1.
2. Diberikan sebuah trapesium ABCD dengan
gambar sebagai berikut.
#include<iostream.h>
void main()
{ float Awal, Akhir, dx, TotalLuas;
float X, Y, Luasdx;
Awal = 20;
Akhir = 70;
dx = (Akhir - Awal) / 50;
TotalLuas = 0;
while(Awal < Akhir)
{ X = Awal + (0.5 * dx);
Y = X;
Luasdx = Y * dx;
TotalLuas = TotalLuas + Luasdx;
Awal = Awal + dx;
}
cout << TotalLuas;
}
dx=1
20 21
A
D
y
A’
D’
E’
E
X
Y
Y = x
A B
C
D
20 70
Trapesium ini dibentuk oleh empat buah garis :
y = 0,
y = x,
x = 20, dan
x = 70
Pandanglah satu bagian kecil disamping :
Luas A A’ D’ D = luas A A’ E’ E bila garis
tingginya diambil tepat diantara 20 dan 21
yaitu di 20.5
karena persamaan garis y = x,
maka tingginya = 20.5
sehingga luas A A’ E’ E
= dx kali y
= 1 x 20.5 = 20.5
CONTOH -1 Menghitung luas bidang yang dibatasi oleh garis
20
70
Secara matematik,
Luas trafesium ABCD,
Dapat dihitung
= (70 + 20 ) * 50 / 2
= 2250
Bila program ini di-RUN
Maka tercetak : 2250
3. 2.0
Luas = —— dx
1
x
0.5
= ln x
0.5
2.0
= ln 2.0 - ln 0.5
= 0.693147181 - -0.69314718
= 1.386294361
dx
y
0.5 2.0
//seperx.cpp
#include<iostream.h>
#include<math.h>
void main()
{ float x,y,dx,Luas,dluas;
dx = 0.0001;
Luas = 0.0;
for(x=0.5; x<2.0; x=x+dx)
{ y=1/x;
dluas = y * dx;
Luas = Luas + dluas;
}
cout << Luas;
}
Tercetak : 1.38616
Dengan program didapat Luas
area dari x = 0.5 sampai x=2.0
sebagai berikut :
Bila
dx
Maka
Luas =
0.1
0.01
0.001
0.0001
1.464406
1.398826
1.387040
1.386164
Mendekati perhitungan dengan
menggunakan integral (matematik)
Benarkah ?
— dx = ln x1
x
Hitung luas area yang dibatasi oleh :
y = — , y =0, x=0.5, dan x=2.0
1
x
∫∫
∫∫
CONTOH-2
Penyelesaian secara matematik
Menggunakan integral
Penyelesaian menggunakan program komputer
Makin kecil dx,
Makin teliti hasil
perhitungan
Jadi terbukti bahwa :
//seperxy.cpp
#include<iostream.h>
#include<iomanip.h>
#include<math.h>
void main()
{ float x,y,dx,Luas,dluas;
dx = 0.0001;
Luas = 0.0;
for(x=0.5; x<2.0; x=x+dx)
{ y=1/x;
dluas = y *
Luas = Luas
}
setiosflags(ios::fixed);
cout << setprecision(7) << Luas;
}
Tercetak : 1.386164
4. 2.0
Luas = ex
dx
0.0
= ex
= e2
- e0
0.0
2.0
= 2.718282
- 1
= 7.389046 – 1
= 6.389046
x e
x
e
x
*dx Total
0
0.05 1.051271 0.105127 0.105127
0.15 1.161834 0.116183 0.221311
0.25 1.284025 0.128403 0.349713
0.35 1.419067 0.141907 0.491620
0.45 1.568312 0.156831 0.648451
0.55 1.733252 0.173325 0.821776
0.65 1.915540 0.191554 1.013330
0.75 2.116999 0.211700 1.225030
0.85 2.339646 0.233965 1.458995
0.95 2.585708 0.258571 1.717565
1.05 2.857649 0.285765 2.003330
1.15 3.158190 0.315819 2.319149
1.25 3.490340 0.349034 2.668183
1.35 3.857422 0.385742 3.053926
1.45 4.263110 0.426311 3.480237
1.55 4.711465 0.471147 3.951383
1.65 5.206974 0.520697 4.472081
1.75 5.754596 0.575460 5.047540
1.85 6.359812 0.635981 5.683521
1.95 7.028678 0.702868 6.386389
Dihitung dengan Excel dengan dx = 0.1
//epngktx.cpp
#include<stdio.h>
#include<math.h>
void main()
{ float x,y,e, dx, dLuas, Luas;
e = 2.718282;
dx = 0.001; Luas = 0.0;
for(x=0.0005; x < 2.0; x=x+dx )
{ y = pow(e,x);
dLuas = y*dx;
Luas=Luas+dLuas;
}
printf("n %f ", Luas);
}
Tercetak : 6.389131
Benarkah
ex
dx = ex
6.386389
Bandingkan dengan Total (ex
* dx) mulai x = 0.0 sampai
dengan x=2.0 dengan dx = 0.001 yang dihitung
menggunakan program komputer (Bahasa C) berikut ini :
Dianggap sama
ex
dx = exJadi terbukti benar bahwa :
e = 2.71828
y = ex
y
x
1
2
Hitung luas area yang dibatasi oleh :
y=ex
, y =0, x=0, dan x=2
CONTOH-3
∫∫
∫∫
∫∫
5. Luas —— lingkaran =
1
4 y dx
= r2
– x2
dx
=
a2
–u2
du = —— u a2
-u2
+ —— a2
arc sin —— + C
1
2
1
2
u
a
— x r2
-x2
+ — r2
arc sin ——
1
2
1
2
x
r
0
8
= — 8 82
-82
+ — 82
arc sin ——
1
2
1
2
8
8
= — 8 82
-82
+ — 82
arc sin ——
1
2
1
2
8
8
= 0 = 32 arc sin 1
= 32 arc sin 1
= ——
π
2
= 32 ——
π
2
= 16 π
= 16 * 3.1416
= 50.2656 (ini luas seperempat lingkaran)
sin 90o
= 1
arc sin 1 = 90o
90o
dalam radian adalah = ——
π
2
Jadi luas lingkaran dengan
jari-jari = 8,
adalah 4 * 50.2656 = 201.0624
x
r2
– x2y =
dx
dLuas = y dx
0 8
r = 8
Soal
Hitung Luas Lingkaran
Bila jari-jari = 8 cm
Yang dihitung cukup seperempat
lingkaran, misal bagian yang berada
di kudran ke- I
Rumus yang digunakan :
sama dengan hasil
hitungan degan rumus
biasa yaitu : π r2
= 3.1416 * 64 = 201.0624
CONTOH-11
∫∫
∫∫
∫∫
π
6. //LuasL03a.cpp
#include<stdio.h>
#include<math.h>
void main()
{ float x,y, r, xx, dx,
midx, Luas,dluas;
r = 80000.0; dx=2.0;
midx = 1.0;
Luas = 0.0;
for(xx=0.0; xx<r; xx=xx+dx)
{ x = xx+midx;
y = sqrt(r*r - x*x);
dluas = y * dx;
Luas = Luas + dluas;
}
printf("%f", Luas);
}
Tercetak : 5026550784.000000
Bila r = 8.0
Tentunya Luas = 50.2655 0784
Bandingkan dengan perhitungan
menggunakan integral yang hasilnya
= 50.2656
Tercetak : 50265476.000000
//LuasL02b.cpp
#include<stdio.h>
#include<math.h>
void main()
{ unsigned long int x,r,
xx, midx, dx;
float y, dLuas, Luas;
dx=2; midx= 1;
r = 8000; Luas = 0;
for(xx=0; xx<r; xx=xx+dx)
{ x = xx + midx;
y=sqrt(r*r - x*x);
dLuas = y * dx;
Luas = Luas + dLuas;
}
printf("nn %f", Luas);
}
Bila r = 8
Tentunya Luas = 50.265 476
Bandingkan dengan perhitungan
menggunakan integral yang hasilnya =
50.2656
Bila luas 1 / 4 lingkaran dihitung dengan program komputer
7. Pada program pertama, jari-jari yang sebenarnya hanya 8 cm, dibuat menjadi 80000 cm, jadi
program ini membuat skala yang diperbesar 10 000 kali. Dengan dx = 2.0 berarti dx = 0.0002
(cukup kecil walaupun belum mendekati nol ). //pecahan.cpp
Pada program kedua, skala diperbesar 1000 kali
Hal ini dibuat untuk menghindari penyimpanan nilai dalam bentuk pecahan dalam tipe float atau
double, karena penyimpanan bilangan pecahan ketelitiannya terbatas.
#include<stdio.h>
void main()
{ float x,y;
y = 0.1;
printf(“n%20.18fn”, y);
for(x=0.0; x < 1; x = x + y)
{ printf("n%20.18f", x);
}
}
0.100000001490116119
0.000000000000000000
0.100000001490116119
0.200000002980232239
0.300000011920928955
0.400000005960464478
0.500000000000000000
0.600000023841857910
0.700000047683715820
0.800000071525573730
0.900000095367431641
0.100000
0.000000
0.100000
0.200000
0.300000
0.400000
0.500000
0.600000
0.700000
0.800000
0.900000
Dicetak dengan format
“ %20.18f” “ %f ”
Komputer tidak dapat menyimpan 0.1
dengan ketelitian 100 persen, walaupun bila
dicetak dengan format : “%f”, akan tercetak
0.100000,
Tetapi penyimpanan dalam komputer
sebenarnya = 0.100000001490116119. . . . .
8. Tercetak : 50.304272
Bila dicetak dengan format:
%22.18
Maka tercetak :
50.304271697998046900
//LuasL01.cpp
#include<stdio.h>
#include<math.h>
void main()
{ float r,x,y,dx,Luas,dluas;
r = 8.0; dx = 0.01;
Luas = 0.0;
for(x=0.0; x<r; x=x+dx)
{ y = sqrt(r*r - x*x);
dluas = y * dx;
Luas = Luas + dluas;
}
printf("%f", Luas);
}
Tercetak : 50.304264
//LuasL01a.cpp
#include<stdio.h>
#include<math.h>
void main()
{ float r,x,y,dx,Luas,dluas;
r = 8.0;
Luas = 0.0;
for(x=0.0; x<r; x=x+0.01)
{ y = sqrt(r*r - x*x);
dluas = y * 0.01;
Luas = Luas + dluas;
}
printf("%f", Luas);
}
Perhatikan hasilnya bila dipaksakan menggunakan bilangan pecahan ( float)
9. //LuasL01.cpp
#include<stdio.h>
#include<math.h>
void main()
{ float r,x,y,dx,Luas,dluas;
r = 8.0; dx = 0.02;
Luas = 0.0;
for(x=0.0; x<r; x=x+dx)
{ y=sqrt(r*r - x*x);
dluas = y * dx;
Luas = Luas + dluas;
}
printf("%f", Luas);
}
Tercetak : 50.343361
//LuasL01.cpp
#include<stdio.h>
#include<math.h>
void main()
{ float r,x,y,dx,Luas,dluas;
r = 8.0; dx = 0.002;
Luas = 0.0;
for(x=0.0; x<r; x=x+dx)
{ y=sqrt(r*r - x*x);
dluas = y * dx;
Luas = Luas + dluas;
}
printf("%f", Luas);
}
Tercetak : 50.274395
10. #include<iostream.h>
#define n 10
void main()
{ int I, K, X;
int A[n];
for(I=0; I<=n-1; I++)
{ cin >> A[I]; }
cout << "Sebelum disort : " ;
for(I=0; I<=n-1; I++)
{ cout << " " << A[I];}
cout << "n";
for(K=0; K <= n-2; K++)
{for(I=0; I <= n-2 - K; I++)
{ if (A[I] > A[I+1])
{ X = A[I];
A[I] = A[I+1];
A[I+1] = X;
}
}
}
cout << "Sesudah disort : ";
for(I=0; I<=n-1; I++)
{ cout << " " << A[I];}
}
Bubble Sort
Menginput 12 buah bilangan
bulat, dengan nilai acak
(tidak urut),
Kemudian mengurutkannya
menaik (sort ascending)
Dan mencetak hasil yang
telah urut menaik
11. Soal-6.
Sebuah toko mainan hanya menjual dua macam robot, Robot-A dan Robot-B.
Robot-A berkepala 2 dan berkaki 3. Robot B berkepala 3 dan berkaki 4. Dalam
toko tersebut mungkin hanya ada Robot-A, (karena Robot-B sudah habis terjual),
atau hanya ada Robot-B, atau kedua macam robot ada tersedia. Seorang anak
menghitung dari semua robot yang ada ternyata terdapat 22 kepala dan 31 kaki.
Ternyata terdapat 5 Robot A dan 4 Robot B.
Susun program untuk menginput dua buah nilai yang menyatakan jumlah kepala
dan jumlah kaki hasil hitungan anak tersebut. Kemudian hitung dan cetak ada
berapa buah Robot-A dan berapa buah Robot-B. Tetapi apabila anak tersebut
salah menghitung , maka cetak perkataan “Hitungan Salah”.
Contoh:
Bila diinput
untuk jumlah
Kepala Kaki Tercetak
5 7
6 8
6 9
7 9
7 10
8 12
9 12
9 13
9 14
10 14
10 15
10 16
22 31
1 1
0 2
3 0
Hitungan Salah
2 1
4 0
0 3
3 1
Hitungan Salah
2 2
5 0
Hitungan Salah
5 4
Tercetak :
x y
Jumlah
Robot-B
Jumlah
Robot-A
seharusnya
12. Misal jumlah robot A = X ,
dan jumlah robot B = Y
Bila diinput :
Jumlah kepala = 22
Dan jumlah kaki = 31,
Maka secara aljabar dapat
dibuat persamaan :
2X + 3Y = 22
3X + 4Y = 31
6X + 9Y = 66
6X + 8Y = 62
Y = 4
X = 5
Robot A = X
Robot B = Y
//Robot09
#include<iostream.h>
void main()
{ int a,b,Head,Foot,X,Y;
cin >> Head >> Foot;
X=3*Head; Y = 2*Foot;
b = X-Y;
a = (Head-3*b)/2;
if( a< 0 || b < 0)
cout << "Data Salah";
else
cout << a << " " << b;
}
13. Misal jumlah robot A = X ,
dan jumlah robot B = Y
Bila diinput :
Jumlah kepala = 22
Dan jumlah kaki = 31,
Maka secara aljabar dapat
dibuat persamaan :
2X + 3Y = 22
3X + 4Y = 31
6X + 9Y = 66
6X + 8Y = 62
Y = 4
X = 5
Robot A = X
Robot B = Y
//Robot1
#include<stdio.h>
void main()
{ int A, B, Ha,Fa,Hb,Fb, Head, Foot;
int Flag=0;
A=0;
scanf("%i %i", &Head, &Foot);
while(Flag==0 && A < Head/2)
{ A++; Ha=A*2; Fa=A*3;
Hb=Head-Ha; B=Hb/3;
if((A*2+B*3)==Head &&
(A*3+B*4) == Foot) Flag=1;
}
if(Flag==1) printf("%i %i",
A,B);
else printf("Tidak ada
Solusi");
}
14. Misal jumlah robot A = X ,
dan jumlah robot B = Y
Bila diinput :
Jumlah kepala = 22
Dan jumlah kaki = 31,
Maka secara aljabar dapat
dibuat persamaan :
2X + 3Y = 22
3X + 4Y = 31
6X + 9Y = 66
6X + 8Y = 62
Y = 4
X = 5
Robot A = X
Robot B = Y
//Robot1
#include<iostream.h>
void main()
{ int A, B, Ha,Fa,Hb,Fb, Head, Foot;
int Flag=0;
A=0;
cin >> Head >> Foot;
while(Flag==0 && A < Head/2)
{ A++; Ha=A*2; Fa=A*3;
Hb=Head-Ha; B=Hb/3;
if((A*2+B*3)==Head &&
(A*3+B*4) == Foot)
{ Flag=1; }
}
if(Flag==1) cout << A << " "
<< B;
else
cout << "Tidak ada Solusi";
}
15. Susun program untuk menginput sebuah bilangan integer lebih besar dari
nol. Kemudian cetak perkataan “Bujur Sangkar ” , bila bilangan yang diinput
tadi merupakan kwadrat suatu bilangan inteteger lain. Selainnya cetak
perkataan “Bukan Bujur Sangkar”.
Contoh :
Bila diinput : 49, maka cetak perkataan “Bujur Sangkar” karena 49 = 7
kwadrat atau 7 x 7
Bila diinput : 50, maka cetak perkataan “Bukan Bujur Sangkar”.
Soal.
Sebuah nilai integer, bila dibagi dengan nilai integer lain yang nilainya
berbeda, kemungkinan akan menghasilkan bilangan real. Contoh : 15 / 2 =
7.5 yang dalam programming dapat ditulis dengan Z = A/B, dimana Z
bertipe real (Bahasa C; float) , sedangkan X dan Y bertipe integer ( Bahasa
C : int ).
Susun program untuk menentukan nilai X dan Y bila diberikan (diinput) nilai
real Z.
Contoh:
Bila diinput : 3.1, maka X = 31 dan Y = 10
3.2 16 5
2.5 5 2
Soal.
16. Susun program (penggalan program) untuk menginputkan sebuah bilangan
integer lebih besar dari nol. Kemudian periksa apakah bilangan tersebut
adalah bilangan Perfect Number atau tidak. Bila ya, maka cetak “Perfect”,
bila tidak cetak perkataan “Not Perfect”.
Contoh bilangan perfect :
6 adalah bilangan perfect, karena 6 habis dibagi oleh : 1, 2, atau 3 ,
dan 1+2+3 = 6
28 adalah bilangan perfect,
karena 28 habis dibagi oleh : 1, 2, 4, 7, atau 14 dan 1+2+4+7+14 = 28
Sebuah bilangan bila dibagi dengan 2, 3, 4, 5, 6 maka sisanya = 1. Tapi bila
dibagi dengan 7 maka sisanya = 0. Bilangan tersebut mungkin lebih dari satu
buah.
Susun program untuk mencari dan mencetak satu yang terkecil dari
bilangan-bilangan tersebut.
Soal.
Soal.
17.
18. Sebuah kebun besar ditanami pohon bibit sebanyak n baris. Setiap baris
terdiri dari n pohon. Pohon-pohon tersebut kemudian dicabut dan ditanam
ulang menjadi 13 buah kebun dengan ukuran lebih kecil yaitu setiap kebun
kecil terdiri dari m baris dan setiap baris terdiri dari m pohon. Setelah
terbentuk 13 kebun kecil ukuran m x m, ternyata pada kebun besar masih
tersisa 1 pohon.
Susun program untuk mencetak berapa jumlah pohon semula yang ada di
kebun besar.