Parameter

Parameter terbagi menjadi parameter formal dan parameter aktual

Parameter Formal

Nama bahasa Inggrisnya adalah Formal Parameter, sering disebut parameter formal saja.

Parameter formal adalah variabel lokal khusus yang ditulis di dalam kurung saat deklarasi metode, bukan variabel yang didefinisikan di dalam isi metode.

Dua variabel di dalam kurung setelah nama fungsi di bawah ini merupakan parameter formal. Pembaca yang pernah mempelajari bahasa C pasti sudah mengenal konsep ini.

// x, y adalah dua parameter formal
public void PrintArea(int x, float y )
{
}
Code language: C# (cs)
  1. Memiliki tipe data dan nama variabel, bisa dibaca maupun diubah nilainya;
  2. Didefinisikan di luar isi metode, otomatis diinisialisasi sebelum metode dijalankan (kecuali parameter keluaran out);
  3. Beberapa parameter dipisahkan dengan koma, tidak ada batas jumlah parameter;
  4. Cara penggunaannya di dalam isi metode sama persis dengan variabel lokal biasa.

Singkatnya, parameter formal adalah variabel lokal khusus yang berfungsi menerima nilai yang dikirim saat fungsi dipanggil. Pemberian nilai terjadi tepat ketika fungsi dipanggil. Ketika alur eksekusi masuk ke dalam fungsi, parameter formal sudah memiliki nilai yang ditugaskan.

public void PrintArea( int x, float y )
{
    float area = x * y; // x, y adalah parameter formal, area variabel lokal biasa untuk menampung hasil kali x dan y
    Console.WriteLine($"Hitung Luas: { x } * { y } = { area }");
}
Code language: C# (cs)

Contoh yang dapat dijalankan

class Program
{
    static void Main()
    {
        Program program = new Program();
        program.PrintArea(10,6.5F);
    }

    public void PrintArea(int x, float y)
    {
        float area = x * y; // x, y adalah parameter formal, area variabel lokal biasa untuk menampung hasil kali x dan y
        Console.WriteLine($"Hitung Luas: {x} * {y} = {area}");
    }
}Code language: C# (cs)

Hasil Keluaran

Hitung Luas: 10 * 6.5 = 65

Ketika fungsi dipanggil, hal ini setara dengan menginisialisasi x bernilai 10 dan y bernilai 6.5

Huruf F di belakang 6.5F menandakan nilai ini adalah bilangan titik mengambang presisi tunggal float. Tanpa akhiran F, kompiler akan menganggapnya bertipe double dan memunculkan galat.

Tipe float presisi tunggal dan double presisi ganda menempatkan jumlah bit berbeda di memori, sehingga tingkat ketepatan penyimpanan nilainya berbeda.

Ketepatan adalah batas maksimal angka desimal yang dapat disimpan tipe data dengan akurat. Jika melebihi batas tersebut, nilai bisa menjadi tidak akurat, hal ini bergantung pada jumlah bit yang dialokasikan di memori.

x dan y adalah parameter formal. Saat pemanggilan fungsi

prosesnya mirip dengan menginisialisasi dua variabel lokal dengan nilai tersebut.

int x = 10;

float y = 6.5F;Code language: C# (cs)

Catatan Penting:

Tipe, urutan, dan format parameter formal bersama nama metode membentuk tanda tangan metode. Anda bisa menganggap tanda tangan sebagai identitas fungsi. Nanti kita akan mempelajari tanda tangan; kesamaan tanda tangan menentukan apakah dua metode sama, kita juga akan mempelajari overload fungsi.


Parameter Aktual

Istilah Bahasa Inggris: Actual Parameters (parameter aktual, sering juga disebut argumen)

Saat memanggil metode, variabel atau ekspresi yang digunakan untuk memberi nilai kepada parameter formal dinamakan parameter aktual. Sebelum metode dijalankan, nilai dari parameter aktual akan menginisialisasi parameter formal yang sesuai.

  1. Parameter aktual ditulis di dalam kurung saat pemanggilan metode;
  2. Aturan kecocokan tipe: tipe parameter aktual harus sama dengan parameter formal yang bersesuaian, atau kompiler mendukung konversi tipe implisit;
  3. Pencocokan posisi: secara bawaan dipasangkan berurutan (parameter posisional).

Sebagai contoh, ubah fungsi Main pada kode di atas seperti di bawah. Saat pemanggilan, argumen pertama adalah nilai harfiah 5, argumen kedua adalah variabel lokal f.

Program program = new Program();
float f = 6.3F;
program.PrintArea(5,f);
// 5 adalah parameter aktual berbentuk ekspresi konstanta, f parameter aktual berupa variabel
// Pencocokan posisi: 5 → x, f → y
Code language: C# (cs)

Saat pemanggilan, nilai parameter aktual disalin ke parameter formal di posisi yang sama, kemudian isi metode baru dieksekusi.


Parameter Posisional

class Calculate
{
    // Dua parameter formal bertipe int
    public int Sum(int x, int y)
    {
        return x + y;
    }

    // Dua parameter formal bertipe float
    public float Avg(float x, float y)
    {
        return (x + y) / 2.0F;
    }
}

class Program
{
    static void Main()
    {
        Calculate cal = new Calculate();
        int num = 6;

        // Sum: parameter aktual int cocok dengan parameter formal int
        Console.WriteLine("Sum: {0} and {1} is {2}",
            5, num, cal.Sum(5, num));

        // Avg: parameter aktual int dikonversi secara implisit menjadi float
        Console.WriteLine("Avg: {0} and {1} is {2}",
            5, num, cal.Avg(5, num));
    }
}
Code language: PHP (php)
Hasil Keluaran
Sum: 5 and 6 is 11
Avg: 5 and 6 is 5.5Code language: HTTP (http)

C# mendukung konversi implisit dari tipe rentang sempit ke tipe rentang luas (int → float). Konversi sebaliknya float → int akan menimbulkan galat kompilasi dan perlu konversi eksplisit secara manual.

num adalah variabel bertipe int. Ketika dikirim sebagai parameter aktual ke parameter float fungsi Avg, kompiler akan otomatis menjalankan konversi implisit int ke float tanpa galat. Hal ini karena rentang nilai int sepenuhnya tercakup di dalam rentang nilai float.

Oleh sebab itu pengiriman tipe int ke float tidak menyebabkan kehilangan data. Ibarat memasukkan kotak kecil ke dalam kotak besar. Sebaliknya, kotak besar tidak bisa dimasukkan ke kotak kecil.

Parameter

Previous:

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *