Pemrograman Defensif
Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 34 dari 66.
Pemrograman defensif adalah teknik yang membantu mencegah error akibat referensi null. Teknik ini mencakup pemeriksaan nilai null sebelum mencoba menggunakan object.
Periksa apakah nil sebelum menggunakan object:
string name = GetNameFromSomewhere();
// Pemeriksaan untuk mencegah error
if (name == null)
{
// Tangani kasus ketika nilainya null
name = "Default Name";
}
// Sekarang kamu bisa menggunakan name dengan aman
Console.WriteLine(name.ToUpper());Validasi parameter dalam method:
public void ProcessOrder(Order order)
{
// Periksa apakah parameter bernilai null agar kodemu aman
if (order == null)
{
Console.WriteLine("Error: Order cannot be null");
return;
}
// Sekarang kamu bisa memproses pesanan dengan aman
Console.WriteLine("Processing order: " + order.Id);
}Gunakan operator akses kondisional (?.) agar pemeriksaan null lebih ringkas:
Customer customer = GetCustomerFromSomewhere();
// Daripada:
// string city = null;
// if (customer != null && customer.Address != null)
// {
// city = customer.Address.City;
// }
// Gunakan ini:
string city = customer?.Address?.City;Tantangan
MudahBuat method bernama ProcessUserData yang menerima parameter string userData. Method tersebut harus:
- Periksa apakah
userDatabernilai null. Jika ya, cetak "Error: User data is null" lalu kembalikan. - Periksa apakah
userDatakosong. Jika ya, cetak "Error: User data is empty" lalu kembalikan. - Jika datanya valid, ubah menjadi huruf kapital lalu cetak "Processing: [UPPERCASE_DATA]".
Coba sendiri
using System;
class ProcessUserData
{
public static void processUserData(string userData)
{
// Petunjuk: string "null" harus diperlakukan sebagai nilai null yang sebenarnya
// Tulis kodemu di sini
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1array Multidimensi
Dasar-Dasar array 2DMendeklarasikan dan Menginisialisasi array 2DMengakses Elemen array 2DPerulangan Bersarang dengan array 2Darray BergerigiOperasi Matriks UmumRangkuman: array Multidimensi4Teknik Alur Kontrol
Pengembalian DiniKlausa PenjagaPernyataan Lompatan (goto)Break dan ContinueMeratakan Percabangan Bersarang7Operator Logika Lanjutan
Evaluasi Hubung SingkatOperator Logika PercabanganPrioritas OperatorRingkasan Operator Lanjutan2Pengambilan Keputusan Tingkat Lanjut
Beberapa KondisiLogika Boolean yang KompleksPerbandingan If dan SwitchPernyataan Switch BersarangUlasan: Pengambilan Keputusan Tingkat Lanjut5Penanganan Exception
Dasar Try-CatchJenis ExceptionBeberapa Blok CatchBekerja dengan fileBlok FinallyUsing vs. Try-FinallyException KustomRingkasan: Penanganan error3Peningkatan Loop
Performa LoopIterasi yang KompleksSetiap Jenis LoopRefactoring LoopRangkuman: Loop yang Dioptimalkan6Penanganan Null
Dasar Referensi NullTipe Nilai NullablePola Pemeriksaan NullPemrograman DefensifRingkasan: Keamanan NullLatihan sendiri: Compiler C# online