#region Abstraction - Marketplace
abstract class Marketplace
public string NamaMarketplace { get; set; }
public string EmailAkun { get; set; }
public Marketplace(string nama, string email)
public void TampilkanInfo()
Console.WriteLine($"Marketplace: {NamaMarketplace}, Email: {EmailAkun}");
class Shopee : Marketplace
public Shopee(string email) : base("Shopee", email) { }
class Tokopedia : Marketplace
public Tokopedia(string email) : base("Tokopedia", email) { }
class Alibaba : Marketplace
public Alibaba(string email) : base("Alibaba", email) { }
public JDID(string email) : base("JD.ID", email) { }
#region Polymorphism - Shopee Services
public virtual void Layanan()
Console.WriteLine("Layanan dari Shopee");
class ShopeePay : ShopeeBase
public override void Layanan()
Console.WriteLine("Layanan ShopeePay: Dompet Digital Shopee");
class SeaBank : ShopeeBase
public override void Layanan()
Console.WriteLine("Layanan SeaBank: Bank Digital Shopee");
class SPayLater : ShopeeBase
public override void Layanan()
Console.WriteLine("Layanan SPayLater: Kredit Belanja Shopee");
#region Abstraction & Polymorphism - Pajak
public abstract void DetailPajak(string jenis, string nama, string wajibPajak);
public abstract void PeriodePajak(int bulan, int tahun);
class PajakKendaraan : Pajak
public override void DetailPajak(string jenis, string nama, string wajibPajak)
Console.WriteLine($"Jenis Pajak: {jenis}, Nama Pajak: {nama}, Wajib Pajak: {wajibPajak}");
public override void PeriodePajak(int bulan, int tahun)
Console.WriteLine($"Periode Pajak: {bulan}/{tahun}");
Console.WriteLine("°°°°°°°°°°°°°°°°");
Console.WriteLine(" by nanda ");
Console.WriteLine("°°°°°°°°°°°°°°°°");
Console.WriteLine("=== Abstraction - Marketplace ===");
Marketplace[] marketplaces = {
new Shopee("user@shopee.com"),
new Tokopedia("user@tokopedia.com"),
new Alibaba("user@alibaba.com"),
new JDID("user@jdid.com")
foreach (var marketplace in marketplaces)
marketplace.TampilkanInfo();
Console.WriteLine("\n=== Polymorphism - Shopee Services ===");
foreach (var item in layanan)
Console.WriteLine("\n=== Abstraction & Polymorphism - Pajak ===");
Pajak pajakKendaraan = new PajakKendaraan();
pajakKendaraan.DetailPajak("Pajak Kendaraan", "PKB", "Budi Santoso");
pajakKendaraan.PeriodePajak(3, 2025);
Console.WriteLine("\nTekan tombol apa saja untuk keluar...");