Menu
CoddyTech

Rangkuman: Hierarki Karyawan

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C# di Coddy. Pelajaran 24 dari 70.

challenge icon

Tantangan

Mudah

Mari kita buat sistem hierarki karyawan yang menggabungkan semua konsep pewarisan dari bab ini. Kamu akan membuat struktur perusahaan dengan berbagai jenis karyawan yang memiliki atribut umum, tetapi menghitung bonusnya dengan cara berbeda.

Kamu akan menyusun kodemu dalam empat file:

  • Employee.cs: Definisikan class dasar Employee di namespace Company. Setiap karyawan memiliki Name (string) dan Salary (decimal). Buat constructor yang menerima kedua nilai tersebut. Tambahkan method virtual bernama CalculateBonus() yang secara default mengembalikan 10% dari gaji. Override ToString() agar mengembalikan "{Name} - ${Salary}".
  • Manager.cs: Definisikan class Manager di namespace Company yang mewarisi Employee. Manager memiliki property tambahan, yaitu TeamSize (int). Constructor harus menerima nama, gaji, dan ukuran tim, lalu menggunakan base untuk menginisialisasi induknya. Override CalculateBonus() agar mengembalikan 15% dari gaji ditambah $50 untuk setiap anggota tim. Override ToString() agar mengembalikan "{Name} - ${Salary} (Manager, Team: {TeamSize})".
  • Developer.cs: Definisikan class Developer di namespace Company yang mewarisi Employee. Developer memiliki property ProgrammingLanguage (string). Constructor menerima nama, gaji, dan bahasa pemrograman. Override CalculateBonus() agar mengembalikan 12% dari gaji. Override ToString() agar mengembalikan "{Name} - ${Salary} (Developer, {ProgrammingLanguage})".
  • Program.cs: Di file utama, buat satu karyawan untuk setiap jenis menggunakan nilai input. Simpan ketiganya dalam array berisi referensi Employee untuk menunjukkan polimorfisme. Lakukan perulangan pada array dan cetak hasil ToString() setiap karyawan, lalu bonusnya.

Kamu akan menerima enam input:

  • Nama karyawan dasar
  • Gaji karyawan dasar
  • Nama manager
  • Gaji manager
  • Ukuran tim manager
  • Nama developer
  • Gaji developer
  • Bahasa pemrograman developer

Cetak informasi dan bonus setiap karyawan dengan format berikut:

{ToString result}
Bonus: ${CalculateBonus result}

Contohnya, jika inputnya adalah John, 50000, Sarah, 80000, 5, Mike, 70000, dan C#, outputnya harus seperti berikut:

John - $50000
Bonus: $5000
Sarah - $80000 (Manager, Team: 5)
Bonus: $12250
Mike - $70000 (Developer, C#)
Bonus: $8400

Perhatikan bagaimana setiap jenis karyawan menghitung bonus dengan cara berbeda, tetapi kamu dapat memproses semuanya melalui satu array Employee. Inilah kekuatan menggabungkan pewarisan dengan polimorfisme!

Coba sendiri

using System;
using Company;

class Program
{
    public static void Main(string[] args)
    {
        // Baca input karyawan dasar
        string empName = Console.ReadLine();
        decimal empSalary = Convert.ToDecimal(Console.ReadLine());
        
        // Baca input manajer
        string mgrName = Console.ReadLine();
        decimal mgrSalary = Convert.ToDecimal(Console.ReadLine());
        int teamSize = Convert.ToInt32(Console.ReadLine());
        
        // Baca input pengembang
        string devName = Console.ReadLine();
        decimal devSalary = Convert.ToDecimal(Console.ReadLine());
        string progLang = Console.ReadLine();
        
        // TODO: Buat satu Employee, satu Manager, dan satu Developer
        
        // TODO: Simpan ketiganya dalam array Employee untuk menunjukkan polimorfisme
        
        // TODO: Lakukan perulangan pada array dan cetak hasil ToString() serta bonus setiap karyawan
        // Format:
        // {ToString result}
        // Bonus: ${CalculateBonus result}
    }
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler C# online