Berikut ini adalah pertanyaan dari najmiazzahra2004 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
Output : hasil bagi bil1 dengan bil2
Nilai tambah: program bisa mengecek pembagian dengan nol, yaitu jika bilangan kedua adalah nol, maka tidak dilakukan proses pembagian, namun ditampilkan pesan kesalahannya (division by zero).
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Karena tidak ada spesifikasi bahasa pemrograman yang digunakan, saya berikan 3 alternatif (C, C++, dan Python).
___________
Kode Program C
// pembagian.c
#include<stdio.h>
int main() {
// Deklarasi
float bil1, bil2, hasilbagi;
// Input
printf("Masukkan nilai bilangan pertama: ");
scanf("%f", &bil1);
printf("Masukkan nilai bilangan kedua: ");
scanf("%f", &bil2);
// Proses
if (bil2 == 0) {
printf("KESALAHAN: Pembagian oleh 0 tak terdefinisi.\n\n");
return 1;
}
hasilbagi = bil1 / bil2;
// Output
printf("%.3f / %.3f = %.3f\n\n", bil1, bil2, hasilbagi);
return 0;
}
___________
Kode Program C++
// pembagian.cpp
#include<iostream>
#include <iomanip>
// Library iomanip dibutuhkan untuk std::setprecision()
using namespace std;
int main() {
// Deklarasi
float bil1, bil2, hasilbagi;
// Input
cout << "Masukkan nilai bilangan pertama: ";
cin >> bil1;
cout << "Masukkan nilai bilangan kedua: ";
cin >> bil2;
// Proses
if (bil2 == 0) {
cerr << "KESALAHAN: Pembagian oleh 0 tak terdefinisi.\n\n";
return 1;
}
hasilbagi = bil1 / bil2;
// Output
cout << fixed << setprecision(3);
cout << bil1 << " / " << bil2 << " = " << hasilbagi;
cout << "\n\n";
return 0;
}
___________
Kode Program Python
# pembagian.py
bil1 = float(input('Masukkan nilai bilangan pertama: '))
bil2 = float(input('Masukkan nilai bilangan kedua: '))
try:
hasilbagi = bil1 / bil2
except ZeroDivisionError:
print('KESALAHAN: Pembagian oleh 0 tak terdefinisi.\n')
else:
print(f'{bil1:.3} / {bil2:.3} = {hasilbagi:.3}')
___________
Pembahasan
Saya pikir, algoritmanya sudah sangat jelas, karena persoalannya cukup sederhana.
- Pada program dalam bahasa C dan C++ di atas, digunakan analisis kasus terhadap variabel bil2. Jika bil2 = 0, maka cetak pesan kesalahan, dan return (keluar dari program).
Karena program langsung berhenti setelah output pesan kesalahan, maka baris selanjutnya tidak memerlukan blok else. Baris berikutnya setelah if akan dieksekusi jika bil2 ≠ 0 terpenuhi. - Pada program dalam bahasa Python di atas, saya gunakan error-trapping, dengan try...except...else, karena Python secara default menyediakan exception ZeroDivisionError.
Blok else akan dieksekusi jika ZeroDivisionError tidak terjadi.
__________
Hasil Eksekusi
Untuk ketiga program di atas, ketika bil2 = 0, outputnya adalah:
- Masukkan nilai bilangan pertama: 30
Masukkan nilai bilangan kedua: 0
KESALAHAN: Pembagian terhadap 0 tak terdefinisi.
Kemudian, akan digunakan kasus bil1 = 5 dan bil2 = 11, di mana 5/11 = 0,45454545...
Dengan ketelitian 3 desimal, hasilnya adalah 0,455.
C dan C++ (output sama persis)
- Masukkan nilai bilangan pertama: 5
Masukkan nilai bilangan kedua: 11
5.000 / 11.000 = 0.455
Python (output agak berbeda sedikit)
- Masukkan nilai bilangan pertama: 5
Masukkan nilai bilangan kedua: 11
5.0 / 11.0 = 0.455
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: Mon, 12 Dec 22