Menu
CoddyTech

Ringkasan: Catatan Siswa

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Dart di Coddy. Pelajaran 35 dari 110.

challenge icon

Tantangan

Mudah

Mari kita bangun sistem catatan siswa yang menggabungkan semua konsep enkapsulasi yang telah kamu pelajari di bab ini. Kamu akan membuat class Student yang melindungi data akademik sensitif dengan benar sekaligus menyediakan akses terkontrol melalui getter, setter, dan property hasil komputasi.

Kamu akan mengatur kodemu ke dalam dua file:

  • student.dart: Definisikan class Student yang mengelola catatan akademik dengan enkapsulasi yang tepat:
    • final String id, ID siswa tidak boleh berubah setelah dibuat
    • String name publik, nama dapat diperbarui
    • List<int> _grades privat, daftar nilai mentah harus dilindungi
    • Constructor yang menerima id, nama, dan list nilai awal
    • Getter gradeCount yang mengembalikan jumlah nilai yang tercatat
    • Getter hasil komputasi average yang menghitung dan mengembalikan rata-rata semua nilai sebagai double (kembalikan 0.0 jika tidak ada nilai)
    • Getter hasil komputasi letterGrade yang mengembalikan nilai huruf berdasarkan rata-rata: 'A' untuk 90 ke atas, 'B' untuk 80-89, 'C' untuk 70-79, 'D' untuk 60-69, dan 'F' untuk di bawah 60
    • Method addGrade(int grade) yang hanya menerima nilai antara 0 dan 100 (inklusif). Jika valid, tambahkan nilai tersebut dan cetak Grade [grade] added for [name]. Jika tidak valid, cetak Invalid grade: [grade]
    • Method getHighestGrade() yang mengembalikan nilai tertinggi, atau 0 jika tidak ada nilai
    • Method displayRecord() yang menampilkan ringkasan akademik siswa
  • main.dart: Impor class siswa dan tunjukkan cara kerja enkapsulasi:
    • Buat siswa dengan id 'STU001', nama 'Emma', dan nilai awal [85, 92, 78]
    • Panggil displayRecord()
    • Tambahkan nilai 95
    • Coba tambahkan nilai tidak valid 150
    • Tambahkan nilai 88
    • Panggil displayRecord()
    • Cetak Highest grade: [highest]

Method displayRecord() harus mencetak dalam format ini:

===== Student Record =====
ID: [id]
Name: [name]
Grades Recorded: [gradeCount]
Average: [average]
Letter Grade: [letterGrade]

Output yang diharapkan:

===== Student Record =====
ID: STU001
Name: Emma
Grades Recorded: 3
Average: 85.0
Letter Grade: B
Grade 95 added for Emma
Invalid grade: 150
Grade 88 added for Emma
===== Student Record =====
ID: STU001
Name: Emma
Grades Recorded: 5
Average: 87.6
Letter Grade: B
Highest grade: 95

Coba sendiri

import 'student.dart';

void main() {
  // TODO: Buat siswa dengan id 'STU001', nama 'Emma', dan nilai awal [85, 92, 78]
  
  // TODO: Panggil displayRecord()
  
  // TODO: Tambahkan nilai 95
  
  // TODO: Coba tambahkan nilai tidak valid 150
  
  // TODO: Tambahkan nilai 88
  
  // TODO: Panggil displayRecord()
  
  // TODO: Cetak "Highest grade: [highest]"
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Dart online