Sabtu, 07 April 2018

WORKSHOP BAB 3 ALGORITMA PEMROGRAMAN


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);
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;
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;

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; 



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

WORKSHOP BAB 9

NO.1 : C++  : #include <iostream> #define maks 10 using namespace std; /* run this program using the console pauser or add your o...