using System.Collections.Generic;
public static void Main()
Employees e = new Employees();
Managers m = new Managers();
Console.WriteLine("Silahkan pilih salah satu data yang ingin diolah!");
Console.WriteLine("=================================================");
Console.WriteLine("1. Employee");
Console.WriteLine("2. Manager");
Console.WriteLine("3. Keluar");
Console.Write("Masukkan menu: ");
x = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Silahkan pilih salah satu menu!");
Console.WriteLine("===============================");
Console.WriteLine("1. Tambah data");
Console.WriteLine("2. Hapus data");
Console.WriteLine("3. Count data dengan nama");
Console.WriteLine("4. Lihat data");
Console.WriteLine("5. Keluar");
Console.Write("Masukkan menu: ");
x = Convert.ToInt32(Console.ReadLine());
Console.Write("Masukkan ID employee: ");
String id = Console.ReadLine();
Console.Write("Masukkan nama employee: ");
String nama = Console.ReadLine();
Console.Write("Masukkan divisi employee: ");
String divisi = Console.ReadLine();
Console.Write("Masukkan ID manager employee: ");
String managerId = Console.ReadLine();
Console.Write("Masukkan tahun masuk employee: ");
int tahunMasuk = Convert.ToInt32(Console.ReadLine());
Console.Write("Masukkan gaji employee: ");
int gaji = Convert.ToInt32(Console.ReadLine());
e.tambahEmployee(new Employee(id, nama, tahunMasuk, divisi, gaji, managerId));
Console.WriteLine("Masukkan nama employee yang akan dihapus: ");
nama = Console.ReadLine();
e.hapusEmployee(new Employee(){nama=nama});
Console.WriteLine("Masukkan nama employee yang akan dicari: ");
nama = Console.ReadLine();
e.cariEmployee(new Employee(){nama=nama});
Console.WriteLine("ID # Nama # Tahun Masuk # Divisi # Gaji # Manager");
Console.WriteLine("===============================================================");
Console.WriteLine("Terima kasih telah menggunakan program ini, \nPerlu diingat bahwa program ini adalah sekunder sehingga setelah anda keluar data-data yang telah diolah akan terhapus.");
Console.WriteLine("Silahkan pilih salah satu menu!");
Console.WriteLine("===============================");
Console.WriteLine("1. Tambah data");
Console.WriteLine("2. Hapus data");
Console.WriteLine("3. Count data dengan nama");
Console.WriteLine("4. Lihat data");
Console.WriteLine("5. Keluar");
Console.Write("Masukkan menu: ");
x = Convert.ToInt32(Console.ReadLine());
Console.Write("Masukkan ID manager: ");
String id = Console.ReadLine();
Console.Write("Masukkan nama manager: ");
String nama = Console.ReadLine();
Console.Write("Masukkan divisi manager: ");
String divisi = Console.ReadLine();
Console.Write("Masukkan tahun masuk manager: ");
int tahunMasuk = Convert.ToInt32(Console.ReadLine());
Console.Write("Masukkan gaji manager: ");
int gaji = Convert.ToInt32(Console.ReadLine());
m.tambahManager(new Manager(id, nama, tahunMasuk, divisi, gaji));
Console.WriteLine("Masukkan nama manager yang akan dihapus: ");
nama = Console.ReadLine();
m.hapusManager(new Manager(){nama=nama});
Console.WriteLine("Masukkan nama manager yang akan dicari: ");
nama = Console.ReadLine();
m.cariManager(new Manager(){nama=nama});
Console.WriteLine("ID # Nama # Tahun Masuk # Divisi # Gaji # Manager");
Console.WriteLine("===============================================================");
Console.WriteLine("Terima kasih telah menggunakan program ini, \nPerlu diingat bahwa program ini adalah sekunder sehingga setelah anda keluar data-data yang telah diolah akan terhapus.");
Console.WriteLine("Terima kasih telah menggunakan program ini, \nPerlu diingat bahwa program ini adalah sekunder sehingga setelah anda keluar data-data yang telah diolah akan terhapus.");
Console.WriteLine("Hello World");
e.tambahEmployee(new Employee("E001", "Budi", 2000, "ITERP", 100000, "M001"));
e.tambahEmployee(new Employee("E002", "Jiwo", 2000, "ITERP", 100000, "M001"));
e.tambahEmployee(new Employee("E002", "Jiwo", 2000, "ITERP", 100000, "M001"));
Console.WriteLine("ID # Nama # Tahun Masuk # Divisi # Gaji # Manager");
Console.WriteLine("===============================================================");
e.cariEmployee(new Employee(){nama="Budi"});
e.hapusEmployee(new Employee(){nama="Budi"});
Console.WriteLine("ID # Nama # Tahun Masuk # Divisi # Gaji # Manager");
Console.WriteLine("===============================================================");
m.tambahManager(new Manager("M001", "Budi", 2000, "ITERP", 1000000));
m.tambahManager(new Manager("M002", "Jiwo", 2000, "ITERP", 1000000));
Console.WriteLine("ID # Nama # Tahun Masuk # Divisi # Gaji ");
Console.WriteLine("=====================================================");
m.cariManager(new Manager(){nama="Budi"});
m.hapusManager(new Manager(){nama="Budi"});
Console.WriteLine("ID # Nama # Tahun Masuk # Divisi # Gaji ");
Console.WriteLine("=====================================================");
double bonusEmployee(double gaji);
public class Employee : FunctEmployee
private double bonus = 5;
public String id {set; get;}
public String nama {set; get;}
public int tahunMasuk {set; get;}
public String divisi {set; get;}
public double gaji {set; get;}
public String managerId {set; get;}
public Employee(String id)
public Employee(String id, String nama, int tanggalMasuk, String divisi, double gaji, String managerId)
this.tahunMasuk = tanggalMasuk;
this.managerId = managerId;
public override bool Equals(object obj) {
var pembanding = obj as Employee;
if (pembanding.nama == this.nama) return true;
public void printEmployee()
Console.WriteLine(id+" # "+nama+" # "+tahunMasuk+" # "+divisi+" # "+bonusEmployee(this.gaji)+" # "+managerId);
public double bonusEmployee(double gaji)
return (gaji + (gaji*(bonus/100)));
public class Manager : Employee
public Manager(String id, String nama, int tanggalMasuk, String divisi, double gaji)
this.tahunMasuk = tanggalMasuk;
List<Manager> dataManagers = new List<Manager>();
public void tambahManager(Manager m)
if(!dataManagers.Contains(m))
this.dataManagers.Add(m);
Console.WriteLine("Data berhasil ditambahkan...!");
Console.WriteLine("Data sudah pernah ditambahkan...!");
Console.WriteLine("Kesalahan dalam sistem...!");
public void hapusManager(Manager m)
if (!dataManagers.Contains(m))
Console.WriteLine("Item tidak ditemukan");
Console.WriteLine("Data "+m.nama+" berhasil dihapus...!");
public void cariManager(Manager m)
if(!dataManagers.Contains(m))
Console.WriteLine("Data tidak ditemukan...!");
Console.WriteLine(index+" data yang ditemukan.");
public void tampilManager()
foreach(Manager m in this.dataManagers)
List<Employee> dataEmployees = new List<Employee>();
public void tambahEmployee(Employee e)
if(!dataEmployees.Contains(e))
this.dataEmployees.Add(e);
Console.WriteLine("Data berhasil ditambahkan...!");
Console.WriteLine("Data sudah pernah ditambahkan...!");
Console.WriteLine("Kesalahan dalam sistem...!");
public void hapusEmployee(Employee e)
if (!dataEmployees.Contains(e))
Console.WriteLine("Item tidak ditemukan");
Console.WriteLine("Data "+e.nama+" berhasil dihapus...!");
public void cariEmployee(Employee e)
if(!dataEmployees.Contains(e))
Console.WriteLine("Data tidak ditemukan...!");
Console.WriteLine(index+" data yang ditemukan.");
public void tampilEmployee()
foreach(Employee e in this.dataEmployees)