02.1 Hari-2
Kumpulkan PR
Ambil Kertas Selembar Tulis NIM dan Nama Kerjakan Soal 5 menit kumpulkan
Ini Soalnya : Susun algoritma (Program dalam Bahasa C/C++) untuk menghitung dan mencetak nilai rata-rata 3 buah bilangan berikut : Bilangan pertama : 75 Bilangan ke-dua : 70 Bilangan ke-tiga : 70. Soal tidak perlu ditulis untuk dikumpulkan. Tapi sebaiknya Soal Saudara catat di buku Saudara
Soal-2.1 Menetak Nilai Rata-Rata dan memilih Tipe Data Susun algoritma (Program dalam Bahasa C/C++) untuk menginput 3 buah bilangan ( nilai Matematika, Fisika dan Kimia ) kemudian mencetak nilai rata-rata ketiga buah bilangan tersebut. 75 70 Nilai Rata-Rata scanf 75 70 70 215 T cin 71.666667 A B C KEYBOARD printf 71.66… R cout SCREEN MEMORY
#include <stdio.h> void main() { int A, B, C, T, R; Bila program ibi diRUN,dan diinput : 75, 70, dan 70,maka terlihat dilayar sevagai berikut : #include <stdio.h> void main() { int A, B, C, T, R; printf("Matematika : "); scanf(" %i", &A); printf("Fisika : "); scanf(" %i", &B); printf("Kimia : "); scanf(" %i", &C); T = A + B + C; R = T / 3; printf("Nilai Rata-Rata = %i ", R); } Matematika : 75 Fisika : 70 Kimia : 70 Rata-Rata = 71 Mengapa tercetak : 71 ? Bukankah seharusnya : 71.66666666. . . . . Matematika : 75 Fisika : 70 Kimia : 70 Rata-Rata = 71 Karena variabel R tipenya int (integer) yang hanya menampung nilai integer (bilangan bulat) nya saja
T = A + B + C; R = T / 3; printf(“%i”, T ); Proses : Penjelasan Proses Tipe Data Hasil Proses T = A + B + C; R = T / 3; printf(“%i”, T ); Proses : A B A B C T R Nilai Nilai INPUT 3 71 75 70 70 215 int int int int int int proses Tambah, Kurang. Kali, Bagi Proses dalam komputer : Nilai Hasil Proses OUTPUT T = A + B + C;
Sifat Proses : A B Tipe Tipe proses A B int float double int float INPUT INPUT OUTPUT Tipe A Tipe B Tipe Hasil Proses Nilai proses Tambah, Kurang. Kali, Bagi Hasil Proses A B INPUT OUTPUT int float double int float double doube int float double doube Tipe output, mengambil tipe input yang jumlah Byte nya terpanjang
Proses dalam komputer : Semua variabel integer R = T / 3; T = A + B + C; A B konstanta T 75 + 70 int 3 int int 215 / int R C 145 + 70 int simpan int 71 71 int int T 215 simpan 215 int int Ini yang dicetak Karena T dan 3 kedua-duanya bertipe int, maka hasilny bertipe int A ditambah dengan B hasilnya = 145 145 ditambah dengan C hasilnya 215 , 215 disimpan ke T
float Bila R tipenya dibuat : float R = T / 3; T / 3 215 R 71.0 71 konstanta T / 3 215 int int R Karena R tipenya float, maka isinya 71.0 71.0 71 float int Ini yang dicetak Bila dicetak dengan format “ %f “ maka tercetak : 71.000000
Bila R tipenya dibuat : float Kalau formatnya tidak dinyatakan dengan bentuk lain , maka akan dicetak menurut format default yaitu 6 angka dibelakang titik decimal Format : %f Karena Tipe R adalah Floating Point float
double R = T / 3; Konstanta dibuat bertipe double Tapi R masih bertipe float double R = T / 3; T konstanta / Kalau konstanta dibuat menjadi 3.0 , maka oleh komputer Tipe datanya dinyatakan dalam Tipe double int 3.0 215 double R 71.666……. 71.666……… f l o a t double
float 4 ? Mengapa bukan 71.666667 3.0 7 ! ? Karena tipe float ketelitiannya masih rendah
R bertipe float Konstanta dibuat bertipe double %16.12 12 angka dibelakang titik decimal Tipe float ketelitiannya lebih rendah dibandingkan tipe double
R = T / 3; double Bila konstanta bertipe double dan R juga beripe : double R = T / 3; double konstanta T / 3.0 int 215 double R double 71.666……. 71.666……… double
Tipe double
Huruf el kecil 22 angka dibelakang titik decimal Tipe double lebih teliti dari tipe float 71.666664123535
Latihan di Kelas
Ambil Kertas Selembar Tulis N.I.M. dan Nama
kerjakan soal 5 menit kumpulkan
Soal Tugas Kelas 2.1 Susun algoritma yang ditulis dalam Bahasa C/C++, untuk mencetak Luas sebuah segitiga bila alas dan tinggi segitiga tersebut sudah diketahui yaitu : Alas = 7 dan Tinggi = 5.
Soal Tugas Kelas 2.1 Menghitung luas segitiga bila diketahui alas dan tinggi segitiga tersebut
Soal Tugas Kelas 2.1 Susun algoritma yang ditulis dalam Bahasa C/C++, untuk mencetak Luas sebuah segitiga bila diketahui Alas = 7 dan Tinggi = 5. ? printf 7 5 ? cout A T L A untuk Alas T untuk Tinggi, dan L untuk Luas
17.5 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
int C ? Cara-1 #include <stdio.h> void main() { int A, T, L; Program Flowchart #include <stdio.h> void main() { int A, T, L; A = 7; T = 5; L = A * T / 2; printf(“%i”, L ); } START A = 7 T = 5 L = A * T / 2 printf L END Bagaimana bila menggunakan tipe data : int int int 7 5 ? int A T L integer
? C Tercetak : ? Cara-1 #include <stdio.h> void main() Program Flowchart #include <stdio.h> void main() { int A, T, L; A = 7; T = 5; L = A * T / 2; printf(“%i”, L ); } START A = 7 T = 5 L = A * T / 2 printf L END ? Tercetak : int int int 7 5 ? A T L
17 C Tercetak : 17 Cara-1 #include <stdio.h> void main() Program Flowchart #include <stdio.h> void main() { int A, T, L; A = 7; T = 5; L = A * T / 2; printf(“%i”, L ); } START A = 7 T = 5 L = A * T / 2 printf L END 17 Tercetak : int int int 7 5 17 A T L
Mengapa tercetak : 17 ? Seharusnya tercetak 17.5 Karena (7*5)/2 = 17.5
17 Karena variabel L tipenya int Tipe int hanya menyimpan nilai integer int 17 17,5 L
Tipe data yang dapat menampung nilai pecahan : float atau double
Tipe Data. Tipe data dasar (primitif) yang digunakan oleh Bahasa C. Sebutan Tipe Data Bentuk penulisan dalam Bahasa C Jumlah Byte yang diperlukan Jangkauan nilai numerik 1. Character 2. Integer 3. Floating point (single precision) 4. Double precision char atau signed char unsigned char int atau signed int atau signed unsigned int atau unsigned long atau long int atau signed long atau signed long int unsigned long atau unsigned long int float double long double 1 2 4 8 10 -128 s.d. 127 0 s.d. 255 -32768 s.d. 32767 0 s.d. 65535 -2147483648 s.d. 2147483647 0 s.d. 4294967295 3.4E-38 s.d. 3.4E38 positip atau negatip 1.7E-308 s.d. 1.7E308 3.4E-4932 s.d 1.1E4932
Kita coba pilih : float
17.00000 C Tercetak : #include <stdio.h> void main() { int A, T; Program Flowchart #include <stdio.h> void main() { int A, T; float L; A = 7; T = 5; L = A * T / 2; printf(“%f”, L ); } START A = 7 T = 5 L = A * T / 2 printf L END Tercetak : 17.00000 int int float 7 5 17 A T L
Perhatikan : printf(“%f”, L); format untuk data bertipe float
Tercetak : 17.000000 Perhatikan : Dengan format standar, ( %f ) , nilai bertipe float akan dicetak dengan 6 angka dibelakang titik decimal
Mengapa masih tercetak : 17.000000 ? Padahal data ( L ) bertipe float, Seharusnya tercetak : 17.500000 ?
L = A * T / 2 ; Perhatikan : Ketiga-tiganya bertipe int Sehingga hasil perhitungan ini nilainya disimpan dalam bentuk int 17, bukan 17.5 Nilai dalam bentuk integer ini yang disimpan ke L
L = A * T / 2 ; Perhatikan : Salah satu bertipe float, maka hasil perhitungan disimpan dalam bentuk float
ganti L = A * T / 2.0 ; bentuk floating point double precision
? C Tercetak : ? #include <stdio.h> void main() { int A, T; Program Flowchart #include <stdio.h> void main() { int A, T; float L; A = 7; T = 5; L = A * T / 2.0; printf(“%f”, L ); } START A = 7 T = 5 L = A * T / 2 printf L END ? Perhatikan : Untuk contoh ini, Algoritmanya sendiri, seperti terlihat dalam Flowchart, tidak terpengaruh oleh tipe data Tercetak : int int float 7 5 ? A T L
17.50000 Tercetak : #include <stdio.h> void main() { int A, T; Program Flowchart #include <stdio.h> void main() { int A, T; float L; A = 7; T = 5; L = A * T / 2.0; printf(“%f”, L ); } START A = 7 T = 5 L = A * T / 2 printf L END Tercetak : 17.50000 int int float 7 5 17.5 A T L
Tercetak : 17.500000 printf(“%f”, L ); printf(“%5.2f”, L ); Perhatikan : Tercetak : 17.500000 ganti printf(“%f”, L ); menjadi : printf(“%5.2f”, L );
Tercetak : 17.50 printf(“%5.2f”, L ); dengan Dua angka dibelakang titik decimal
Tercetak : 17.50 printf(“%8.2f”, L ); dengan Dua angka dibelakang titik decimal ada 3 spasi
17.50000 Tercetak : #include <stdio.h> void main() { int A, T; Program Flowchart #include <stdio.h> void main() { int A, T; float L; A = 7; T = 5; L = A * T / 2.0; printf(“%f”, L ); } START A = 7 T = 5 L = A * T / 2 printf L END Tercetak : 17.50000 int int float 7 5 17.5 A T L
17.50 Tercetak : #include <stdio.h> void main() { int A, T; Program Flowchart #include <stdio.h> void main() { int A, T; float L; A = 7; T = 5; L = A * T / 2.0; printf(“%5.2f”, L ); } START A = 7 T = 5 L = A * T / 2 printf L END Tercetak : 17.50 int int float 7 5 17.5 A T L
Untuk contoh ini, Lebih aman bila semua variabel bertipe float
17.50000 Tercetak : #include <stdio.h> void main() Program Flowchart #include <stdio.h> void main() { float A, T, L; A = 7; T = 5; L = A * T / 2.0; printf(“%f”, L ); } START A = 7 atau A = 7.0; T = 5 atau T = 5.0; L = A * T / 2 printf L END Tercetak : 17.50000 Perhatikan : Untuk contoh ini, Algoritmanya sendiri, seperti terlihat dalam Flowchart, tidak terpengaruh oleh tipe data float float float 7.0 5.0 17.5 A T L
17.50000 Tercetak : #include <stdio.h> void main() { float A, T, L; A = 7; T = 5; L = A * T / 2; printf(“%f”, L ); } atau A = 7.0; atau T = 5.0; Bukan 2.0 Tapi Mengapa mau tercetak 17.500000 Tercetak : 17.50000 float float float 7.0 5.0 17.5 A T L
Dengan C++
17.5 C++ Tercetak : #include <iostream.h> void main() Program Flowchart #include <iostream.h> void main() { int A, T; float L; A = 7; T = 5; L = A * T / 2.0; cout << L ; } START A = 7 T = 5 L = A * T / 2 cout L END Tercetak : 17.5 int int int 7 5 17.5 A T L
17.5 C++ Tercetak : #include <iostream.h> void main() Program Flowchart #include <iostream.h> void main() { float A, T, L; A = 7; T = 5; L = A * T / 2.0; cout << L ; } START A = 7 T = 5 L = A * T / 2 cout L END Tercetak : 17.5 float float float 7.0 5.0 17.5 A T L
17.500000 17.5 C C++ Tercetak : Tercetak : #include <stdio.h> void main() { float A, T, L; A = 7; T = 5; L = A * T / 2.0; printf(“%f”, L ); } #include <iostream.h> void main() { float A, T, L; A = 7; T = 5; L = A * T / 2.0; cout << L ; } Tercetak : 17.500000 Tercetak : 17.5
Soal Tugas Kelas 2.2 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 Tugas Kelas 2.2 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
C Cara-1 #include <stdio.h> void main() { float A, T, L; Program Flowchart #include <stdio.h> void main() { float A, T, L; scanf(“%f”, &A); scanf(“%f”, & T); L = A * T / 2; printf(“%f”, L ); } START scanf A scanf T L = A * T / 2 printf L END Dua instruksi ini dapat digabung menjadi satu instruksi : Scanf(“%i %i”, &A, &B ); scanf A,T
C Cara-1 #include <stdio.h> void main() { int A, T, L; Program Flowchart #include <stdio.h> void main() { int A, T, L; scanf(“%i”, &A); scanf(“%i”, & T); L = A * T / 2; printf(“%i”, L ); } START scanf A scanf T L = A * T / 2 printf L END Dua instruksi ini dapat digabung menjadi satu instruksi : Scanf(“%i %i”, &A, &B ); scanf A,T
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
#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; }
menginput suhu dalam Celcius di konversi ke suhu dalam Fahrenheit Bersambung ke : 02.2 Soal Tugas Kelas 2.3 menginput suhu dalam Celcius dan di konversi ke suhu dalam Fahrenheit