6.1 KiB
Membuat Keputusan: Pemroses Nilai Siswa
Tujuan Pembelajaran
Dalam tugas ini, Anda akan mempraktikkan konsep pengambilan keputusan dari pelajaran ini dengan membangun program yang memproses nilai siswa dari berbagai sistem penilaian. Anda akan menggunakan pernyataan if...else, operator perbandingan, dan operator logika untuk menentukan siswa mana yang lulus mata pelajaran mereka.
Tantangan
Anda bekerja di sebuah sekolah yang baru saja bergabung dengan institusi lain. Sekarang Anda perlu memproses nilai siswa dari dua sistem penilaian yang sepenuhnya berbeda dan menentukan siswa mana yang lulus. Ini adalah kesempatan sempurna untuk mempraktikkan logika kondisional!
Memahami Sistem Penilaian
Sistem Penilaian Pertama (Numerik)
- Nilai diberikan dalam angka dari 1-5
- Nilai lulus: 3 ke atas (3, 4, atau 5)
- Nilai gagal: Di bawah 3 (1 atau 2)
Sistem Penilaian Kedua (Huruf)
- Nilai menggunakan huruf:
A,A-,B,B-,C,C- - Nilai lulus:
A,A-,B,B-,C,C-(semua nilai yang terdaftar adalah nilai lulus) - Catatan: Sistem ini tidak mencakup nilai gagal seperti
DatauF
Tugas Anda
Diberikan array allStudents berikut yang mewakili semua siswa dan nilai mereka, buat array baru studentsWhoPass yang berisi semua siswa yang lulus sesuai dengan sistem penilaian masing-masing.
let allStudents = [
'A', // Letter grade - passing
'B-', // Letter grade - passing
1, // Numeric grade - failing
4, // Numeric grade - passing
5, // Numeric grade - passing
2 // Numeric grade - failing
];
let studentsWhoPass = [];
Pendekatan Langkah-demi-Langkah
- Buat loop untuk melalui setiap nilai dalam array
allStudents - Periksa jenis nilai (apakah itu angka atau string?)
- Terapkan aturan sistem penilaian yang sesuai:
- Untuk angka: periksa apakah nilai >= 3
- Untuk string: periksa apakah itu salah satu nilai huruf yang valid untuk lulus
- Tambahkan nilai yang lulus ke array
studentsWhoPass
Teknik Kode yang Berguna
Gunakan konsep JavaScript dari pelajaran ini:
- Operator typeof:
typeof grade === 'number'untuk memeriksa apakah itu nilai numerik - Operator perbandingan:
>=untuk membandingkan nilai numerik - Operator logika:
||untuk memeriksa beberapa kondisi nilai huruf - Pernyataan if...else: untuk menangani sistem penilaian yang berbeda
- Metode array:
.push()untuk menambahkan nilai yang lulus ke array baru Anda
Output yang Diharapkan
Saat Anda menjalankan program Anda, studentsWhoPass harus berisi: ['A', 'B-', 4, 5]
Mengapa nilai-nilai ini lulus:
'A'dan'B-'adalah nilai huruf yang valid (semua nilai huruf dalam sistem ini adalah nilai lulus)4dan5adalah nilai numerik >= 31dan2gagal karena mereka adalah nilai numerik < 3
Menguji Solusi Anda
Uji kode Anda dengan berbagai skenario:
// Test with different grade combinations
let testGrades1 = ['A-', 3, 'C', 1, 'B'];
let testGrades2 = [5, 'A', 2, 'C-', 4];
// Your solution should work with any combination of valid grades
Tantangan Bonus
Setelah Anda menyelesaikan tugas dasar, coba ekstensi berikut:
- Tambahkan validasi: Periksa nilai yang tidak valid (seperti angka negatif atau huruf yang tidak valid)
- Hitung statistik: Hitung berapa banyak siswa yang lulus vs. gagal
- Konversi nilai: Konversikan semua nilai ke satu sistem numerik (A=5, B=4, C=3, dll.)
Rubrik
| Kriteria | Unggul (4) | Mahir (3) | Berkembang (2) | Pemula (1) |
|---|---|---|---|---|
| Fungsionalitas | Program dengan benar mengidentifikasi semua nilai lulus dari kedua sistem | Program bekerja dengan masalah kecil atau kasus tepi | Program sebagian bekerja tetapi memiliki kesalahan logis | Program memiliki kesalahan signifikan atau tidak berjalan |
| Struktur Kode | Kode bersih, terorganisir dengan baik dengan logika if...else yang tepat | Struktur baik dengan pernyataan kondisional yang sesuai | Struktur dapat diterima dengan beberapa masalah organisasi | Struktur buruk, logika sulit diikuti |
| Penggunaan Konsep | Menggunakan operator perbandingan, operator logika, dan pernyataan kondisional secara efektif | Penggunaan konsep pelajaran yang baik dengan beberapa kekurangan | Beberapa penggunaan konsep pelajaran tetapi kehilangan elemen penting | Penggunaan konsep pelajaran terbatas |
| Pemecahan Masalah | Menunjukkan pemahaman yang jelas tentang masalah dan pendekatan solusi yang elegan | Pendekatan pemecahan masalah yang baik dengan logika yang solid | Pemecahan masalah yang memadai dengan beberapa kebingungan | Pendekatan tidak jelas, tidak menunjukkan pemahaman |
Panduan Pengumpulan
- Uji kode Anda secara menyeluruh dengan contoh yang diberikan
- Tambahkan komentar yang menjelaskan logika Anda, terutama untuk pernyataan kondisional
- Verifikasi output sesuai dengan hasil yang diharapkan:
['A', 'B-', 4, 5] - Pertimbangkan kasus tepi seperti array kosong atau tipe data yang tidak terduga
💡 Tips Pro: Mulailah dengan sederhana! Pastikan fungsionalitas dasar bekerja terlebih dahulu, lalu tambahkan fitur yang lebih canggih. Ingat, tujuan Anda adalah mempraktikkan logika pengambilan keputusan dengan alat yang Anda pelajari dalam pelajaran ini.
Penafian:
Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI Co-op Translator. Meskipun kami berusaha untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau interpretasi yang salah yang timbul dari penggunaan terjemahan ini.