BAB 3
. 1. Buatlah analisis dan
algoritma untuk mencari titik tengah sebuah garis yang
ujung titiknya adalah : A(x1,y1)
dan B(x2,y2).
Tulis rumus jarak 2 titik :
A=((X1+Y1)/2);
B=((X2+Y2)/2);
A=((X1+Y1)/2);
B=((X2+Y2)/2);
Formulasikan algoritmanya :
Deklarasi:
int A,B,X1,X2,Y1,Y2;
Deskripsi:
Baca (X1,X2.Y1,Y2)
A=((X1+Y1)/2);
B=((X2+Y2)/2);
Write (V)
2. 2. Buatlah algoritma
untuk mencari isi bola bila diketahui jari-jari bola.
Input : r.phi
Rumus isi bola : V=4/3*phi*r*r*r;
Algoritma :
Deklarasi:
Phi :
float {nilai
3,14, satuan cm}
R :
float {jari-jari
bola, satuan cm}
V :
float {volume
bola, satuan cm3}
Deskripsi:
Baca (phi)
Baca (r)
Vß4*phi*r*r*r
Write (V)
. 3. Buatlah analisis dan
algoritma untuk mencari hipotenusa dari segitiga Pythagoras bila diketahui sisi
siku-sikunya. (Petunjuk : gunakan fungsi sqrt yang menyatakan akar
dari). Tulis rumusnya lebih dulu : A2+B2 = C2
Analisis:
Kasus hipotenusa: H=sqrt(A*A+B*B)
Algoritma:
{membaca panjang sisi depan (A) dan alas
segitiga (B), dan menghitung hipotenusa dengan panjang sisi depan dan sisi alas
tertentu. Hipotenusa dihitung dengan rumus H=sqrt(A*A+B*B). nilai H dicetak
sebagai output}
Deklarasi:
A =
integer (input)
B = integer (input)
H=
float (output)
Deskripsi:
Read (A)
Read (B)
Hßsqrt(A*A+B*B)
Write (H)
. 4. Buatlah analisis dan
algoritma untuk menghitung konversi detik menjadi format jam:menit:detik Buat
contoh kasus, misalnya konversikan 1230 detik menjadi … jam … menit … detik.
Rumuskan algoritmanya :
Analisis:
Kasus jam : detik/3600
Kasus modulus: - sisa =
jam%3600
Sisa 2 =menit%60
Kasus menit : sisa/60
Kasus detik: detik=sisa 2
Algoritma:
{membaca jumlah detik (detik), dan
menghitung jam=detik/3600, menit/60. Nilai jam,
menit dan detik sebagai berikut}
Deklarasi:
Detik : integer
Jam : integer
Menit : integer
Sisa : integer
Sisa
2 : integer
Deskripsi:
Baca (detik)
Jamßjam/3600
Menitßmenit/60
Write (jam,menit,sisa).
5. 5. Buatlah analisis dan
algoritma untuk menghitung konversi dari jam:menit:detik ke detik Buat contoh
kasus, misalnya konversikan 2 jam 13 menit 43 detik menjadi … detik. Rumus yang
diperlukan :
j=jam*3600;
m=menit*60;
j=jam*3600;
m=menit*60;
Rumuskan algoritmanya :
Analisis:
Kasus: j =jam*3600
m=menit*60
Algoritma:
{membaca jumlah jam(jam), menit (menit),
detik (detik) dan menghitung dengan rumus h=j+m+detik}
Deklarasi:
Jam (integer)
Menit (intege)
Detik (integer)
Deskripsi:
Baca
(jam)
Baca
(menit)
Detik
(detik)
Hasil ßj+m+detik
Write
(hasil)
6. Buatlah analisis dan algoritma
untuk menghitung selisih 2 waktu. Output ditampilkan
dalam bentuk jam:menit:detik. Asumsikan
menggunakan sistem jam 24-an.
Buat contoh kasus, misalnya berapa
selisih waktu antara jam 3.45 sore dengan jam 10.23
malam. Selesaikan secara manual lebih
dulu.
Rumus yang digunakan, tulis di sini.
Rumuskan algoritmanya :
Analisis:
Kasus selisih detik:
If((detik.detik-detik.detik)<0){
det.detik = (60+detik.detik)-detik.detik;
men.menit*60-60;}
else{det.detik=detik.detik-deti.detik;}
kasus selisih menit:
if((menit.menit-meni.menit)<0){
men.menit=(60+meni.menit)-menit.menit;
j.jam*60-60;} else {
men.menit=menit.menit-meni.menit;}
kasus selisih jam:
j.jam=jam.jam-ja.jam;
Algoritma:
{membaca nilai waktu pertama
[jam(jam.jam), menit(menit),detik(detik)], nilai waktu kedua
[jam(ja.jam),menit(meni,menit), detik(deti.detik)]. Menghitung selisih dengan
mengurangkan waktu perjam dengan waktu kedua}
Deklarasi:
//function
Struct satu ();
Struct dua ();
Struct selisih ();
//didalam struct berisi:
jam (integer)
jenit (integer)
detik (integer)
//main ()
Jam, menit, detik
(satu)
Ja, meni, deti (dua)
J, men, det (selisih)
Deskripsi:
//waktu pertama
Baca jam.jam (integer)
Baca menit.menit
(integer)
Baca detik.detik
(integer)
//waktu kedua
Baca ja.jam (integer)
Baca meni.menit
(integer)
Baca detik.detik
(integer)
Write (j.jam,
men.menit, det.detik)
7. Buatlah analisis dan algoritma
untuk menghitung jumlah komponen sejumlah uang
menjadi pecahan-pecahannya. Misalkan Rp
188.875,- menjadi : 1 seratus ribuan, 1 lima
puluh ribuan, 1 dua puluh ribuan, 1
puluhan ribu, 1 lima ribuan, 3 ribuan, 1 lima ratusan,
1 dua ratusan, 1 ratusan, 1 lima
puluhan, 1 dua puluh limaan
Rumus yang digunakan :
Rumuskan algoritmanya :
8. [Pengamatan] Buatlah analisis
dan algoritma untuk menghitung luas sebuah plat CD.
Diameter lingkaran luar = …. cm.
Diameter lingkaran dalam = …. cm.
Rumus luas plat CD :
rumusD=phi*dalam*dalam;
rumusL=phi*luar*luar;
luasCD=rumusL-rumusD;
rumusD=phi*dalam*dalam;
rumusL=phi*luar*luar;
luasCD=rumusL-rumusD;
Buat algoritmanya :
Analisis:
Kasus rumusD:
Phi*dalam*dalam.
Kasus rumusL:
Phi*luar*luar.
Kasus luasCD:
rumusL-rumusD.
Algoritma:
{membaca jari-jari dalam(dalam) dan
jari-jari(luar). Menghitung luasCD dengan rumus rumusL-rumusD)
Deklarasi:
Dalam (integer).
Luar (integer).
rumusD (integer).
rumusL (integer).
luasCD (integer).
Phi (float,
nilai 3.14).
Deskripsi:
Baca (dalam).
Baca (luar).
luasCD ß rumusL-rumusD.
Write (luasCD).
9. Buatlah analisis dan algoritma
untuk menghitung operasi bilangan rasional :
penjumlahan, pengurangan, perkalian,
pembagian dan kebalikan.
Buat contoh kasus, misalnya dua bilangan
rasional 2/3 dan 4/7.
Hasil penjumlahan manual =
Hasil pengurangan manual =
Hasil perkalian manual =
Hasil pembagian manual =
Hasil kebalikan manual =
Rumus yang digunakan, tulis di sini :
bagi1=a/b;
bagi2=p/q;
bagi1=a/b;
bagi2=p/q;
10. Buatlah analisis dan algoritma
untuk mengkonversi bilangan biner 4 digit menjadi
bilangan desimal. Operator overloading
input mencegah user untuk memasukkan
bilangan selain 0 dan 1. Deklarasi
variabel input dan output adalah bertipe integer.
Konversikan 1011 ke desimal :
Buat algoritmanya :
Analisis:
Kasus biner 4 digit:
Switch(biner){
Case 1000
Case 1001
Case 1010
Case 1011
Case 1100
Case 1101
Case 1110
Case 1111
Algoritma:
{membaca nilai biner (biner), mencari
nilai desimal dengan menggunakan switch)
Deklarasi:
Biner (integer).
Deskripsi:
Baca (biner).
Switch (biner).
Write (case 1000, case 1001, case 1010,
case 1011, case 1100, case 1101, case 1110, case 1111).
11. Buatlah analisis dan algoritma
untuk menjumlah dua bilangan scientific berbentuk aEb
dengan 0 < a < 10 dan 0 <= b
<= 4.
Hitung 2.1E2 + 3.31E1 = secara manual
lebih dulu.
Buat algoritmanya :
12. Buatlah analisis dan algoritma
untuk menghitung jumlah dari dari dua tanggal yang
dimasukkan user. Misalnya, berapa hari
dari 6/1/90 sampai 8/3/92 ? Anggap satu tahun
365 hari dan anggap semua komponen
tanggal pertama SELALU LEBIH KECIL dari
komponen tanggal kedua.
Hitung secara manual kasus dalam soal.
Rumus yang digunakan, tulis di sini :
Buat algoritmanya :
Tidak ada komentar:
Posting Komentar