algoritma dan pengetahuan terkait (menghitung, konversi, dll)
DESCRIPTION
source by : Sugeng Supriyadi S.Kom, M.KomTRANSCRIPT
Menghitung luas segitiga bila diketahui alas dan tinggi segitiga tersebut
Soal-5.
Susun algoritma yang ditulis dalam Bahasa C++, untuk menginput alas dan tinggi sebuah segitiga, kemudian mencetak luas segitiga tersebut.
?
75
7 5 ?A T L
A untuk AlasT untuk Tinggi, danL untuk Luas
cin cout
Soal-5.
Susun algoritma yang ditulis dalam Bahasa C++, untuk menginput alas dan tinggi sebuah segitiga, kemudian mencetak luas segitiga tersebut.
17.5
75
7 5 17.5
A T L
A untuk AlasT untuk Tinggi, danL untuk Luas
cin cout
Rumus menghitung Luas sebuah Segitiga
Kadang-kadang :
Lebih sulit : Mencari , memahami dan
menggunakan
Rumus, dibandingkan menulis algoritma
harus
dapat ditulis setelah
dan konsep atau draf secara manual sudah
dibuat
Yang harus dipahami dan Dikuasai
sebelumnya
RUMUS menghitung Luas sebuah segitiga :
LUAS = ALAS * TINGGI / 2
LUAS = (ALAS * TINGGI) / 2
LUAS = ALAS * ( TINGGI / 2)
LUAS = ALAS * TINGGI * 0.5
LUAS = 0.5 * ALAS * TINGGI
atau
atau
atau
atau
atau dan sebagainya yang valid
DALAM BEBERAPA HAL (KASUS), RUMUS TIDAK DIBERITAHUKAN
PEMBUAT ALGORITMA HARUS MENGETAHUINYA SENDIRI
TIDAK MENGETAHUI RUMUS TIDAK DAPAT MEMBUAT ALGORITMA
BUKANPERSOALAN
MATEMATIKA
KONSEP penyelesaian
Draf
7 5
17.5
Alas Tinggi
Luas
Luas = Alas * Tinggi / 2
Algoritma yang ditulis dalam suatu Bahasa Pemrograman disebut PROGRAM
#include <iostream.h>void main(){ float A, T, L; cin >> A; cin >> T;
L = A * T / 2;
cout << L;}
Cara-1
START
cin
cin
cout
L = A * T / 2
END
A
T
L
Program Flowchart
Dua instruksi ini dapat digabung menjadi satu instruksi :
cin >> A >> T;
cin A,T
C++
#include <iostream.h>void main(){ float A, T, L; cin >> A; cin >> T;
L = A * T / 2;
cout << L;}
Cara-1 C++
7517.5
Karena ada kemungkinan mengandung nilai
pecahan, maka digunakan tipe data :
float
Menulis program, memerlukan pengtahuan mengenai :
BAHASA Pemograman yang digunakanFloating point Single Precission
#include <iostream.h>void main(){ float A, T, L; cin >> A; cin >> T;
L = A * T / 2;
cout << L;}
Cara-1 C++
12630
Walaupun tipe data : floatTapi tercetak bukan : 30.0
#include <iostream.h>void main(){ int A, T, L; cin >> A; cin >> T;
L = A * T / 2;
cout << L;}
Cara-1 C++
7517
Bagaimana bila menggunakan tipe
data : intinteger
7 * 5 = 3535 / 2 = 17
Bukan : 17.5
#include <iostream.h>void main(){ float A,T, L; cout << " Alas : " ; cin >> A; cout << " Tinggi : " ; cin >> T; L = A * T / 2; cout << " Luas : " << L;}
Alas : 7Tinggi : 5Luas : 17.5
#include <iostream.h>void main(){ float A,T, L; cout << " Alas : " ; cin >> A; cout << " Tinggi : " ; cin >> T; L = A * T / 2; cout << " Luas : " << L;}
Atau :
Meng-konversi derajat Celcius ke derajat Fahrenheit
Soal-6.
Susun algoritma yang ditulis dalam Bahasa C++, untuk menginput sebuah nilai integer yang menyatakan temperatur dalam derajat Celcius, kemudian cetak temperatur tersebut dalam derajat Fahrenheit.
xx.x
40
40 xx.x
C F
C untuk nilai derajat CelciusF untuk nilai derajat Fahrenheit
cin cout
Rumus konversiderajat Celcius
ke derajat Fahrenheit
harus
KONSEP penyelesaian
Draf
40 104
Celcius Fahrenheit
C F
F = 9/5 * C + 32
9 / 5 = 1.8
1.8 * 40 = 72
72 + 32 = 104
#include <iostream.h>void main(){ float C,F; cin >> C; F = 9.0 / 5 * C + 32; cout << F;}
#include <iostream.h>void main(){ float C,F; cin >> C; F = 9 / 5 * C + 32; cout << F;}
Cara-1 C++
4072
SALAHCeharusnya, untuk C = 40,makaNilai F = 104
Bila menggunakan suatu Bahasa Pemrograman, harus diketahui sifat / karakteristik Bahasa Pemrograman tersebut.
#include <iostream.h>void main(){ float C,F; cin >> C; F = 9 / 5 * C + 32; cout << F;}
Cara-1 C++
4072
Bila diinput : 40 untuk nilai CMaka tercetak : 72 sebagai isi F
SALAH
Ceharusnya, untuk C = 40,makaNilai F = 104
9 / 5 = 11 * 40 = 4040 + 32 = 72
Karena 9 dan 5 kedua-duanya dianggap integer
Salah satu saja tipenya float, maka hasilnya float
#include <iostream.h>void main(){ float C,F; cin >> C; F = 9.0 / 5 * C + 32; cout << F;}
Cara-1 C++
40104
Bila diinput : 40 untuk nilai CMaka trcetak : 104 sebagai isi F
9.0 / 5 = 1.81.8 * 40 = 7272 + 32 = 104
Salah satu saja tipenya float, maka hasilnya float
atau9 / 5.0
#include <iostream.h>void main(){ float C,F; cin >> C; F = 9 / 5.0 * C + 32; cout << F;}
Cara-1 C++
40104
Bila diinput : 40 untuk nilai CMaka trcetak : 104 sebagai isi F
9 / 5.0 = 1.81.8 * 40 = 7272 + 32 = 104
Salah satu saja tipenya float, maka hasilnya float
#include <iostream.h>void main(){ int C; float F; cin >> C; F = 9 / 5.0 * C + 32; cout << F;}
Cara-1 C++
40104
Bila diinput : 40 untuk nilai CMaka trcetak : 104 sebagai isi F
9 / 5.0 = 1.81.8 * 40 = 7272 + 32 = 104
Salah satu saja tipenya float, maka hasilnya float
C
Dapat saja dibuat bertipe int
Meng-konversi waktu dalam Detik menjadi : Jam, Menit dan Detik.
Soal-7.
Susun program yang ditulis dalam Bahasa C++, untuk menginput sebuah nilai integer yang menyatakan waktu (durasi) dalam satuan detik, kemudian cetaklah waktu tersebut dalam satuan Jam, Menit, dan Detik.
jj mm dd
xxxx
xxxx
jj
Detik
J
cin coutmm
dd
M
D
J untuk JamM untuk Menit, danD untuk Detik
Bila diinput
15
Tercetak :
0 0 15
72 0 1 12
150 0 2 30
1000 0 16 40
3600 1 0 0
3605 1 0 5
7425 ? ? ?
? ? ?
7425
7425
?
Detik
J
cin cout?
?
M
D
J untuk JamM untuk Menit, danD untuk Detik
harus
1 Jam = 60 Menit1 Menit = 60 Detik1 Jam = 3600 Detik
Tidak tahu ini,Tidak bisa membuat draf perhitungannyadanTidak bisa membuat algoritma
KONSEP penyelesaian
Draf
3600 / 7425 \ 2
7200
60 / 225 \ 3
180
45
Belum Rinci
Harus dijelaskan dari mana mendapatkan nilai 7200
Didapat :
7425 Detikadalah : 2 Jam 3 Menit 45 Detik
3600 / 7425 \ 2
2 * 3600 = 7200
60 / 225 \ 3
3 * 60 = 180
45
KONSEP penyelesaian
Draf
7425 / 3600 = 2 sisa 225
225 / 60 = 3 sisa 45
Didapat :
2 Jam3 Menit45 Detik
Tidak rinci, darimana mendapatkan nilai sisa
7425 / 3600 = 22 * 3600 = 72007425 – 7200 = 225225 / 60 = 33 * 60 = 180225 – 180 = 45
LENGKAPdanRINCI
INIKONSEP
BERPIKIRYANG
ORSINILMILIK
SEMUAORANG
INIYANG DITUANGKANMENJADIALGORITMA
Didapat :
2 Jam3 Menit45 Detik
7425 / 3600 = 22 * 3600 = 72007425 – 7200 = 225225 / 60 = 33 * 60 = 180225 – 180 = 45
TIDAK BISA MEMBUAT KONSEP INITIDAK BISA JUGA MEMBUAT PROGRAM
Inilah langkah-langkah yang diambil dalam menyelesaikan suatu tugas
7425 / 3600 = 22 * 3600 = 72007425 – 7200 = 225225 / 60 = 33 * 60 = 180225 – 180 = 45
TIDAK BISA MEMBUAT KONSEP INITIDAK BISA JUGA MEMBUAT PROGRAM
Inilah
ataupaling tidakcikal bakal
7425 / 3600 = 22 * 3600 = 72007425 – 7200 = 225225 / 60 = 33 * 60 = 180225 – 180 = 45
TIDAK BISA MEMBUAT KONSEP INITIDAK BISA JUGA MEMBUAT PROGRAM
Orang lain mungkin menggunakan cara yang berbeda untuk mengasilkan hasil yang sama
7425 / 3600 = 22 * 3600 = 72007425 – 7200 = 225225 / 60 = 33 * 60 = 180225 – 180 = 45
Yang sulit bukan membuat program komputer, tapi membuat draf perhitungan seperti ini
TIDAK BISA MEMBUAT KONSEP INITIDAK BISA JUGA MEMBUAT PROGRAM
7425 / 3600 = 22 * 3600 = 72007425 – 7200 = 225225 / 60 = 33 * 60 = 180225 – 180 = 45
Ini tidak diajarkan dalam pelajaran algoritma,Karena pengetahuanini milik semua orang.
TIDAK BISA MEMBUAT KONSEP INITIDAK BISA JUGA MEMBUAT PROGRAM
7425 / 3600 = 22 * 3600 = 72007425 – 7200 = 225225 / 60 = 33 * 60 = 180225 – 180 = 45
Ini bukan pelajaran algoritma,
TIDAK BISA MEMBUAT KONSEP INITIDAK BISA JUGA MEMBUAT PROGRAM
7425 / 3600 = 22 * 3600 = 72007425 – 7200 = 225225 / 60 = 33 * 60 = 180225 – 180 = 45
7425 / 3600 = 22 * 3600 = 72007425 – 7200 = 225225 / 60 = 33 * 60 = 180225 – 180 = 45
7425 2
7200
225
7425 / 3600
2 * 3600
7425 - 7200
3225 / 60
180
3 * 60
45
225 - 180Kerangka berpikir, bila
setiap nilai disimpan dalam sebuah variabel
Ada 7 variabel, yang diilustrasikan dengan
gambar kotak
7425 2
7200
225
J = Detik / 3600
X = J * 3600
Y = Detik - X
3M = Y / 60
180
Z = M * 60
45
D = Y - Z
Detik J
X
YM
Z
D
1
2
3
4
5
6
Ada 6 langkah
1. J = Detik / 3600 2. X = J * 3600 3. Y = Detik – X 4. M = Y / 60 5. Z = M * 60 6. D = Y - Z
Sesuai dengan tata cara penulisan algoritmaAda 7 variabel, yang diilustrasikan dengan gambar
kotak
7425 2
7200
225
J = Detik / 3600
X = J * 3600
Y = Detik - X
3M = Y / 60
180
Z = M * 60
45
D = Y - Z
Detik J
X
YM
Z
D
1
2
3
4
5
6
7425 2
225
J = Detik / 3600
Y = Detik – J * 3600
3M = Y / 60
45
D = Y – M * 60
Detik J
Y
M
D
1
2
3
4
Dibuat menjadi : 4 langkahAsli : 6 langkah
7 variabel 5 variabel
7425 2
225
J = Detik / 3600
Y = Detik – J * 3600
3M = Y / 60
45
D = Y – M * 60
Detik J
Y
M
D
1
2
3
4
Setelah menjadi : 4 langkah
7425 2J = Detik / 3600
3
M = ( Detik – J * 3600 ) / 60
45
D = ( Detik – J * 3600 ) – M * 60
Detik J
M
D
1
2
Dibuat menjadi : 3 langkah
3
5 variabel 4 variabel
7425 2
7200
225
J = Detik / 3600
X = J * 3600
Y = Detik - X
3M = Y / 60
180
Z = M * 60
45
D = Y - Z
Detik J
X
YM
Z
D
1
2
3
4
5
6
#include<iostream.h>
void main()
{ int Detik, J,M,D, X,Y,Z;
cout << "Detik : " ;
cin >> Detik;
J = Detik / 3600;
X = J * 3600;
Y = Detik - X;
M = Y / 60;
Z = M * 60;
D = Y - Z;
cout << J << " Jam ";
cout << M << " Menit ";
cout << D << " Detik " ;
}
74252 Jam 3 Menit 45 Detik
Di monitor terlihat :
1
2
3
4
5
6
6 langkah
7 variabel
7425 2
225
J = Detik / 3600
Y = Detik – J * 3600
3M = Y / 60
45
D = Y – M * 60
Detik J
Y
M
D
1
2
3
4
4 langkah
#include<iostream.h>
void main()
{ int Detik, J, M, D, Y;
cout << "Detik : " ;
cin >> Detik;
J = Detik / 3600;
Y = Detik – J*3600;
M = Y / 60;
D = Y – M*60;
cout << J << " Jam ";
cout << M << " Menit ";
cout << D << " Detik " ;
}
74252 Jam 3 Menit 45 Detik
Di monitor terlihat :
1
2
3
4
5 variabel
7425 2J = Detik / 3600
3
M = ( Detik – J * 3600 ) / 60
45
D = ( Derik – J * 3600 ) – M * 60
Detik J
M
D
1
2
3 langkah
3
#include<iostream.h>
void main()
{ int Detik, J, M, D;
cout << "Detik : " ;
cin >> Detik;
J = Detik / 3600;
M = (Detik - J*3600 )/ 60;
D = ( Detik - J* 3600 ) - M*60;
cout << J << " Jam ";
cout << M << " Menit ";
cout << D << " Detik " ;
}
1
2
3
74252 Jam 3 Menit 45 Detik
Di monitor terlihat :4 variabel
#include<iostream.h>
void main()
{ int Detik, J,M,D, X,Y,Z;
cout << "Detik : " ;
cin >> Detik;
J = Detik / 3600;
X = J * 3600;
Y = Detik - X;
M = Y / 60;
Z = M * 60;
D = Y - Z;
cout << J << " Jam ";
cout << M << " Menit ";
cout << D << " Detik " ;
}
#include<iostream.h>
void main()
{ int Detik, J, M, D, Y;
cout << "Detik : " ;
cin >> Detik;
J = Detik / 3600;
Y = Detik – J*3600;
M = Y / 60;
D = Y – M*60;
cout << J << " Jam ";
cout << M << " Menit ";
cout << D << " Detik " ;
}
#include<iostream.h>
void main()
{ int Detik, J, M, D;
cout << "Detik : " ;
cin >> Detik;
J = Detik / 3600;
M = (Detik - J*3600 )/ 60;
D = ( Detik - J* 3600 ) - M*60;
cout << J << " Jam ";
cout << M << " Menit ";
cout << D << " Detik " ;
}
cin >> Detik;
cout << Detik / 3600 << " Jam " ;
cout << ( Detik - (Detik / 3600) *3600 )/ 60 << " Menit " ;
cout << ( Detik - (Detik / 3600) * 3600 ) -((Detik - (Detik /3600) * 3600) / 60 ) * 60 << " Detik ";
Dapat dipaksakan menjadi:
yangdisediakan
olehBahasa Pemrograman
harusmemahami
karakteristik dan fasilitas yang disediakan
olehBahasa Pemrograman
KONSEP penyelesaian
Draf
7425 / 3600 = 2 sisa 225
225 / 60 = 3 sisa 45
Didapat :
2 Jam3 Menit45 Detik
Tidak rinci, darimana mendapatkan nilai sisa
LENGKAPdanRINCI
7425 / 3600 = 2 7425 / 3600 sisa 225
225/ 60 = 3 225 / 60 sisa 45
Bahasa pemrograman menyediakan instruksi untuk menghitung sisa pembagian
7425 / 3600 = 2 7425 / 3600 sisa 225
225/ 60 = 3 225 / 60 sisa 45
7425 / 3600 = 2 7425 % 3600 = 225
225 / 60 = 3 225 % 60 = 45
Adalah operator modulus (sisa pembagian)
%
Ditulis :
7425 / 3600 = 2 7425 % 3600 = 225
225 / 60 = 3 225 % 60 = 45
7425 2
225
7425 / 3600
3225 / 60
45Kerangka
berpikir, bila setiap nilai
disimpan dalam sebuah variabel
7425 / 3600 = 2 7425 % 3600 = 225
225 / 60 = 3 225 % 60 = 45
7425 % 3600
225 % 60
7425 2
225
7425 / 3600
3225 / 60
45
7425 % 3600
225 % 60
7425 2
225
J = Detik / 3600
3M = X / 60
45
X = Detik % 3600
D = X % 60
Detik J
M
D
X
7425 2
225
J = Detik / 3600
3M = X / 60
45
X = Detik % 3600
D = X % 60
Detik J
M
D
X
1. J = Detik / 3600
2. X = Detik % 3600
3. M = X / 60
4. D = X % 60
Sesuai dengan kaidah penulisan algoritma
7425 2
225
J = Detik / 3600
3M = X / 60
45
X = Detik % 3600
D = X % 60
Detik J
M
D
X
7425 2J = Detik / 3600
3
M = (Detik % 3600 ) / 60
45
D = Detik % 3600 ) % 60
Detik J
M
D
11
2
3
4
4 langkah
2
3
3 langkah
7425 2
225
J = Detik / 3600
3M = X / 60
45
X = Detik % 3600
D = X % 60
Detik J
M
D
X
1
2
3
4
4 langkah
#include<iostream.h>
void main()
{ int Detik, J, M, D, X;
cout << "Detik : " ;
cin >> Detik;
J = Detik / 3600;
X = Detik % 3600;
M = X / 60;
D = X % 60;
cout << J << " Jam ";
cout << M << " Menit ";
cout << D << " Detik " ;
}
7425 2J = Detik / 3600
3
M = (Detik % 3600 ) / 60
45
D = Detik % 3600 ) % 60
Detik J
M
D
12
3
3 langkah
#include<iostream.h>
void main()
{ int Detik, J, M, D;
cout << "Detik : " ;
cin >> Detik;
J = Detik / 3600;
M = ( Detik % 300 ) / 60;
D = ( Detik % 3600 ) % 60;
cout << J << " Jam ";
cout << M << " Menit ";
cout << D << " Detik " ;
}
#include<iostream.h>void main(){ int Detik, J, M, D; cout << "Detik : " ; cin >> Detik; J = Detik / 3600; M = ( Detik % 300 ) / 60; D = ( Detik % 3600 ) % 60; cout << J << " Jam "; cout << M << " Menit "; cout << D << " Detik " ;}
#include<iostream.h>void main(){ int Detik, J, M, D, X; cout << "Detik : " ; cin >> Detik; J = Detik / 3600; X = Detik % 3600; M = X / 60; D = X % 60; cout << J << " Jam "; cout << M << " Menit "; cout << D << " Detik " ;}
cin >> Detik;
cout << Detik / 3600 << " Jam ";
cout << ( Detik % 3600 ) / 60 << " Menit ";
cout << ( Detik % 3600 ) % 60 << " Detik " ;
Dapat dipaksakan menjadi :