Menu
CoddyTech

Argumen Bernama

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

Argumen bernama memungkinkan kamu menentukan parameter mana yang menerima nilai dengan menggunakan namanya, alih-alih mengandalkan posisi. Hal ini membuat pemanggilan method lebih jelas dan memungkinkan kamu memberikan argumen dalam urutan apa pun.

Gunakan nama parameter yang diikuti titik dua sebelum nilai:

public static void CreateUser(string name, int age, bool isActive)
{
    Console.WriteLine($"{name}, Age: {age}, Active: {isActive}");
}

// Menggunakan argumen bernama
CreateUser(name: "Alice", age: 25, isActive: true);
CreateUser(age: 30, isActive: false, name: "Bob");  // Urutan apa pun bisa digunakan

Argumen bernama sangat berguna saat dipadukan dengan parameter opsional. Alih-alih memberikan semua nilai opsional sebelumnya, kamu bisa langsung memilih nilai yang dibutuhkan:

public static void Configure(string host, int port = 8080, bool useSSL = false, int timeout = 30)
{
    Console.WriteLine($"{host}:{port}, SSL: {useSSL}, Timeout: {timeout}");
}

// Lewati port dan useSSL, cukup tentukan timeout
Configure("localhost", timeout: 60);
Configure("server.com", useSSL: true);

Kamu bisa mencampur argumen posisional dan argumen bernama, tetapi argumen posisional harus diletakkan terlebih dahulu. Argumen bernama meningkatkan keterbacaan, terutama untuk method dengan beberapa parameter bertipe sama atau flag boolean yang maknanya tidak jelas hanya dari nilainya.

challenge icon

Tantangan

Mudah

Mari kita buat generator laporan yang memanfaatkan argumen bernama agar pemanggilan method menjadi sangat jelas. Saat method memiliki beberapa parameter, terutama yang bertipe sama atau berupa penanda boolean, argumen bernama membuat kodemu menjelaskan dirinya sendiri.

Kamu akan menyusun kodemu dalam dua file:

  • ReportGenerator.cs: Buat class ReportGenerator di namespace Reports dengan method yang memiliki beberapa parameter opsional:
    • GenerateReport(string title, string author = "Anonymous", bool includeHeader = true, bool includeSummary = false, int maxPages = 10)
    • Method ini harus mengembalikan string berformat yang menjelaskan konfigurasi laporan
    • Format: Report: {title} by {author} | Header: {Yes/No}, Summary: {Yes/No}, Max Pages: {maxPages}
  • Program.cs: Di file utamamu, tunjukkan manfaat argumen bernama dengan memanggil GenerateReport dengan beberapa cara, melewati parameter opsional yang tidak kamu perlukan dan menentukan hanya parameter yang penting untuk setiap laporan.

Kamu akan menerima tiga input:

  • Judul laporan pertama
  • Judul laporan kedua
  • Judul laporan ketiga

Buat tiga laporan dengan konfigurasi yang berbeda:

  1. Laporan pertama: Gunakan judul saja (semua nilai default berlaku)
  2. Laporan kedua: Gunakan judul dengan includeSummary: true dan maxPages: 25 (lewati author dan includeHeader, gunakan nilai default keduanya)
  3. Laporan ketiga: Gunakan judul dengan author: "Admin", includeHeader: false, dan includeSummary: true (gunakan nilai default maxPages)

Cetak hasil setiap laporan pada barisnya sendiri.

Misalnya, jika inputnya adalah Sales Q1, Annual Review, dan Inventory Check, outputnya harus seperti berikut:

Report: Sales Q1 by Anonymous | Header: Yes, Summary: No, Max Pages: 10
Report: Annual Review by Anonymous | Header: Yes, Summary: Yes, Max Pages: 25
Report: Inventory Check by Admin | Header: No, Summary: Yes, Max Pages: 10

Perhatikan bagaimana argumen bernama memungkinkanmu langsung melewati parameter yang kamu perlukan. Kamu tidak perlu menentukan author atau includeHeader hanya untuk mengubah includeSummary. Ini membuat pemanggilan method jauh lebih mudah dibaca dan menunjukkan maksudnya!

Coba sendiri

using System;
using Reports;

class Program
{
    public static void Main(string[] args)
    {
        // Baca tiga judul laporan
        string title1 = Console.ReadLine();
        string title2 = Console.ReadLine();
        string title3 = Console.ReadLine();

        // Buat instance ReportGenerator
        ReportGenerator generator = new ReportGenerator();

        // TODO: Buat laporan pertama, gunakan hanya judulnya (semua nilai default berlaku)
        

        // TODO: Buat laporan kedua, gunakan judul dengan includeSummary: true dan maxPages: 25
        // (lewati author dan includeHeader agar keduanya tetap menggunakan nilai default)
        

        // TODO: Buat laporan ketiga, gunakan judul dengan author: "Admin", includeHeader: false, dan includeSummary: true
        // (pertahankan nilai default maxPages)
        

        // Cetak hasil setiap laporan
    }
}
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