Introduction 02 using to Algorithm C / C++ Algoritma dan Pengetahuan Terkait
apakah Algoritma itu ?
Soal-5 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. 7 5 ? cin 7 5 ? cout A T L A untuk Alas T untuk Tinggi, dan L untuk Luas
Soal-5. Susun algoritma yang ditulis dalam Bahasa C++, untuk menginput alas dan tinggi sebuah segitiga, kemudian mencetak luas segitiga tersebut. 7 5 17.5 cin 7 5 17.5 cout A T L A untuk Alas T untuk Tinggi, dan L untuk Luas
mengetahui : Rumus menghitung Luas sebuah Segitiga harus mengetahui : Rumus menghitung Luas sebuah Segitiga Kadang-kadang : Lebih sulit : Mencari , memahami dan menggunakan Rumus, dibandingkan menulis algoritma
dan konsep atau draf secara manual sudah dibuat algoritma dapat ditulis setelah persoalannya sudah dipahami dan konsep atau draf secara manual sudah dibuat
Yang harus BUKAN dipahami dan Dikuasai PERSOALAN sebelumnya MATEMATIKA RUMUS menghitung Luas sebuah segitiga : DALAM BEBERAPA HAL (KASUS), RUMUS TIDAK DIBERITAHUKAN LUAS = ALAS * TINGGI / 2 atau LUAS = (ALAS * TINGGI) / 2 PEMBUAT ALGORITMA HARUS MENGETAHUINYA SENDIRI atau LUAS = ALAS * ( TINGGI / 2) atau LUAS = ALAS * TINGGI * 0.5 TIDAK MENGETAHUI RUMUS TIDAK DAPAT MEMBUAT ALGORITMA atau LUAS = 0.5 * ALAS * TINGGI atau dan sebagainya yang valid
Draf KONSEP penyelesaian Alas Tinggi 7 5 Luas = Alas * Tinggi / 2 17.5
Program menghitung dan mencetak Luas Segitiga Algoritma yang ditulis dalam suatu Bahasa Pemrograman disebut PROGRAM menghitung dan mencetak Luas Segitiga
C++ Cara-1 #include <iostream.h> void main() { float A, T, L; Program Flowchart #include <iostream.h> void main() { float A, T, L; cin >> A; cin >> T; L = A * T / 2; cout << L; } START cin A cin T L = A * T / 2 cout L END Dua instruksi ini dapat digabung menjadi satu instruksi : cin >> A >> T; cin A,T
float C++ Cara-1 #include <iostream.h> void main() { float A, T, L; cin >> A; cin >> T; L = A * T / 2; cout << L; } 7 5 17.5 Menulis program, memerlukan pengtahuan mengenai : Karena ada kemungkinan mengandung nilai pecahan, maka digunakan tipe data : BAHASA Pemograman yang digunakan float Floating point Single Precission
C++ Cara-1 #include <iostream.h> void main() { float A, T, L; cin >> A; cin >> T; L = A * T / 2; cout << L; } 12 6 30 Walaupun tipe data : float Tapi tercetak bukan : 30.0
int C++ Cara-1 #include <iostream.h> void main() { int A, T, L; cin >> A; cin >> T; L = A * T / 2; cout << L; } 7 5 17 7 * 5 = 35 35 / 2 = 17 Bagaimana bila menggunakan tipe data : int Bukan : 17.5 integer
#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 : 7 Tinggi : 5 Luas : 17.5 Atau : #include <iostream.h> void main() { float A,T, L; cout << " Alas : " ; cin >> A; cout << " Tinggi : " ; cin >> T; L = A * T / 2; cout << " Luas : " << L; }
Soal-6 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. 40 xx.x cin 40 xx.x cout C F C untuk nilai derajat Celcius F untuk nilai derajat Fahrenheit
mengetahui : Rumus konversi derajat Celcius ke derajat Fahrenheit harus mengetahui : Rumus konversi derajat Celcius ke derajat Fahrenheit
Draf KONSEP penyelesaian Celcius Fahrenheit F = 9/5 * C + 32 40 104 C #include <iostream.h> void main() { float C,F; cin >> C; F = 9.0 / 5 * C + 32; cout << F; } 9 / 5 = 1.8 1.8 * 40 = 72 72 + 32 = 104
Program menghitung dan mencetak derajat Fahrenheit
#include <iostream.h> void main() { float C,F; cin >> C; Cara-1 C++ #include <iostream.h> void main() { float C,F; cin >> C; F = 9 / 5 * C + 32; cout << F; } 40 72 SALAH Ceharusnya, untuk C = 40, maka Nilai F = 104 Bila menggunakan suatu Bahasa Pemrograman, harus diketahui sifat / karakteristik Bahasa Pemrograman tersebut.
#include <iostream.h> void main() { float C,F; cin >> C; Cara-1 C++ #include <iostream.h> void main() { float C,F; cin >> C; F = 9 / 5 * C + 32; cout << F; } 40 72 SALAH Ceharusnya, untuk C = 40, maka Nilai F = 104 Bila diinput : 40 untuk nilai C Maka tercetak : 72 sebagai isi F Karena 9 dan 5 kedua-duanya dianggap integer Salah satu saja tipenya float, maka hasilnya float 9 / 5 = 1 1 * 40 = 40 40 + 32 = 72
#include <iostream.h> void main() { float C,F; cin >> C; Cara-1 C++ #include <iostream.h> void main() { float C,F; cin >> C; F = 9.0 / 5 * C + 32; cout << F; } 40 104 Bila diinput : 40 untuk nilai C Maka trcetak : 104 sebagai isi F Salah satu saja tipenya float, maka hasilnya float 9.0 / 5 = 1.8 1.8 * 40 = 72 72 + 32 = 104 atau 9 / 5.0
#include <iostream.h> void main() { float C,F; cin >> C; Cara-1 C++ #include <iostream.h> void main() { float C,F; cin >> C; F = 9 / 5.0 * C + 32; cout << F; } 40 104 Bila diinput : 40 untuk nilai C Maka trcetak : 104 sebagai isi F Salah satu saja tipenya float, maka hasilnya float 9 / 5.0 = 1.8 1.8 * 40 = 72 72 + 32 = 104
#include <iostream.h> void main() { int C; float F; Cara-1 C++ #include <iostream.h> void main() { int C; float F; cin >> C; F = 9 / 5.0 * C + 32; cout << F; } 40 104 C Dapat saja dibuat bertipe int Bila diinput : 40 untuk nilai C Maka trcetak : 104 sebagai isi F Salah satu saja tipenya float, maka hasilnya float 9 / 5.0 = 1.8 1.8 * 40 = 72 72 + 32 = 104
Soal-7 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. xxxx jj J jj mm dd xxxx mm cin M cout Detik D dd J untuk Jam M untuk Menit, dan D untuk Detik
7425 ? ? ? Bila diinput Tercetak : 15 15 72 1 12 150 2 30 1000 16 40 15 72 1 12 150 2 30 1000 16 40 3600 1 3605 1 5 7425 ? ? ?
? ? ? ? ? ? 7425 7425 J M D cin cout Detik J untuk Jam M untuk Menit, dan D untuk Detik
mengetahui : harus 1 Jam = 60 Menit 1 Menit = 60 Detik 1 Jam = 3600 Detik Tidak tahu ini, Tidak bisa membuat draf perhitungannya dan Tidak bisa membuat algoritma
Draf KONSEP 3600 / 7425 \ 2 penyelesaian Belum Rinci 7200 60 / 225 \ 3 3600 / 7425 \ 2 7200 60 / 225 \ 3 180 45 KONSEP penyelesaian Belum Rinci Harus dijelaskan dari mana mendapatkan nilai 7200 Didapat : 7425 Detik adalah : 2 Jam 3 Menit 45 Detik 3600 / 7425 \ 2 2 * 3600 = 7200 60 / 225 \ 3 3 * 60 = 180 45
Draf KONSEP penyelesaian Didapat : 7425 / 3600 = 2 sisa 225 2 Jam 3 Menit 45 Detik 225 / 60 = 3 sisa 45 LENGKAP dan RINCI Tidak rinci, darimana mendapatkan nilai sisa INI KONSEP BERPIKIR YANG ORSINIL MILIK SEMUA ORANG 7425 / 3600 = 2 2 * 3600 = 7200 7425 – 7200 = 225 225 / 60 = 3 3 * 60 = 180 225 – 180 = 45 INI YANG DITUANGKAN MENJADI ALGORITMA Didapat : 2 Jam 3 Menit 45 Detik
Inilah langkah-langkah yang diambil dalam menyelesaikan suatu tugas 7425 / 3600 = 2 2 * 3600 = 7200 7425 – 7200 = 225 225 / 60 = 3 3 * 60 = 180 225 – 180 = 45 Inilah langkah-langkah yang diambil dalam menyelesaikan suatu tugas TIDAK BISA MEMBUAT KONSEP INI TIDAK BISA JUGA MEMBUAT PROGRAM
algoritma algoritma Inilah 7425 / 3600 = 2 2 * 3600 = 7200 7425 / 3600 = 2 2 * 3600 = 7200 7425 – 7200 = 225 225 / 60 = 3 3 * 60 = 180 225 – 180 = 45 Inilah algoritma atau paling tidak cikal bakal algoritma TIDAK BISA MEMBUAT KONSEP INI TIDAK BISA JUGA MEMBUAT PROGRAM
Orang lain mungkin menggunakan cara yang berbeda untuk mengasilkan hasil yang sama 7425 / 3600 = 2 2 * 3600 = 7200 7425 – 7200 = 225 225 / 60 = 3 3 * 60 = 180 225 – 180 = 45 TIDAK BISA MEMBUAT KONSEP INI TIDAK BISA JUGA MEMBUAT PROGRAM
7425 / 3600 = 2 2 * 3600 = 7200 7425 – 7200 = 225 225 / 60 = 3 3 * 60 = 180 225 – 180 = 45 Yang sulit bukan membuat program komputer, tapi membuat draf perhitungan seperti ini TIDAK BISA MEMBUAT KONSEP INI TIDAK BISA JUGA MEMBUAT PROGRAM
7425 / 3600 = 2 2 * 3600 = 7200 7425 – 7200 = 225 225 / 60 = 3 3 * 60 = 180 225 – 180 = 45 Ini tidak diajarkan dalam pelajaran algoritma, Karena pengetahuan ini milik semua orang. TIDAK BISA MEMBUAT KONSEP INI TIDAK BISA JUGA MEMBUAT PROGRAM
Ini bukan pelajaran algoritma, 7425 / 3600 = 2 2 * 3600 = 7200 7425 – 7200 = 225 225 / 60 = 3 3 * 60 = 180 225 – 180 = 45 Ini bukan pelajaran algoritma, TIDAK BISA MEMBUAT KONSEP INI TIDAK BISA JUGA MEMBUAT PROGRAM
7425 / 3600 = 2 2 * 3600 = 7200 7425 – 7200 = 225 225 / 60 = 3 3 * 60 = 180 225 – 180 = 45 Algoritma
7425 2 7200 225 7425 / 3600 2 * 3600 7425 - 7200 3 225 / 60 180 3 * 60 45 225 - 180 7425 / 3600 = 2 2 * 3600 = 7200 7425 – 7200 = 225 225 / 60 = 3 3 * 60 = 180 225 – 180 = 45 Kerangka berpikir, bila setiap nilai disimpan dalam sebuah variabel Ada 7 variabel, yang diilustrasikan dengan gambar kotak Algoritma
Algoritma Detik J 1 2 X Ada 6 langkah 3 1. J = Detik / 3600 7425 2 Algoritma 1 2 X = J * 3600 Y = Detik - X 7200 X Ada 6 langkah 3 1. J = Detik / 3600 2. X = J * 3600 3. Y = Detik – X 4. M = Y / 60 5. Z = M * 60 6. D = Y - Z M = Y / 60 3 225 M Y 4 5 Z = M * 60 D = Y - Z 180 Z 6 45 D Sesuai dengan tata cara penulisan algoritma Ada 7 variabel, yang diilustrasikan dengan gambar kotak
Dibuat menjadi : 4 langkah 7 variabel 5 variabel Detik Detik J J 7425 J = Detik / 3600 2 7425 J = Detik / 3600 2 1 1 X = J * 3600 2 Y = Detik - X 7200 Y = Detik – J * 3600 X 3 2 M M = Y / 60 225 3 225 M = Y / 60 3 M Y Y 4 3 5 Z = M * 60 D = Y - Z 180 D = Y – M * 60 Z 6 4 45 45 D D Asli : 6 langkah Dibuat menjadi : 4 langkah 7 variabel 5 variabel
Setelah menjadi : 4 langkah Dibuat menjadi : 3 langkah Detik Detik J J 7425 J = Detik / 3600 2 7425 J = Detik / 3600 2 1 1 Y = Detik – J * 3600 2 2 M = ( Detik – J * 3600 ) / 60 M 225 M = Y / 60 3 3 Y M 3 D = Y – M * 60 3 D = ( Detik – J * 3600 ) – M * 60 4 45 45 D D Setelah menjadi : 4 langkah Dibuat menjadi : 3 langkah 5 variabel 4 variabel
Program menghitung dan mencetak Jam, Menit, Detik
#include<iostream.h> void main() { int Detik, J,M,D, X,Y,Z; 7425 2 7200 225 J = Detik / 3600 X = J * 3600 Y = Detik - X 3 M = Y / 60 180 Z = M * 60 45 D = Y - Z Detik J X Y M Z D 1 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 " ; } 1 2 3 4 5 6 6 langkah 7425 2 Jam 3 Menit 45 Detik Di monitor terlihat : 7 variabel
#include<iostream.h> void main() { int Detik, J, M, D, Y; 7425 J = Detik / 3600 2 #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 " ; } 1 Y = Detik – J * 3600 2 1 2 3 4 M 225 M = Y / 60 3 Y 3 D = Y – M * 60 4 45 D 4 langkah 7425 2 Jam 3 Menit 45 Detik Di monitor terlihat : 5 variabel
#include<iostream.h> void main() { int Detik, J, M, D; 7425 J = Detik / 3600 2 #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 M = ( Detik – J * 3600 ) / 60 1 2 3 3 M 3 D = ( Derik – J * 3600 ) – M * 60 45 D 3 langkah 7425 2 Jam 3 Menit 45 Detik Di monitor terlihat : 4 variabel
Dapat dipaksakan menjadi: #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 " ; } Dapat dipaksakan menjadi: 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 ";
menggunakan fungsi matematik modulus yang disediakan oleh Bahasa Pemrograman
karakteristik dan fasilitas bila menggunakan Bahasa Pemrograman harus memahami karakteristik dan fasilitas yang disediakan oleh Bahasa Pemrograman
Draf KONSEP penyelesaian Didapat : 7425 / 3600 = 2 sisa 225 2 Jam 3 Menit 45 Detik 225 / 60 = 3 sisa 45 LENGKAP dan RINCI Tidak rinci, darimana mendapatkan nilai sisa 7425 / 3600 = 2 7425 / 3600 sisa 225 Bahasa pemrograman menyediakan instruksi untuk menghitung sisa pembagian / 60 = 3 225 / 60 sisa 45
7425 / 3600 = 2 7425 / 3600 sisa 225 / 60 = 3 225 / 60 sisa 45 Ditulis : % 7425 / 3600 = 2 7425 % 3600 = 225 / 60 = 3 225 % 60 = 45 Adalah operator modulus (sisa pembagian)
7425 / 3600 = 2 7425 % 3600 = 225 / 60 = 3 225 % 60 = 45 Algoritma
7425 / 3600 = 2 7425 % 3600 = 225 / 60 = 3 225 % 60 = 45 7425 7425 / 3600 2 7425 % 3600 225 / 60 225 3 225 % 60 45 Kerangka berpikir, bila setiap nilai disimpan dalam sebuah variabel Algoritma
Algoritma J Detik X M D 7425 7425 / 3600 2 7425 J = Detik / 3600 2 7425 % 3600 X = Detik % 3600 225 / 60 M = X / 60 225 3 X 225 3 M 225 % 60 D = X % 60 45 45 D Algoritma
Sesuai dengan kaidah penulisan algoritma J Detik 7425 J = Detik / 3600 2 J = Detik / 3600 X = Detik % 3600 M = X / 60 D = X % 60 X = Detik % 3600 M = X / 60 X 225 3 M D = X % 60 45 D Sesuai dengan kaidah penulisan algoritma
Detik J M D X J Detik 1 1 2 2 3 M 3 4 D 4 langkah 3 langkah 7425 2 225 M = X / 60 45 X = Detik % 3600 D = X % 60 Detik J M D X J Detik 7425 J = Detik / 3600 2 1 1 2 2 M = (Detik % 3600 ) / 60 3 3 M 3 4 D = Detik % 3600 ) % 60 45 D 4 langkah 3 langkah
Program menghitung dan mencetak Jam, Menit, Detik menggunakan fungsi matematik modulus
J Detik 1 2 X M 3 4 D 4 langkah 7425 2 225 J = Detik / 3600 3 M = X / 60 45 X = Detik % 3600 D = X % 60 Detik J M D X #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 " ; } 1 2 3 4 4 langkah
J Detik 1 2 3 M D 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 " ; } 7425 J = Detik / 3600 2 1 2 M = (Detik % 3600 ) / 60 3 3 M D = Detik % 3600 ) % 60 45 D 3 langkah
Dapat dipaksakan menjadi : #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 " ; } #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 " ; } Dapat dipaksakan menjadi : cin >> Detik; cout << Detik / 3600 << " Jam "; cout << ( Detik % 3600 ) / 60 << " Menit "; cout << ( Detik % 3600 ) % 60 << " Detik " ;
seleseai Tahap-2