Menu
CoddyTech

Ringkasan: Pengelola Pengguna

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

challenge icon

Tantangan

Mudah

Mari bangun sistem manajemen pengguna: aplikasi praktis yang bisa kamu temukan di banyak program di dunia nyata! Kamu akan membuat dua class yang bekerja bersama: satu mewakili setiap pengguna, dan satu lagi mengelola kumpulan pengguna secara efisien.

Kamu akan mengatur kodemu dalam tiga file:

  • User.lua: Buat class User yang mewakili satu pengguna dalam sistem. Setiap pengguna memiliki id dan name. Sertakan method :getInfo() yang mengembalikan string dengan format "ID: {id}, Name: {name}".
  • UserManager.lua: Buat class manager yang menangani kumpulan pengguna. Pikirkan cara menyimpan pengguna agar pencarian lebih efisien: menggunakan ID pengguna sebagai kunci tabel akan membuat pencarian dan penghapusan pengguna jauh lebih mudah daripada mencari melalui list. Manager-mu memerlukan:
    • :addUser(user): menambahkan object User ke kumpulan
    • :removeUser(id): menghapus pengguna berdasarkan ID mereka
    • :findUser(id): mengembalikan User dengan ID yang cocok, atau nil jika tidak ditemukan
    • :listUsers(): mencetak info semua pengguna, satu per baris
  • main.lua: Satukan semuanya! Buat UserManager, tambahkan beberapa pengguna berdasarkan input yang kamu terima, lakukan operasi, lalu tampilkan hasilnya.

Kamu akan menerima lima input:

  1. ID pengguna pertama (sebuah angka)
  2. Nama pengguna pertama
  3. ID pengguna kedua (sebuah angka)
  4. Nama pengguna kedua
  5. ID pengguna yang akan dicari (sebuah angka)

Di file utama:

  1. Buat UserManager dan tambahkan kedua pengguna
  2. Panggil :listUsers() untuk mencetak semua pengguna
  3. Hapus pengguna pertama (menggunakan ID pertama)
  4. Cetak "After removal:"
  5. Panggil :listUsers() lagi
  6. Cari pengguna dengan ID input kelima, jika ditemukan, cetak infonya; jika tidak ditemukan, cetak "User not found"

Misalnya, jika inputnya adalah 101, Alice, 102, Bob, dan 102, outputnya seharusnya:

ID: 101, Name: Alice
ID: 102, Name: Bob
After removal:
ID: 102, Name: Bob
ID: 102, Name: Bob

Jika inputnya adalah 201, Charlie, 202, Diana, dan 201, outputnya seharusnya:

ID: 201, Name: Charlie
ID: 202, Name: Diana
After removal:
ID: 202, Name: Diana
User not found

Perhatikan pada contoh kedua, setelah menghapus pengguna 201 (Charlie), pencarian untuk ID tersebut mengembalikan "User not found" karena mereka tidak lagi ada di dalam sistem!

Coba sendiri

-- main.lua: Gabungkan semuanya

local User = require('User')
local UserManager = require('UserManager')

-- Baca input
local id1 = tonumber(io.read())
local name1 = io.read()
local id2 = tonumber(io.read())
local name2 = io.read()
local searchId = tonumber(io.read())

-- TODO: Buat instance UserManager

-- TODO: Buat dua object User dengan data input

-- TODO: Tambahkan kedua pengguna ke manager

-- TODO: Panggil listUsers() untuk menampilkan semua pengguna

-- TODO: Hapus pengguna pertama (menggunakan id1)

-- TODO: Cetak "After removal:"

-- TODO: Panggil listUsers() lagi

-- TODO: Cari pengguna dengan searchId
-- Jika ditemukan, cetak informasinya; jika tidak, cetak "User not found"

Semua pelajaran di Pemrograman Berorientasi Object

Latihan sendiri: Compiler Lua online