Menu
CoddyTech

Anggota Berbentuk Ekspresi

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C# di Coddy. Pelajaran 14 dari 70.

Member berbentuk ekspresi menyediakan sintaks ringkas untuk member yang hanya berisi satu ekspresi. Alih-alih menulis isi method atau property lengkap dengan kurung kurawal, kamu menggunakan sintaks panah =>.

Untuk method yang mengembalikan satu ekspresi, kamu bisa mengganti seluruh isi:

// method tradisional
public int Add(int a, int b)
{
    return a + b;
}

// method dengan isi berupa ekspresi
public int Add(int a, int b) => a + b;

Sintaks ini juga berfungsi untuk property hanya-baca, yang sudah kamu lihat sekilas:

public class Circle
{
    public double Radius { get; set; }
    public double Area => Math.PI * Radius * Radius;
    public double Circumference => 2 * Math.PI * Radius;
}

Kamu juga dapat menggunakan badan ekspresi untuk getter dan setter property secara terpisah:

private string name;
public string Name
{
    get => name;
    set => name = value.Trim();
}

Bahkan konstruktor dapat menggunakan sintaks ini jika hanya berisi satu pernyataan:

public class Person
{
    public string Name { get; }
    public Person(string name) => Name = name;
}

Member dengan isi berupa ekspresi membuat kodemu lebih mudah dibaca saat logikanya sederhana. Gunakan untuk operasi sederhana, tetapi tetap gunakan isi tradisional saat kamu memerlukan beberapa pernyataan atau logika yang kompleks.

challenge icon

Tantangan

Mudah

Mari kita buat kalkulator harga produk yang menunjukkan keunggulan anggota berbentuk ekspresi untuk menulis kode yang rapi dan ringkas.

Kamu akan membuat dua file untuk menata kodemu:

  • Product.cs: Definisikan class Product di namespace Store. Class ini harus menunjukkan berbagai anggota berbentuk ekspresi:
    • Property yang diimplementasikan otomatis, yaitu Name (string) dan BasePrice (decimal)
    • Konstruktor berbentuk ekspresi yang menetapkan kedua property
    • Property hanya-baca berbentuk ekspresi TaxAmount yang menghitung 10% dari harga dasar
    • Property hanya-baca berbentuk ekspresi TotalPrice yang mengembalikan harga dasar ditambah jumlah pajak
    • Method berbentuk ekspresi GetDiscount(decimal percentage) yang mengembalikan jumlah diskon (harga dasar dikalikan persentase lalu dibagi 100)
    • Method berbentuk ekspresi GetFinalPrice(decimal discountPercentage) yang mengembalikan harga total dikurangi diskon
  • Program.cs: Di file utamamu, buat Product menggunakan nilai input, lalu tampilkan rincian harganya.

Kamu akan menerima tiga input:

  • Nama produk
  • Harga dasar
  • Persentase diskon yang akan diterapkan

Cetak rincian harga dalam format ini:

Product: {Name}
Base Price: {BasePrice}
Tax (10%): {TaxAmount}
Total Price: {TotalPrice}
Discount ({percentage}%): {discountAmount}
Final Price: {finalPrice}

Misalnya, jika inputnya adalah Laptop, 1000, dan 15, outputnya harus seperti ini:

Product: Laptop
Base Price: 1000.00
Tax (10%): 100.00
Total Price: 1100.00
Discount (15%): 150.00
Final Price: 950.00

Format setiap nilai uang hingga tepat dua angka desimal, misalnya value.ToString("F2") atau $"{value:F2}". Ketentuan ini berlaku sama untuk harga dasar, pajak, total, diskon, dan harga akhir.

Ingat untuk menggunakan sintaks panah => untuk semua anggota yang berisi satu ekspresi. Ini membuat kodemu tetap rapi dan mudah dibaca!

Coba sendiri

using System;
using Store;

class Program
{
    public static void Main(string[] args)
    {
        // Baca input
        string name = Console.ReadLine();
        decimal basePrice = Convert.ToDecimal(Console.ReadLine());
        decimal discountPercentage = Convert.ToDecimal(Console.ReadLine());

        // Buat object Product menggunakan nilai input
        Product product = new Product(name, basePrice);

        // Hitung jumlah diskon menggunakan method GetDiscount
        decimal discountAmount = product.GetDiscount(discountPercentage);

        // Hitung harga akhir menggunakan method GetFinalPrice
        decimal finalPrice = product.GetFinalPrice(discountPercentage);

        // Tampilkan rincian harga dalam format yang diminta:
        Console.WriteLine($"Product: {product.Name}");
        Console.WriteLine($"Base Price: {product.BasePrice:F2}");
        Console.WriteLine($"Tax (10%): {product.TaxAmount:F2}");
        Console.WriteLine($"Total Price: {product.TotalPrice:F2}");
        Console.WriteLine($"Discount ({discountPercentage}%): {discountAmount:F2}");
        Console.WriteLine($"Final Price: {finalPrice:F2}");
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler C# online