Diktat (Workshop Pemrograman)
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);
B=((X2+Y2)/2);
Write (V)
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;
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 :
Inilah Outputnya :
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).
Inilah Programnya :
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 :
Inilah Programnya :
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 (integer)
Detik (integer)
Deskripsi:
Baca (jam)
Baca (menit)
Detik (detik)
Hasil ßj+m+detik
Write (hasil) Inilah Programnya :
Inilah Outputnya :
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 :
Inilah Outputnya :
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)
Inilah Programnya :
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 :
Inilah Programnya :
Inilah Outputnya :
Inilah Programnya :
Inilah Outputnya :
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 =
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 :
Inilah Programnya :
Inilah Outputnya :
Inilah Outputnya :
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 :
Inilah Programnya :
Inilah Outputnya :
Inilah Outputnya :
Tidak ada komentar:
Posting Komentar