Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- // interface Lembur {
- // getTunjanganLembur()
- // getStatusKaryawan()
- // }
- abstract class AbstrakKaryawan {
- constructor(public TahunLahir:number){}
- abstract getSisaMasaPensiun():any
- getTahunLahir():any{
- console.log(`${this.TahunLahir}`)
- }
- }
- class Karyawan extends AbstrakKaryawan {
- constructor(private Firstname:string, private Lastname:string, public TahunMasuk: number, TahunLahir:number){
- super(TahunLahir)
- }
- getNamaLengkap():any{
- return(`Nama Lengkap : ${this.Firstname} ${this.Lastname}`)
- }
- protected getDataKaryawan():any{
- console.log(`${this.Firstname} ${this.Lastname} ${this.TahunMasuk}`)
- }
- setNamaKaryawan(setfirsname:string, setlastname:string):any {
- this.Firstname = setfirsname
- this.Lastname = setlastname
- console.log(`${this.Firstname} ${this.Lastname}`)
- }
- getSisaMasaPensiun() {
- let year = new Date().getFullYear()
- let sisa_pensiun = 60 - (year - this.TahunLahir)
- console.log(sisa_pensiun)
- }
- //override
- getStatusKaryawan():any {
- let year = new Date().getFullYear()
- let masakerja = year - this.TahunMasuk
- if (masakerja < 1) {
- return(`Masih dalam Masa Probation`)
- } else {
- return(`Adalah Karyawan Tetap`)
- }
- }
- //overload
- getTunjanganLembur():any
- getTunjanganLembur(hour:any):any
- getTunjanganLembur(hour?:any):any {
- if(hour>=1) {
- let tambahan = new Intl.NumberFormat("id-ID", {
- style: "currency",
- currency: "IDR",
- }).format(hour * 100_000);
- console.log(`Lembur ${hour} jam mendapatkan tunjangan lembur : ${tambahan}`)
- } else {
- console.log(`Tidak mendapatkan tunjangan lembur`)
- }
- }
- }
- class inheritanceKaryawan extends Karyawan {
- constructor(Firstname:string, Lastname:string, TahunMasuk:number, TahunLahir:number, public gaji:number, public posisi:string) {
- super(Firstname, Lastname, TahunMasuk, TahunLahir)
- }
- getDetailDataKaryawan() {
- console.log(`${this.getNamaLengkap()} tahun masuk ${this.TahunMasuk} tahun lahir ${this.TahunLahir} gaji ${this.gaji} posisi ${this.posisi}`)
- }
- getBonus(){
- const tahun = new Date().getFullYear()
- const bonus = tahun - this.TahunMasuk
- if(bonus > 1) {
- console.log("Mendapatkan bonus 1 bulan gaji")
- } else {
- console.log("Belum mendapatkan bonus gaji")
- }
- }
- getStatusKaryawan():any {
- console.log(`${this.getNamaLengkap()} `+super.getStatusKaryawan())
- }
- }
- // const emp = new Karyawan("Dan", "Jon", 2016, 1999)
- // emp.getNamaLengkap()
- // emp.setNamaKaryawan("Alvin", "Faiz")
- // emp.getNamaLengkap()
- // emp.getSisaMasaPensiun()
- const emp2 = new inheritanceKaryawan("Alvin", "Faiz", 2021, 1999, 5_000_000, "Programmer")
- // emp2.getBonus()
- emp2.getStatusKaryawan()
- emp2.getTunjanganLembur(5)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement