Menu
CoddyTech

Rangkuman: Nilai Siswa

Termasuk bagian Pemrograman Berorientasi Object dalam perjalanan Lua di Coddy. Pelajaran 18 dari 70.

challenge icon

Tantangan

Mudah

Mari kita buat class Student lengkap yang menggabungkan semua hal yang telah kamu pelajari di bab ini: variabel instance, getter, setter, dan property yang dihitung, semuanya bekerja bersama!

Kamu akan mengatur kodemu di dua file:

  • Student.lua: Definisikan class Student dengan pola prototype standar. Setiap siswa harus menyimpan name dan grade. Class-mu memerlukan:
    • Constructor :new(name, grade)
    • Getter :getName() yang mengembalikan nama siswa
    • Getter :getGrade() yang mengembalikan nilai saat ini
    • Setter :setGrade(newGrade) yang memperbarui nilai
    • Method :hasPassed(threshold) yang mengembalikan true jika nilai siswa lebih besar dari atau sama dengan ambang batas, dan false jika tidak
  • main.lua: Gunakan require untuk memuat module Student-mu dan tunjukkan semua fungsinya dengan membuat seorang siswa, memeriksa statusnya, memperbarui nilainya, dan memastikan perubahannya.

Kamu akan menerima empat input:

  1. Nama siswa
  2. Nilai awal
  3. Ambang batas kelulusan yang akan diperiksa
  4. Nilai baru yang akan ditetapkan

Di file utama, buat seorang siswa dengan nama dan nilai awal yang diberikan, lalu cetak hal-hal berikut pada baris terpisah:

  1. Nama siswa
  2. Nilai awal siswa
  3. Apakah siswa lulus dengan ambang batas yang diberikan (cetak true atau false)
  4. Nilai siswa setelah diperbarui dengan nilai baru
  5. Apakah siswa lulus dengan ambang batas yang sama setelah nilainya diperbarui

Misalnya, jika inputnya adalah Emma, 55, 60, dan 75, outputnya akan seperti berikut:

Emma
55
false
75
true

Awalnya, Emma memiliki nilai 55, yang belum memenuhi ambang batas kelulusan 60. Setelah nilainya diperbarui menjadi 75, sekarang dia lulus!

Coba sendiri

-- Muat module Student dengan require
local Student = require('Student')

-- Baca input
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())

-- TODO: Buat siswa dengan nama dan nilai awal yang diberikan

-- TODO: Cetak nama siswa menggunakan getter

-- TODO: Cetak nilai awal siswa menggunakan getter

-- TODO: Periksa dan cetak apakah siswa lulus berdasarkan ambang batas yang diberikan

-- TODO: Perbarui nilai siswa menggunakan setter

-- TODO: Cetak nilai baru siswa

-- TODO: Periksa dan cetak apakah siswa lulus setelah nilainya diperbarui

Semua pelajaran di Pemrograman Berorientasi Object

Latihan sendiri: Compiler Lua online