0Pricing
C# Academy · Pelajaran

Tipe Nilai Nullable

int? dan struct Nullable.

Tipe Nilai Nullable adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.

Mengapa Tipe Nilai yang Dapat Bernilai Null?

Tipe nilai seperti int, bool, dan DateTime selalu menyimpan suatu nilai. int memiliki nilai bawaan 0, bukan "tidak ada nilai".

Terkadang Anda perlu merepresentasikan data yang hilang, seperti kolom survei yang belum dijawab atau kolom basis data yang kosong. Tipe nilai yang dapat bernilai null memungkinkan tipe nilai juga menyimpan null.

Mendeklarasikan dengan int?

Tambahkan ? setelah tipe nilai agar tipe tersebut dapat bernilai null. int? dapat menyimpan bilangan bulat apa pun atau null.

Inilah cara yang paling umum untuk menulis tipe nilai yang dapat bernilai null dalam kode C# sehari-hari.

int? age = null;
int count = 5;
age = count;
System.Console.WriteLine(age);

Nullable<T> di Balik Layar

Sintaks ? adalah bentuk singkat. int? persis sama dengan tipe Nullable<int>.

Nullable<T> adalah struct yang membungkus tipe nilai dan menambahkan penanda untuk melacak apakah suatu nilai tersedia.

Nullable<int> a = 10;
int? b = 10;
System.Console.WriteLine(a == b);

HasValue dan Nilai

Setiap tipe yang dapat bernilai null menyediakan dua properti. HasValue bernilai true saat suatu nilai tersedia, sedangkan Value mengembalikan nilai yang mendasarinya.

Membaca Value saat HasValue bernilai false akan melempar InvalidOperationException, jadi periksalah terlebih dahulu.

int? score = 42;
if (score.HasValue)
{
    System.Console.WriteLine(score.Value);
}

Contoh Lengkap

Berikut adalah program lengkap. Program ini menetapkan suatu nilai, memeriksa HasValue, lalu mencetak hasilnya.

Jalankan program tersebut untuk melihat perilaku tipe yang dapat bernilai null saat benar-benar menyimpan data.

using System;

class Program
{
    static void Main()
    {
        int? temperature = 21;
        if (temperature.HasValue)
            Console.WriteLine("Temp: " + temperature.Value);
        else
            Console.WriteLine("No reading");
    }
}

Saat Bernilai Null

Menetapkan null membuat HasValue mengembalikan false. Cabang else kemudian dijalankan.

Pola ini adalah cara yang aman untuk menangani pembacaan opsional tanpa menyebabkan program berhenti karena kesalahan.

using System;

class Program
{
    static void Main()
    {
        int? temperature = null;
        if (temperature.HasValue)
            Console.WriteLine(temperature.Value);
        else
            Console.WriteLine("No reading");
    }
}

GetValueOrDefault

GetValueOrDefault() mengembalikan nilainya jika tersedia, atau nilai bawaan untuk jenis tersebut jika tidak (misalnya 0 untuk int).

Anda juga dapat memberikan nilai pengganti sendiri: GetValueOrDefault(100) mengembalikan 100 saat nilainya kosong.

int? quantity = null;
int result = quantity.GetValueOrDefault(100);
System.Console.WriteLine(result);

Konversi Implisit ke Jenis yang Dapat Menyimpan Nilai Kosong

int biasa otomatis dikonversi menjadi int?, karena setiap nilai biasa juga merupakan nilai valid yang dapat menyimpan nilai kosong.

Sebaliknya, konversi dari int? kembali ke int tidak berlangsung otomatis: diperlukan konversi eksplisit atau nilai pengganti karena nilai yang dapat menyimpan nilai kosong tersebut mungkin tidak memiliki nilai.

int plain = 7;
int? wrapped = plain;
int back = (int)wrapped;
System.Console.WriteLine(back);

Jenis Nilai Lain yang Dapat Menyimpan Nilai Kosong

Semua jenis nilai dapat digunakan: bool?, double?, DateTime?, bahkan struktur khusus.

bool? memiliki tiga keadaan: true, false, dan null. Ini berguna untuk pertanyaan ya atau tidak yang belum dijawab.

bool? agreed = null;
double? price = 9.99;
System.Console.WriteLine(agreed.HasValue);
System.Console.WriteLine(price.Value);

Jenis Referensi Sudah Dapat Menyimpan Nilai Kosong

Kelas seperti string dan larik sudah dapat memiliki nilai null, sehingga tidak memerlukan pembungkus Nullable<T>.

Tanda ? pada jenis referensi (seperti string?) memiliki arti berbeda: tanda ini merupakan anotasi referensi yang dapat menyimpan nilai kosong, bukan struktur Nullable<T>.

Membandingkan Nilai yang Dapat Menyimpan Nilai Kosong

Perbandingan tetap berfungsi, tetapi ingat bahwa null memiliki perilaku khusus. Dua nilai null dianggap sama, dan setiap perbandingan berurutan yang melibatkan null menghasilkan false.

Jadi, null < 5 bernilai false, dan null > 5 juga bernilai false.

int? x = null;
System.Console.WriteLine(x < 5);
System.Console.WriteLine(x == null);

Pemeriksaan Singkat

Uji pemahaman Anda tentang jenis nilai yang dapat menyimpan nilai kosong.

Rangkuman

Jenis nilai yang dapat menyimpan nilai kosong memungkinkan jenis nilai juga menyimpan null. Tuliskan sebagai int?, yang setara dengan Nullable<int>.

Gunakan HasValue untuk menguji, Value untuk membaca (hanya jika tersedia), dan GetValueOrDefault() sebagai nilai pengganti yang aman. Jenis referensi sudah dapat menyimpan nilai kosong tanpa pembungkus tambahan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Tipe Nilai Nullable” gratis?

Ya — teks lengkap “Tipe Nilai Nullable” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Tipe Nilai Nullable”?

int? dan struct Nullable. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Tipe Nilai Nullable” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Tipe Nilai Nullable
  2. Operator Null-Conditional
  3. Operator Null-Coalescing
  4. Melindungi dari Null
← Kembali ke C# Academy