Nilai Balik

Metode dapat mengembalikan data ke kode pemanggil, nilai yang dikembalikan akan langsung menggantikan posisi ekspresi pemanggilan.

Jika perlu mengembalikan data, kamu harus mendeklarasikan tipe kembalian sebelum nama metode. Apabila tidak ada nilai yang dikembalikan, tandai dengan void.

Kata kunci return tetap bisa digunakan di metode tanpa nilai balik, tapi tidak perlu menuliskan nilai setelahnya. Cukup tulis return;. Perintah ini menghentikan eksekusi, kode setelahnya tidak akan dijalankan dan kendali program kembali ke tempat pemanggilan.

    int Add(int a, int b)  // Mengembalikan tipe data int
    {
        return a + b;
    }Code language: JavaScript (javascript)
    void SayHi() // Tidak memiliki nilai balik
    {
        Console.WriteLine("hello welcome to foxdevelop.com");
    }Code language: JavaScript (javascript)

1. Metode yang memiliki nilai balik wajib menggunakan return ekspresi;. Tipe hasil dari ekspresi harus cocok dengan tipe kembalian yang sudah dideklarasikan;

    int Add(int a, int b)
    {
        return 1.2;  // Muncul error. 1.2 bertipe double dan tidak dapat dikonversi secara implisit menjadi int, ketidakcocokan tipe menyebabkan galat
    }Code language: JavaScript (javascript)

Kode di atas mencoba mengembalikan data bertipe double. Angka 1.2 secara bawaan merupakan tipe double, yaitu bilangan pecahan. Kompiler tidak dapat mengubah bilangan pecahan menjadi bilangan bulat secara otomatis sehingga muncul kesalahan.

Sekarang lihat kasus sebaliknya

    double Add2()
    {
        return 10;  // 10 bertipe int dan dapat dikonversi implisit menjadi double, tipe cocok sehingga tidak ada error
    }Code language: JavaScript (javascript)

Cara penulisan ini tidak menimbulkan error. Meskipun 10 adalah bilangan bulat, konversi implisit ke double diizinkan sehingga tipe data kompatibel. Jangan hanya membandingkan nama tipe saja, pastikan apakah konversi implisit dapat dilakukan.

Konversi implisit adalah konversi tipe data yang tidak perlu ditulis secara manual oleh pemrogram, kompiler akan melakukannya secara otomatis. Sebaliknya, konversi yang ditulis secara sengaja oleh pengembang disebut konversi eksplisit.

Materi tentang konversi tipe akan kita pelajari di bagian selanjutnya.

2. Semua cabang eksekusi di dalam metode harus akhirnya menjalankan perintah return. Tidak boleh ada jalur program yang selesai tanpa mengembalikan nilai.

Metode di atas dideklarasikan untuk mengembalikan tipe int (tulisan int sebelum nama Add). Namun jika tidak ada perintah return sama sekali di badan metode, program juga akan mengeluarkan error.

Cara penulisan ini juga akan error. Perintah return hanya berjalan jika kondisi if bernilai benar. Ketika a >= b, perintah return tidak dieksekusi sehingga ada jalur tanpa nilai balik.

Meskipun kamu menambahkan blok else, jika tidak ada return di dalamnya masalah tetap sama, masih ada cabang tanpa nilai balik. Aturan ini juga berlaku untuk perintah alur program lainnya. Pastikan semua jalur eksekusi tertangani dengan benar.

Ada solusi untuk mengatasinya. Tambahkan perintah return di bagian akhir metode sebagai cadangan. Contohnya:

    int Add(int a, int b)
    {
        if (a < b)
        {
            return a + b;
        }
        else
        {

        }
        return -1; // Apapun cabang yang dijalankan sebelumnya, program akan mengembalikan nilai jika mencapai baris ini
        // Angka -1 berfungsi sebagai nilai cadangan.
    }Code language: C# (cs)

Nilai balik mendukung semua tipe data: tipe dasar (int, string dll), kelas buatan sendiri, koleksi dan lainnya;

Perintah return akan langsung menghentikan metode yang sedang berjalan, kode setelahnya tidak akan dieksekusi;

Pemanggilan metode bernilai balik dapat langsung disisipkan ke ekspresi, perintah cetak, penugasan dan skenario lainnya.

Nilai Balik

Tinggalkan Balasan

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