using System.Collections.Generic;
public abstract class Pegawai
public string id {get; set;}
public string nama {get; set;}
public int lamakerja {get; set;}
public int gajipokok {get; set;}
public int totalgaji {get; set;}
public abstract int HitungGaji(int gajipokok, int lamakerja);
public class Karyawan : Pegawai
private int bonus = 7000;
public Karyawan(string idKaryawan, string namaKaryawan, int lamaKerja, int gajiPokok)
this.nama = namaKaryawan;
this.lamakerja = lamaKerja;
this.gajipokok = gajiPokok;
this.totalgaji = HitungGaji(gajipokok, lamakerja);
public override int HitungGaji(int gajipokok, int lamakerja)
total = this.gajipokok + (bonus * this.lamakerja);
public class Program : Karyawan
public static void Main()
List<Karyawan> karyawanList = new List<Karyawan>();
pilihmenu = int.Parse(Console.ReadLine());
InputDataGajiKaryawan(karyawanList);
TampilDataGajiKaryawan(karyawanList);
Console.Write("Cari ID : ");
string id = Console.ReadLine();
TampilDataGajiKaryawan(karyawanList,id);
UbahDataGajiKaryawan(karyawanList);
HapusDataGajiKaryawan(karyawanList);
Console.WriteLine("Program Hitung Gaji Karyawan Selesai");
Console.WriteLine("Inputan Salah, ULANGI. Tekan ENTER untuk kembali ke Menu");
public static void InputDataGajiKaryawan(List<Karyawan> karyawanList)
Console.WriteLine("--------Masukkan Data Karyawan--------");
Console.WriteLine("--------------------------------------");
Console.Write("ID Karyawan : ");
string id = Console.ReadLine();
Console.Write("Nama Karyawan : ");
string nama = Console.ReadLine();
Console.Write("Lama Kerja (Bulan) : ");
int lamakerja = int.Parse(Console.ReadLine());
Console.Write("Gaji Pokok : ");
int gajipokok = int.Parse(Console.ReadLine());
karyawanList.Add(new Karyawan(id, nama, lamakerja, gajipokok));
Console.WriteLine("Tekan ENTER untuk kembali ke Menu");
public static void TampilDataGajiKaryawan(List<Karyawan> karyawanList, string id)
Console.WriteLine("---------Lihat Data Gaji Berdasarkan ID : "+id+"---------");
foreach (var karyawan in karyawanList)
Console.WriteLine("ID Karyawan : " + karyawan.id);
Console.WriteLine("Nama Karyawan : " + karyawan.nama);
Console.WriteLine("Lama Kerja " + karyawan.nama + " : " + karyawan.lamakerja + " Bulan");
Console.WriteLine("Gaji Pokok " + karyawan.nama + " : Rp. " + karyawan.gajipokok);
Console.WriteLine("Total Gaji " + karyawan.nama + " : Rp. " + karyawan.totalgaji);
else if(id != karyawan.id)
Console.WriteLine("ID Karyawan Tidak Ditemukan");
Console.WriteLine("Tekan ENTER untuk kembali ke Menu");
public static void TampilDataGajiKaryawan(List<Karyawan> karyawanList)
Console.WriteLine("---------Lihat Data Gaji Karyawan---------");
Console.WriteLine("------------------------------------------");
foreach (var karyawan in karyawanList)
Console.WriteLine("ID Karyawan : " + karyawan.id);
Console.WriteLine("Nama Karyawan : " + karyawan.nama);
Console.WriteLine("Lama Kerja " + karyawan.nama + " : " + karyawan.lamakerja + " Bulan");
Console.WriteLine("Gaji Pokok " + karyawan.nama + " : Rp. " + karyawan.gajipokok);
Console.WriteLine("Total Gaji " + karyawan.nama + " : Rp. " + karyawan.totalgaji);
Console.WriteLine("Tekan ENTER untuk kembali ke Menu");
public static void UbahDataGajiKaryawan(List<Karyawan> karyawanList)
Console.WriteLine("---------Ubah Data Gaji Karyawan---------");
Console.WriteLine("------------------------------------------");
Console.WriteLine("Masukkan ID Karyawan : ");
string ID = Console.ReadLine();
foreach (var karyawan in karyawanList)
Console.WriteLine("Data Karyawan Dengan ID " + karyawan.id);
Console.WriteLine("Nama Karyawan : " + karyawan.nama);
Console.WriteLine("Lama Kerja " + karyawan.nama + " : " + karyawan.lamakerja + " Bulan");
Console.WriteLine("Gaji Pokok " + karyawan.nama + " : Rp. " + karyawan.gajipokok);
Console.WriteLine("Masukkan Data Gaji Karyawan");
Console.Write("Nama Karyawan : ");
karyawan.nama = Console.ReadLine();
Console.Write("Lama Kerja (Bulan) : ");
karyawan.lamakerja = int.Parse(Console.ReadLine());
Console.Write("Gaji Pokok : ");
karyawan.gajipokok = int.Parse(Console.ReadLine());
karyawan.totalgaji = karyawan.HitungGaji(karyawan.gajipokok, karyawan.lamakerja);
Console.Write("DATA GAJI KARYAWAN BERHASIL DIUBAH");
else if(ID != karyawan.id)
Console.WriteLine("ID Karyawan Tidak Ditemukan");
Console.WriteLine("Tekan ENTER untuk kembali ke Menu");
public static void HapusDataGajiKaryawan(List<Karyawan> karyawanList)
Console.WriteLine("---------Hapus Data Gaji Karyawan---------");
Console.WriteLine("------------------------------------------");
Console.WriteLine("Masukkan ID Karyawan : ");
string ID = Console.ReadLine();
foreach (var karyawan in karyawanList)
if (karyawan.id.Equals(ID))
karyawanList.Remove(karyawan);
Console.Write("DATA GAJI KARYAWAN BERHASIL DIHAPUS");
else if(!karyawan.id.Equals(ID))
Console.WriteLine("ID Karyawan Tidak Ditemukan");
Console.WriteLine("Tekan ENTER untuk kembali ke Menu");
public static void Menu()
Console.WriteLine("==========MENU HITUNG GAJI KARYAWAN==========");
Console.WriteLine("---------------------------------------------");
Console.WriteLine("1.Input Data Gaji Karyawan");
Console.WriteLine("2.Tampil Seluruh Data Gaji Karyawan");
Console.WriteLine("3.Tampil Data Berdasarkan ID Karyawan");
Console.WriteLine("4.Ubah Data Gaji Karyawan");
Console.WriteLine("5.Hapus Data Gaji Karyawan");
Console.WriteLine("6.Keluar Program");
Console.Write("Masukkan Inputan Menu : ");