Algoritma mencari titik tengah sebuah garis yang ujung titiknya yaitu A(x1, y1) dan B(x2, y2)
Jawab :
Gambar :
Algoritma titik_tengah
{mencari titik tengah dari sebuah garis}
Deklarasi :
x1, x2, y1, y2, a, b : integer
Deskripsi :
read (x1, x2, y1, y2)
a ← (x1+x2)/2
b ← (y1+y2)/2
write (a, b)
Algoritma mencari isi/volume bola bila diketahui jari-jari bola
Jawab :
Algoritma volume_bola
{menghitung volume bola dari input jari-jari}
Deklarasi :
r : integer
v : float
Deskripsi :
read (r)
v ← 4/3*π*r3
write (v)
Analisis dan algoritma mencari hipotenusa dari segitiga pythagoras bila diketahui sisi siku-sikunya
Jawab :
Analisis : Untuk mencari hipotenusa, rumus yang digunakan yaitu a^2+b^2 = c^2.
a^2 bisa diubah menjadi a*a, b^2 bisa diubah menjadi b*b, lalu c^2 menjadi c*c. Yang dicari adalah c, maka rumusnya menjadi c = √(a*a)+(b*b). Ditulis dengan bahasa C++ menjadi c = sqrt((a*a)+(b*b))
Algoritma :
Algoritma hipotenusa
{menghitung hipotenusa dari input a dan b}
Deklarasi :
a, b, c : integer
Deskripsi :
read (a, b)
c ← sqrt((a*a)+(b*b))
write (c)
Analisis dan algoritma menghitung konversi detik menjadi format jam:menit:detik
Jawab :
Analisis : 1 jam = 3600 detik, 1 menit = 60 detik. Dengan demikian, untuk menghitung jam dari detik, menggunakan rumus jam = detik / 3600. Lalu, untuk menghitung menit dari detik, menggunakan rumus menit = (detik % 3600) / 60. Lalu untuk detik, yaitu sisanya, menggunakan rumus detik = (detik % 3600) % 60.
Algoritma :
Algoritma konversi_detik
{mengkonversi detik menjadi jam, menit, detik}
Deklarasi :
jam, menit, detik : integer
Deskripsi :
read (detik)
jam ← detik / 3600
menit ← (detik % 3600) / 60
detik ← (detik % 3600) % 60
write ("jam : menit : detik")
Analisis dan algoritma menghitung dari jam:menit:detik menjadi detik
Jawab :
Analisis : 1 jam = 3600 detik, 1 menit = 60 detik. Maka, untuk mencari detik dari jam, menggunakan rumus jam = jam*3600. Lalu, untuk mencari detik dari menit, menggunakan rumus menit = menit*60. Untuk mencari detik keseluruhan dari waktu tersebut, maka dijumlahkan detik dari jam, menit, dan detik, maka rumus akhirnya didapatkan total = jam+menit+detik
Algoritma :
Algoritma menghitung_detik
{mencari detik dari jam dan menit, lalu menjumlahkan jam, menit, dan detik}
Deklarasi :
detik, jam, menit, j, m : integer
Deskripsi :
read (detik)
j ← jam*3600
m ← menit*60
total ← j + m + detik
write (total)
Analisis dan algoritma menghitung selisih 2 waktu
Jawab :
Analisis :
Perhitungan manual :
10.23 – 3.45 = ?
Karena 23 kurang dari 45, maka 23+60, lalu bagian jam dikurangi 1 (60 menit).
Perhitungannya menjadi 09.83 – 3.45 = 06.38
Rumus :
Untuk menghitung selisih detik :
Apabila detik2 - detik1 kurang dari 0, maka :
detik = (60 + detik2) - detik1
Apabila detik2 - detik1 lebih dari 0, maka :
detik = detik2 - detik1
Untuk menghitung selisih jam dan menit :
Apabila menit2- menit1 kurang dari 0, maka :
menit = (60 + menit2) - menit1
jam = jam2 - jam1 - 1
Apabila menit2- menit1 lebih dari 0, maka :
menit = menit2 - menit1
jam = jam2 - jam1
Algoritma :
Algoritma selisih_waktu
{menghitung selisih dari dua waktu}
Deklarasi :
jam1, jam2, menit1, menit2, detik1, detik2, jam, menit, detik : integer
Deskripsi :
read (jam1, jam2, menit1, menit2, detik1, detik2)
if ((detik2 - detik1) < 0) then
detik ← (60 + detik2) - detik1
else
detik ← detik2 - detik1
end if
if ((menit2- menit1) < 0) then
menit ← (60 + menit2) - menit1
jam ← jam2 - jam1 - 1
else
menit = menit2 - menit1
jam = jam2 - jam1
end if
write ("jam : menit : detik")
Analisis dan algoritma menghitung jumlah komponen sejumlah uang menjadi pecahan-pecahannya
Jawab :
Analisis :
Rumus pecahan uang :
pecahan = uang / pecahan
uang = uang % pecahan
Untuk uang 100000
seratusribu = uang/100000
Untuk uang 50000
limapuluhribu = uang/50000
Untuk uang 20000
duapuluhribu = uang/20000
Untuk uang 10000
sepuluhribu = uang/10000
Untuk uang 5000
limaribu = uang/5000
Untuk uang 2000
duapuluhribu = uang/20000
Untuk uang 1000
seribu = uang/1000
Untuk uang 500
limaratus = uang/500
Untuk uang 200
duaratus = uang/200
Untuk uang 100
seratus = uang/100
Algoritma :
Algoritma pecahan_uang
{memecah uang menjadi pecahan-pecahan uang}
Deklarasi :
uang, seratusribu, limapuluhribu, duapuluhribu, sepuluhribu, limaribu, duaribu, seribu, limaratus, duaratus, seratus : integer
Deskripsi :
read (uang)
seratusribu ← uang / 100000
uang ← uang % 100000
limapuluhribu ← uang / 50000
uang ← uang % 50000
duapuluhribu ← uang / 20000
uang ← uang % 20000
sepuluhribu ← uang / 10000
uang ← uang % 10000
limaribu ← uang / 5000
uang ← uang % 5000
seribu ← uang / 1000
uang ← uang % 1000
limaratus ← uang/500
uang ← uang % 500
duaratus ← uang/200
uang ← uang % 200
seratus ← uang / 100
uang ← uang % 100
write ("seratusribu, limapuluhribu, duapuluhribu, sepuluhribu, limaribu, duaribu, seribu, limaratus, duaratus, seratus")
Analisis dan algoritma menghitung luas sebuah plat CD
Jawab :
Analisis :
Rumus luas plat CD : Luas lingkaran luar - Luas lingkaran dalam
Luas lingkaran luar = (diameter lingkaran luar/2)*(diameter lingkaran luar/2)*phi
Luas lingkaran dalam = (diameter lingkaran dalam/2) * (diameter lingkaran dalam/ diameter lingkaran luar)*phi
Misal diameter lingkaran luar adalah a, dan diameter lingkaran dalam adalah b, maka rumusnya :
luas lingkaran luar = (a/2)*(a/2)*phi;
luas lingkaran dalam = (b/2)*(b/a)*phi;
Rumus luas CD menjadi :
L = ((a/2)*(a/2)*phi) – ((b/2)*(b/a)*phi)
Algoritma :
Algoritma luas_plat
{menghitung luas plat CD dari input a dan b}
Deklarasi :
a, b , L : integer
Deskripsi :
read (a, b)
phi ← 3.14
L ← (((a/2)*(a/2)*phi)) – (((b/2)*(b/a)*phi))
write (L)
Analisis dan algoritma menghitung operasi bilangan rasional
Jawab :
Analisis :
Penjumlahan : (2/3) + (4/7) = (14/21) + (12/21) = (26/21) = 1(5/21)
Pengurangan : (2/3) - (4/7) = (14/21) - (12/21) = (2/21)
Perkalian : (2/3) * (4/7) = (8/21)
Pembagian : (2/3) / (4/7) = (2/3) + (7/4) = (14/12) = 1(2/12) = 1(1/6)
Kebalikan : (2/3) dibalik menjadi (3/2)
(4/7) dibalik menjadi (7/4)
Rumus : Misalkan a sebagai pembilang dan b adalah penyebut bilangan ke-1, lalu c
sebagai pembilang dan d sebagai penyebut bilangan ke-2, maka rumusnya :
a. Penjumlahan : (a/b) + (c/d) = ((a*d) + (c*b))/(b*d)
b. Pengurangan : (a/b) – (c/d) = ((a*d) - (c*b))/(b*d)
c. Perkalian : (a/b) * (c/d) = (a*c)/(b*d)
d. Pembagian : (a/b) / (c/d) = (a*d)/(b*c)
e. Kebalikan : (a/b) = (b/a)
Algortima :
Algoritma pecahan
{menghitung pecahan}
Deklarasi :
a, b, c, d, penjumlahan, pengurangan, perkalian, pembagian, kebalikan : integer
Deskripsi :
read (a, b, c, d)
penjumlahan ← (((a*d) + (c*b))/(b*d))
pengurangan ← (((a*d) - (c*b))/(b*d))
perkalian ← ((a*c)/(b*d))
pembagian ← ((a*d)/(b*c))
kebalikan ← (b/a)
write ("penjumlahan, pengurangan, perkalian, pembagian, kebalikan")
Analisis dan algoritma mengkonversi bilangan biner 4 digit menjadi bilangan desimal
Jawab :
Analisis :
1011 ke desimal :
1011 = (1*23)+(0*22)+(1*21)+(1*20)
= (1*8)+(0*4)+(1*2)+(1*1)
= 8+0+2+1
= 11
Algoritma :
Algoritma konversi_biner
{mengkonversi bilangan biner 4 digit menjadi bilangan desimal}
Deklarasi :
binary, desimal : long
Deskripsi :
read (binary)
b ← 1
desimal ← 0
binary ← binary / 10
desimal ← desimal + (binary%2) * (b*2)
write (desimal)
Analisis dan algoritma menjumlah dua bilangan scientific
Jawab :
Analisis :
2.1E2 + 3.31E1 = 2.1*102 + 3.31*101
= 210 + 33.1
= 243.1
Berdasar perhitungan di atas, maka rumus dari perhitungannya ;
apabila b dan d = 0, maka :
sci0=a+c
apabila b dan d = 1, maka :
sci1=(a*10)+(c*10)
apabila b dan d = 2, maka :
sci2=(a*100)+(c*100)
apabila b dan d = 3, maka :
sci3=(a*1000)+(c*1000)
apabila b dan d = 4, maka :
sci4=(a*10000)+(c*10000)
Algoritma :
Algoritma bilangan_scientific
{menjumlah dua bilangan scientific}
Deklarasi :
a, b, c, d, sci0, sci1, sci2, sci3, sci4, sci : integer
Deskripsi :
read (a, b, c, d)
if (b =0 And d = 0) then
sci0 ← a+c
else if (b =1 And d = 1) then
sci1 ← (a*10)+(c*10)
else if (b =2 And d = 2) then
sci2 ← (a*100)+(c*100)
else if (b =3 And d = 3) then
sci3 ← (a*1000)+(c*1000)
else if (b = 4 And d = 4) then
sci4 ← (a*10000)+(c*10000)
end if
write (sci)
Analisis dan algoritma menghitung jumlah dari dua tanggal yang dimasukkan user
Jawab :
Analisis :
6/1/90 sampai 8/3/92 :
tahun = 92-90
= 2
tahun ke hari = 2*365
= 730
hari bulan = 3-1
= 2
bulan ke hari = 2*30
= 60
hari tanggal = 8-6
= 2 hari
jumlah hari = 730+60+2
= 792 hari
Berdasarkan perhitungan di atas, didapatkan rumus :
tahun = (tahun2 - tahun1)*365
bulan = (bulan2 - bulan1)*30
hari = hari2 - hari1
jumlah = tahun + bulan + hari
Algoritma :
Algoritma jumlah_hari
{menghitung jumlah hari dari tanggal yang diinputkan}
Deklarasi :
tahun, bulan, hari, jumlah, tahun1, tahun1, bulan1, bulan2, hari2, hari1 : integer
Deskripsi :
read (tahun1, tahun1, bulan1, bulan2, hari2, hari1)
tahun ← (tahun2 - tahun1)*365
bulan ← (bulan2 - bulan1)*30
hari ← hari2 - hari1
jumlah ← tahun + bulan + hari
write (jumlah)
Kommentare