using System.Collections.Generic;
public abstract class Header
public abstract void Welcome();
public class WelcomeHeader : Header{
public override void Welcome()
Console.WriteLine("\t\t============================");
Console.WriteLine("\t\t Menghitung Gaji Karyawan");
Console.WriteLine("\t\t============================");
Console.WriteLine("============================");
Console.WriteLine("Apa yang ingin anda lakukan?");
Console.WriteLine("============================");
public class DaftarMenu : Menu
public string list1 = "1. Lihat Karyawan";
public string list2 = "2. Gaji Karyawan";
public class Polymorphism
public virtual void Footer()
Console.WriteLine("Selamat Gajian");
public class Loyal : Polymorphism
public override void Footer()
Console.WriteLine("Enak ya Gajian");
public class Fee : Polymorphism
Console.WriteLine("Traktiran");
public void setName(string n)
public void setJabatan(string j)
public string getJabatan()
public virtual void DisplayBoss(){
Console.WriteLine("==============");
Console.WriteLine("Name : "+name);
Console.WriteLine("Job : "+jabatan);
Console.WriteLine("==============");
public class DetailKaryawan
public string name {get; set;}
public string nip {get; set;}
public int gaji {get; set;}
public int keluarga {get; set;}
public int masa {get; set;}
public static void Main()
List<DetailKaryawan> karyawan = new List<DetailKaryawan>(){
new DetailKaryawan { name = "Dodi", nip = "A11000", gaji = 5000000},
new DetailKaryawan { name = "Didi", nip = "A11001", gaji = 5500000},
new DetailKaryawan { name = "Dede", nip = "A11002", gaji = 6000000}
WelcomeHeader menu = new WelcomeHeader();
DaftarMenu daftarmenu = new DaftarMenu();
Console.WriteLine(daftarmenu.list1 + "\n" + daftarmenu.list2);
int List = Convert.ToInt32(Console.ReadLine());
if(List > 2 || List < 1){
Console.WriteLine("\nPlease Input the Right Number");
List = Convert.ToInt32(Console.ReadLine());
for(int i=0; i < karyawan.Count; i++){
Console.WriteLine((i+1) + ". Nama " + karyawan[i].name + " || NIP " + karyawan[i].nip);
Console.WriteLine("\n9. Back");
List = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(daftarmenu.list1 + "\n" + daftarmenu.list2);
List = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Pilih Id");
for(int i=0; i < karyawan.Count; i++){
Console.WriteLine((i+1) + ". Nama : " + karyawan[i].name + " || NIP :" + karyawan[i].nip);
List = Convert.ToInt32(Console.ReadLine());
Console.Write("Anda Memilih : " + karyawan[List-1].name +"\n");
Console.Write("Sudah Menikah? (y/n)");
string status = Console.ReadLine();
Console.Write("Sudah Berapa (Tahun) Lama Bekerja Disini?");
int masa = int.Parse(Console.ReadLine());
int loyalti = masa * karyawan[List-1].gaji * 5 / 1000;
int tunjangan = (karyawan[List-1].gaji * 10) / 100;
int totalgaji = karyawan[List-1].gaji + tunjangan + masa * (karyawan[List-1].gaji * 5 / 1000);
Console.WriteLine("\nTotal Gaji : Gaji Pokok Rp." + karyawan[List-1].gaji + " + Tunjangan Nikah Rp." + tunjangan +
" + Lama Bekerja Rp." + loyalti + " = Rp." + totalgaji + "\n");
int loyalti = masa * karyawan[List-1].gaji * 5 / 1000;
int totalgaji = karyawan[List-1].gaji + tunjangan + masa * (karyawan[List-1].gaji * 5 / 1000);
Console.WriteLine("\nTotal Gaji : Gaji Pokok Rp." + karyawan[List-1].gaji + " + Tunjangan Nikah Rp." + tunjangan +
" + Lama Bekerja Rp." + loyalti + " = Rp." + totalgaji + "\n");
Console.Write("Anda Memilih : " + karyawan[List-1].name +"\n");
Console.Write("Sudah Menikah? (y/n)");
string status = Console.ReadLine();
Console.Write("Sudah Berapa (Tahun) Lama Bekerja Disini?");
int masa = int.Parse(Console.ReadLine());
int loyalti = masa * karyawan[List-1].gaji * 5 / 1000;
int tunjangan = (karyawan[List-1].gaji * 10) / 100;
int totalgaji = karyawan[List-1].gaji + tunjangan + masa * (karyawan[List-1].gaji * 5 / 1000);
Console.WriteLine("\nTotal Gaji : Gaji Pokok Rp." + karyawan[List-1].gaji + " + Tunjangan Nikah Rp." + tunjangan +
" + Lama Bekerja Rp." + loyalti + " = Rp." + totalgaji + "\n");
int loyalti = masa * karyawan[List-1].gaji * 5 / 1000;
int totalgaji = karyawan[List-1].gaji + tunjangan + masa * (karyawan[List-1].gaji * 5 / 1000);
Console.WriteLine("\nTotal Gaji : Gaji Pokok Rp." + karyawan[List-1].gaji + " + Tunjangan Nikah Rp." + tunjangan +
" + Lama Bekerja Rp." + loyalti + " = Rp." + totalgaji + "\n");
Console.Write("Anda Memilih : " + karyawan[List-1].name +"\n");
Console.Write("Sudah Menikah? (y/n)");
string status = Console.ReadLine();
Console.Write("Sudah Berapa (Tahun) Lama Bekerja Disini?");
int masa = int.Parse(Console.ReadLine());
int loyalti = masa * karyawan[List-1].gaji * 5 / 1000;
int tunjangan = (karyawan[List-1].gaji * 10) / 100;
int totalgaji = karyawan[List-1].gaji + tunjangan + masa * (karyawan[List-1].gaji * 5 / 1000);
Console.WriteLine("\nTotal Gaji : Gaji Pokok Rp." + karyawan[List-1].gaji + " + Tunjangan Nikah Rp." + tunjangan +
" + Lama Bekerja Rp." + loyalti + " = Rp." + totalgaji + "\n");
int loyalti = masa * karyawan[List-1].gaji * 5 / 1000;
int totalgaji = karyawan[List-1].gaji + tunjangan + masa * (karyawan[List-1].gaji * 5 / 1000);
Console.WriteLine("\nTotal Gaji : Gaji Pokok Rp." + karyawan[List-1].gaji + " + Tunjangan Nikah Rp." + tunjangan +
" + Lama Bekerja Rp." + loyalti + " = Rp." + totalgaji + "\n");
obj = new Polymorphism();