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 buat 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 baik sekaligus menyediakan akses terkendali melalui getter, setter, dan property terhitung.

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
    • Sebuah constructor yang menerima id, nama, dan daftar nilai awal
    • Getter gradeCount yang mengembalikan jumlah nilai yang tercatat
    • Getter terhitung average yang menghitung dan mengembalikan rata-rata semua nilai sebagai double (mengembalikan 0.0 jika tidak ada nilai)
    • Getter terhitung letterGrade yang mengembalikan huruf berdasarkan rata-rata: 'A' untuk 90+, '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 dengan 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, yaitu 150
  
  // TODO: Tambahkan nilai 88
  
  // TODO: Panggil displayRecord()
  
  // TODO: Cetak "Highest grade: [highest]"
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Dart online