Berikut ini adalah pertanyaan dari zarkans pada mata pelajaran TI untuk jenjang Sekolah Menengah Pertama
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Kode Program (C++)
/*
Nama file: predikat.cpp
Deskripsi:
Program untuk menentukan predikat nilai
(A, B, C, D) berdasarkan rata-rata dari
4 buah nilai ulangan sesuai flowchart
yang diberikan.
*/
#include <iostream>
#include <string>
using namespace std;
int main() {
float ulangan1, ulangan2, ulangan3, ulangan4, jumlah, rata;
string reset;
while (true) {
cout << endl;
// READ ulangan1, ulangan2, ulangan3, ulangan4
cout << "Nilai Ulangan 1: ";
cin >> ulangan1;
cout << "Nilai Ulangan 2: ";
cin >> ulangan2;
cout << "Nilai Ulangan 3: ";
cin >> ulangan3;
cout << "Nilai Ulangan 4: ";
cin >> ulangan4;
// jumlah = ulangan1 + ulangan2 + ulangan3 + ulangan4
// rata = jumlah/4
jumlah = ulangan1 + ulangan2 + ulangan3 + ulangan4;
rata = jumlah/4;
// output Hasil: jumlah nilai dan rata nilai
cout << "Hasil: " << endl;
cout << "=> Jumlah nilai = " << jumlah << endl;
cout << "=> Rata-rata nilai = " << rata << endl;
cout << "=> PREDIKAT = ";
// rata >= 90 => Predikat A
if (rata >= 90) {
cout << "A" << endl;
}
// rata >= 80 => Predikat B
else if (rata >= 80) {
cout << "B" << endl;
}
// rata >= 70 => Predikat C
else if (rata >= 70) {
cout << "C" << endl;
}
// rata < 70 => Predikat D
// kondisi/kasus terakhir,
// maka cukup else saja
else {
cout << "D" << endl;
}
// Reset ?
cout << "Reset [y = ya] ? ";
cin >> reset;
// jika dijawab dengan 'y',
// maka akan mengulangi input nilai
if (tolower(reset[0]) != 'y') {
break;
}
}
return 0;
}
______________
Pembahasan
Catatan:
Karena flowchart pada pertanyaan terpotong, maka saya mencoba menyalin dan melengkapi flowchart tersebut, yang dapat dilihat pada gambar yang saya sertakan. Semoga flowchart yang saya buat benar.
Program di atas dibangun sesuai dengan flowchart. Menurut pemahaman saya, pada bagian akhir proses, jika jawaban user terhadap pertanyaan "Reset ?" adalah ya, maka program akan mengulang dari proses awal. Sebaliknya, program selesai.
Oleh karena itu, dibutuhkan "loop forever" yang ditandai dengan penggunaan "while (true) { ... }".
Pada bagian awal setiap iterasi, program menerima input berupa 4 buah nilai ulangan. Dalam hal ini, tipe data yang digunakan adalah float (bilangan real). Kita juga bisa menggunakan int (bilangan bulat), atau unsigned int sebagai tipe datanya. Karena tidak ada spesifikasi lebih lanjut, maka saya gunakan float.
Kemudian, program akan menjumlahkan semua nilai ulangan, dan menghitung rata-rata.
Menurut saya, proses input dan perhitungan jumlah nilai ulangan dapat dijadikan satu, yaitu dengan menggunakan representasi tipe data array untuk nilai ulangan, dan input data menggunakan iterasi. Setiap selesai input data pada setiap iterasi, jumlah nilai diupdate.
Namun, pada program di atas tidak dibuat demikian, karena menyesuaikan dengan rancangan flowchart yang sudah dibuat.
Setelah kalkulasi jumlah dan rata-rata nilai, program akan mulai mencetak hasilnya, mulai dari 2 nilai yang sudah diperoleh, yaitu jumlah nilai dan rata-rata nilai. Penentuan predikat memerlukan analisis kasus dengan "if", sebanyak 4 kasus atau kondisi, yaitu:
- Jika rata >= 90, maka cetak predikat A.
- Jika tidak, artinya rata < 90, dan rata >= 80, maka cetak predikat B.
- Jika tidak, artinya rata < 80, dan rata >= 70, maka cetak predikat C.
- Jika tidak, artinya rata < 70, maka cetak predikat D. Untuk kondisi terakhir, cukup menggunakan keyword "else".
Setelah itu, user akan ditanya oleh program, apakau mau reset data dan mengulangi dari awal lagi. Jika jawaban ya, dalam hal ini cukup 1 huruf "y" saja, maka program akan mengulangi permintaan input nilai ulangan dari awal. Sebaliknya, program selesai.
______________
Contoh Hasil Eksekusi Program
(dapat juga dilihat pada gambar tangkapan layar)
Nilai Ulangan 1: 95
Nilai Ulangan 2: 85
Nilai Ulangan 3: 80
Nilai Ulangan 4: 90
Hasil:
=> Jumlah nilai = 350
=> Rata-rata nilai = 87.5
=> PREDIKAT = B
Reset [y = ya] ? y
Nilai Ulangan 1: 90
Nilai Ulangan 2: 95
Nilai Ulangan 3: 100
Nilai Ulangan 4: 99
Hasil:
=> Jumlah nilai = 384
=> Rata-rata nilai = 96
=> PREDIKAT = A
Reset [y = ya] ? y
Nilai Ulangan 1: 65
Nilai Ulangan 2: 70
Nilai Ulangan 3: 80
Nilai Ulangan 4: 85
Hasil:
=> Jumlah nilai = 300
=> Rata-rata nilai = 75
=> PREDIKAT = C
Reset [y = ya] ? t
(selesai)
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: Fri, 25 Nov 22