#include<iostream> #include<cmath> // cmath atau math.h diperlukan untuk memuat // function pow()
using namespace std;
// function inputBilangan(info) // Mengembalikan nilai bilangan dari masukan pengguna, // dengan prompt: info = // Untuk saat ini, tipe data return value // disesuaikan dengan tipe data bilangan. // Fyi, return value dapat bertipe "auto" pada C++, // tergantung nilai yang dimasukkan. float inputBilangan(string info) { float tmp; cout << info; cin >> tmp; return tmp; }
void soalA() { float K, C, M, N;
cout << "SOAL A. (K + C) / M × N\n"; K = inputBilangan("Input K = "); C = inputBilangan("Input C = "); M = inputBilangan("Input M = "); N = inputBilangan("Input N = "); cout << "Hasil: (K + C) / M × N = "; // M tidak boleh 0, karena pembagian // oleh 0 tak terdefinisi. if (M == 0) { cout << "tak terdefinisi,\n" << "karena M = 0 menyebabkan operasi pembagian " << "menjadi tak terdefinisi."; } else { cout << (K + C) / M * N; } cout << endl << endl; }
void soalB() { float A, B, C, D;
cout << "SOAL B. (A × B × C) ^ D\n"; A = inputBilangan("Input A = "); B = inputBilangan("Input B = "); C = inputBilangan("Input C = "); D = inputBilangan("Input D = "); cout << "Hasil: (A × B × C) ^ D = " << pow(A*B*C, D) << endl << endl; }
void soalC() { float H, I, J, K;
cout << "SOAL C. H + I × J / K\n"; H = inputBilangan("Input H = "); I = inputBilangan("Input I = "); J = inputBilangan("Input J = "); K = inputBilangan("Input K = "); cout << "Hasil: H + I × J / K = "; // K tidak boleh 0, karena pembagian // oleh 0 tak terdefinisi. if (K == 0) { cout << "tak terdefinisi,\n" << "karena K = 0 menyebabkan operasi pembagian " << "menjadi tak terdefinisi."; } else { cout << H + I * J / K; } cout << endl << endl; }
// Program Utama int main() { soalA(); soalB(); soalC(); } _________________
Pembahasan
Sebelum memprogram, kita perhatikan terlebih dahulu soal A dan C, yang melibatkan operasi pembagian. Apapun tipe data bilangan yang digunakan, pembagian oleh 0 tak terdefinisi.
Maka, menurut saya, sebaiknya ada analisis kasus terhadap nilai input bilangan pembagi. Jika sama dengan 0, hasilnya adalah tak terdefinisi. Sebaliknya, hitung dan cetak hasilnya.
Kemudian, untuk perpangkatan, kita dapat menggunakan function pow(base, exponent) dari library cmath atau math.h.
Pada program di atas, implementasi setiap operasi aritmetika pada soal A, B, dan C dibungkus dalam function tersendiri, sehingga program utama tinggal memanggil function-function tersebut.
Pada bagian awal program, terdapat function inputBilangan(info) yang mengembalikan bilangan masukan bertipe float. Function ini hanya bertindak sebagai helper saja, agar proses input dapat lebih digeneralisasi.
Contoh Hasil Eksekusi Program
Terdapat 4 gambar tangkapan layar yang dilampirkan, yang menunjukkan contoh hasil eksekusi program.
Gambar 1 dan 2: ketika menggunakan VSCode (Visual Studio Code) dengan backend compiler C++ pada Linux Debian (dalam WSL).
Gambar 2 dan 3: ketika menguji hasil coding dari VSCode pada IDE Dev-C++, dengan compiler C++ yang disediakan Dev-C++.
#include <iostream>
#include <math.h>
using namespace std;
int main(){
int A,B,C,D,M,N,H,I,J,K;
cout << "Masukkan angka A ";cin >> A;
cout << "Masukkan angka B ";cin >> B;
cout << "Masukkan angka C ";cin >> C;
cout << "Masukkan angka D ";cin >> D;
cout << "Masukkan angka M ";cin >> M;
cout << "Masukkan angka N ";cin >> N;
cout << "Masukkan angka H ";cin >> H;
cout << "Masukkan angka I ";cin >> I;
cout << "Masukkan angka J ";cin >> J;
cout << "Masukkan angka K ";cin >> K ;
int soal1,soal2,soal3;
soal1 = (K+C)/M*N;
soal2 = pow(A*B*C,D);
soal3 = H + I * J / K;
cout << "Jawaban Soal 1" << soal1;
cout << "Jawaban Soal 2" << soal2;
cout << "Jawaban Soal 3" << soal2;
return 0;
}
/* KEPERLUAN TIPE DATA DIGANTI SAJA DIATAS KE FLOAT */
Kode Program (C++)
#include<iostream>
#include<cmath>
// cmath atau math.h diperlukan untuk memuat
// function pow()
using namespace std;
// function inputBilangan(info)
// Mengembalikan nilai bilangan dari masukan pengguna,
// dengan prompt: info =
// Untuk saat ini, tipe data return value
// disesuaikan dengan tipe data bilangan.
// Fyi, return value dapat bertipe "auto" pada C++,
// tergantung nilai yang dimasukkan.
float inputBilangan(string info) {
float tmp; cout << info; cin >> tmp;
return tmp;
}
void soalA() {
float K, C, M, N;
cout << "SOAL A. (K + C) / M × N\n";
K = inputBilangan("Input K = ");
C = inputBilangan("Input C = ");
M = inputBilangan("Input M = ");
N = inputBilangan("Input N = ");
cout << "Hasil: (K + C) / M × N = ";
// M tidak boleh 0, karena pembagian
// oleh 0 tak terdefinisi.
if (M == 0) {
cout << "tak terdefinisi,\n"
<< "karena M = 0 menyebabkan operasi pembagian "
<< "menjadi tak terdefinisi.";
} else {
cout << (K + C) / M * N;
}
cout << endl << endl;
}
void soalB() {
float A, B, C, D;
cout << "SOAL B. (A × B × C) ^ D\n";
A = inputBilangan("Input A = ");
B = inputBilangan("Input B = ");
C = inputBilangan("Input C = ");
D = inputBilangan("Input D = ");
cout << "Hasil: (A × B × C) ^ D = "
<< pow(A*B*C, D)
<< endl << endl;
}
void soalC() {
float H, I, J, K;
cout << "SOAL C. H + I × J / K\n";
H = inputBilangan("Input H = ");
I = inputBilangan("Input I = ");
J = inputBilangan("Input J = ");
K = inputBilangan("Input K = ");
cout << "Hasil: H + I × J / K = ";
// K tidak boleh 0, karena pembagian
// oleh 0 tak terdefinisi.
if (K == 0) {
cout << "tak terdefinisi,\n"
<< "karena K = 0 menyebabkan operasi pembagian "
<< "menjadi tak terdefinisi.";
} else {
cout << H + I * J / K;
}
cout << endl << endl;
}
// Program Utama
int main() {
soalA();
soalB();
soalC();
}
_________________
Pembahasan
Sebelum memprogram, kita perhatikan terlebih dahulu soal A dan C, yang melibatkan operasi pembagian. Apapun tipe data bilangan yang digunakan, pembagian oleh 0 tak terdefinisi.
Maka, menurut saya, sebaiknya ada analisis kasus terhadap nilai input bilangan pembagi. Jika sama dengan 0, hasilnya adalah tak terdefinisi. Sebaliknya, hitung dan cetak hasilnya.
Kemudian, untuk perpangkatan, kita dapat menggunakan function pow(base, exponent) dari library cmath atau math.h.
Pada program di atas, implementasi setiap operasi aritmetika pada soal A, B, dan C dibungkus dalam function tersendiri, sehingga program utama tinggal memanggil function-function tersebut.
Pada bagian awal program, terdapat function inputBilangan(info) yang mengembalikan bilangan masukan bertipe float. Function ini hanya bertindak sebagai helper saja, agar proses input dapat lebih digeneralisasi.
Contoh Hasil Eksekusi Program
Terdapat 4 gambar tangkapan layar yang dilampirkan, yang menunjukkan contoh hasil eksekusi program.