Permisi kak ijin bertanyakenapa yah hasil nilai akhirnya itu nol(0)?mohon

Berikut ini adalah pertanyaan dari samhanalkausar25 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas

Permisi kak ijin bertanyakenapa yah hasil nilai akhirnya itu nol(0)?
mohon bantuannya
aplikasi Dev C++​
Permisi kak ijin bertanyakenapa yah hasil nilai akhirnya itu nol(0)?mohon bantuannyaaplikasi Dev C++​

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Jawaban dan Penjelasan:

Variabel \tt Nilai\_Akhir 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 \tt divatau\texttt{//}.
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\tt float.
    Caranya: dengan menyisipkan \tt (float) di awal operasi matematika (terutama pembagian) yang melibatkan \tt integer 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.

Jawaban dan Penjelasan:Variabel [tex]\tt Nilai\_Akhir[/tex] 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 [tex]\tt div[/tex] atau [tex]\texttt{//}[/tex]. 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 1Menjadikan 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 2Karena 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 3Dengan typecasting menjadi tipe data [tex]\tt float[/tex]. Caranya: dengan menyisipkan [tex]\tt (float)[/tex] di awal operasi matematika (terutama pembagian) yang melibatkan [tex]\tt integer[/tex] 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 <<

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