Berikut ini adalah pertanyaan dari noviaindriyani2811 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
Jika nilai < 82, grade C
Jika nilai < 90, grade B
Jika nilai > 89, grade A
Plss besok di kumpulin trs console.log nya sekalian
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Source code (Javascript)
// Deklarasi
let grade = "";
// Ambil nilai dari argumen
// Hanya agar tidak hardcoded saja
const nilai = parseInt(process.argv.slice(2));
// Valid atau nggak nih nilainya?
if (nilai < 0 || nilai > 100 || isNaN(nilai)) {
console.error("Nilai tidak valid!");
process.exit(0);
}
// Analisis kasus nilai
// Jika nilai < 60, grade D
// Jika nilai < 82, grade C
// Jika nilai < 90, grade B
// Jika nilai > 89, grade A
if (nilai < 60) grade = "D";
else if (nilai < 82) grade = "C";
else if (nilai < 90) grade = "B";
else grade = "A";
// Output nilai dan grade
console.log(`Nilai = ${nilai}`)
console.log(`Grade yang diperoleh = ${grade}`)
___________
Pembahasan
Yang terutama perlu dibahas adalah analisis kasusnya.
Kondisi-kondisinya adalah:
- Jika nilai < 60, grade D
- Jika nilai < 82, grade C
- Jika nilai < 90, grade B
- Jika nilai > 89, grade A
Jika tipe data variabel nilai adalah integer, maka pada kasus terakhir, cukup menggunakan “else” saja, karena kondisi tersebut merupakan kondisi terakhir yang tidak terpenuhi pada kondisi-kondisi sebelumnya.
Jika tipe data variabel nilai adalah float, maka 2 kasus terakhir “cacat” secara lojik, karena nilai 89.5 memenuhi kondisi nilai < 90 dan nilai > 89.
Oleh karena itu, tipe data variabel nilai memang harus integer. Oleh karena itu, pada script di atas, pada saat pengambilan nilai dari argumen digunakan fungsi parseInt().
Pada script di atas, variabel nilai diambil dari argumen/parameter, agar tidak hardcoded dalam kode program. Untuk menjalankan dari console, saya gunakan nodejs.
Kemudian, perlu diperhatikan bahwa pada 2 baris terakhir (console.log()), digunakan karakter backtick, bukan tanda kutip tunggal atau ganda, agar dapat menuliskan output dengan ${variabel}.
___________
Contoh hasil running
(dapat dilihat juga pada gambar)
$ node predikat-nilai-2.js
Nilai tidak valid!
$ node predikat-nilai-2.js 60
Nilai = 60
Grade yang diperoleh = C
$ node predikat-nilai-2.js 59
Nilai = 59
Grade yang diperoleh = D
$ node predikat-nilai-2.js 75
Nilai = 75
Grade yang diperoleh = C
$ node predikat-nilai-2.js 82
Nilai = 82
Grade yang diperoleh = B
$ node predikat-nilai-2.js 90
Nilai = 90
Grade yang diperoleh = A
$ node predikat-nilai-2.js 150
Nilai tidak valid!
$ node predikat-nilai-2.js -3
Nilai tidak valid!
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: Tue, 06 Dec 22