Berikut ini adalah pertanyaan dari samhanalkausar25 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
mohon bantuannya
aplikasi Dev C++
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Jawaban dan Penjelasan:
Variabel terisi nilai 0 karena pembagian 10/100, 20/100, 30/100, dan 40/100 dianggap oleh compiler C++ sebagai operasi pembagian bilangan bulat, yang mengembalikan nilai hasil bagi bilangan bulat tanpa memperhitungkan sisa. Pada bahasa pemrograman lain, ada yang menggunakan operator atau.
Hal ini tidak ada hubungannya dengan aplikasi atau IDE yang digunakan.
Jadi, jika x < 100, x bilangan bulat, maka x/100 = x div 100 = 0.
Mengakibatkan:
Nilai_Akhir = 0+0+0+0 = 0.
Agar menghasilkan perhitungan seperti yang diinginkan, operasi pembagian tersebut harus berada dalam ranah tipe data float. Ada beberapa alternatif solusi yang dapat dilakukan.
- Alternatif 1
Menjadikan pembilang atau penyebut (salah satu saja cukup) menjadi bilangan pecahan desimal, dengan menggunakan 0 sebagai angka di belakang separator desimal (dalam hal ini titik, bukan koma). - Alternatif 2
Karena nilai pecahan desimalnya mudah dihitung, kita ganti saja menjadi pecahan desimal, bukan operasi pembagian.
Misalnya, 10/100 diganti menjadi 0.1, 20/100 diganti menjadi 0.2, dan seterusnya. - Alternatif 3
Dengan typecastingmenjadi tipe data.
Caranya: dengan menyisipkan di awal operasi matematika (terutama pembagian) yang melibatkan seluruhnya. Operasi yang di-typecast ke tipe data float akan dianggap sebagai operasi dalam ranah tipe bilangan float.
Untuk lebih jelasnya, silahkan amati kode program modifikasi berikut, dan hasil eksekusinya.
Kode program
#include<iostream>
using namespace std;
int main() {
float NT, NQ, NU, NS, Nilai_Akhir;
cout << "Nilai Tugas : ";
cin >> NT;
cout << "Nilai Quiz : ";
cin >> NQ;
cout << "Nilai UTS : ";
cin >> NU;
cout << "Nilai Semester : ";
cin >> NS;
// ALTERNATIF 1
Nilai_Akhir = 10.0/100*NT + 20.0/100*NQ + 30.0/100*NU + 40.0/100*NS;
cout << endl << "Alternatif 1: " << endl;
cout << "Nilai_Akhir = 10.0/100.0*NT + 20.0/100.0*NQ + 30.0/100.0*NU + 40.0/100.0*NS;" << endl;
cout << "Hasil Nilai Akhir = " << Nilai_Akhir << endl;
Nilai_Akhir = 0; // <== reset agar yakin dihitung kembali
// ALTERNATIF 2
Nilai_Akhir = 0.1*NT + 0.2*NQ + 0.3*NU + 0.4*NS;
cout << endl << "Alternatif 2: " << endl;
cout << "Nilai_Akhir = 0.1*NT + 0.2*NQ + 0.3*NU + 0.4*NS;" << endl;
cout << "Hasil Nilai Akhir = " << Nilai_Akhir << endl;
Nilai_Akhir = 0; // <== reset agar yakin dihitung kembali
// ALTERNATIF 3
Nilai_Akhir = (float)10/100*NT + (float)20/100*NQ + (float)30/100*NU + (float)40/100*NS;
cout << endl << "Alternatif 3: " << endl;
cout << "Nilai_Akhir = (float)10/100*NT + (float)20/100*NQ + (float)30/100*NU + (float)40/100*NS;" << endl;
cout << "Hasil Nilai Akhir = " << Nilai_Akhir << endl << endl;
return 0;
}
_______________
Hasil Eksekusi
Nilai Tugas : 90
Nilai Quiz : 90
Nilai UTS : 90
Nilai Semester : 90
Alternatif 1:
Nilai_Akhir = 10.0/100.0*NT + 20.0/100.0*NQ + 30.0/100.0*NU + 40.0/100.0*NS;
Hasil Nilai Akhir = 90
Alternatif 2:
Nilai_Akhir = 0.1*NT + 0.2*NQ + 0.3*NU + 0.4*NS;
Hasil Nilai Akhir = 90
Alternatif 3:
Nilai_Akhir = (float)10/100*NT + (float)20/100*NQ + (float)30/100*NU + (float)40/100*NS;
Hasil Nilai Akhir = 90
_______________
Semoga tidak bingung lagi ya.
Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.
Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact
Last Update: Thu, 08 Dec 22