top of page
Writer's pictureD A Rosi Arsida Wardani

Sekuen | Workshop 3

Updated: May 28, 2021

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)



12 views0 comments

Recent Posts

See All

One-dimensional Arrays

One-dimensional arrays are data structures that contain data types of the same type. In the form of a group of related memories...

Loop

Introduction Examples of algorithms in everyday life : Example 1 : To finish eating a plate of rice (initial conditions) Mouthfuls of a...

Kommentare


Post: Blog2_Post
bottom of page