Menu
CoddyTech

Field dan method Statis

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

Sejauh ini, setiap field dan method yang kita buat dimiliki oleh masing-masing object. Namun, terkadang kamu membutuhkan data atau perilaku yang dimiliki oleh class itu sendiri dan digunakan bersama oleh semua instance. Di sinilah kata kunci static digunakan.

field statis dibagikan oleh semua object dari sebuah class. Hanya ada satu salinan, sebanyak apa pun instance yang kamu buat:

public class Player
{
    public static int TotalPlayers = 0;
    public string Name { get; set; }
    
    public Player(string name)
    {
        Name = name;
        TotalPlayers++;
    }
}

Setiap kali Player baru dibuat, TotalPlayers bertambah. Semua pemain menggunakan penghitung yang sama ini.

static method adalah bagian dari class dan dapat dipanggil tanpa membuat object:

public class Calculator
{
    public static int Add(int a, int b)
    {
        return a + b;
    }
}

// Dipanggil pada class, bukan pada instance
int result = Calculator.Add(5, 3);

Perhatikan bahwa kamu mengakses anggota statis menggunakan nama class, bukan referensi object. Static method tidak dapat mengakses field instance atau menggunakan this, karena static method tidak dimiliki oleh object tertentu.

Kamu sudah menggunakan member static tanpa menyadarinya. Console.WriteLine() adalah method static, dan Math.PI adalah field static.

challenge icon

Tantangan

Mudah

Mari kita buat sistem pelacakan pesanan yang menggunakan anggota statis untuk melacak semua pesanan yang dibuat di aplikasi kamu.

Kamu akan membuat dua file untuk mengatur kodemu:

  • Order.cs: Definisikan class Order di namespace OrderSystem. Setiap pesanan harus memiliki property instance OrderId (int) dan CustomerName (string). Class tersebut juga harus melacak jumlah total pesanan yang dibuat menggunakan field statis TotalOrders, dan menyediakan method statis GetNextOrderId() yang mengembalikan ID pesanan berikutnya yang tersedia (dimulai dari 1). Konstruktor harus menerima nama pelanggan, otomatis menetapkan ID pesanan menggunakan method statis, dan menambah jumlah total pesanan.
  • Program.cs: Di file utama kamu, buat pesanan berdasarkan input dan tampilkan detailnya beserta jumlah total pesanan.

Kamu akan menerima dua input yang berisi nama pelanggan untuk dua pesanan terpisah.

Untuk setiap pesanan, cetak detailnya dengan format berikut:

Order #{OrderId} - Customer: {CustomerName}

Setelah membuat kedua pesanan, cetak jumlah totalnya:

Total Orders: {TotalOrders}

Misalnya, jika input-nya adalah Alice dan Bob, output-nya akan seperti berikut:

Order #1 - Customer: Alice
Order #2 - Customer: Bob
Total Orders: 2

Coba sendiri

using System;
using OrderSystem;

class Program
{
    public static void Main(string[] args)
    {
        // Baca nama pelanggan
        string customer1 = Console.ReadLine();
        string customer2 = Console.ReadLine();

        // TODO: Buat dua object Order dengan nama pelanggan

        // TODO: Cetak detail setiap pesanan dalam format:
        // Order #{OrderId} - Customer: {CustomerName}

        // TODO: Cetak jumlah total pesanan dalam format:
        // Total Orders: {TotalOrders}
    }
}
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