Belajar Bahasa C sharp/Bab IV: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Bennylin (bicara | kontrib)
Tidak ada ringkasan suntingan
Tidak ada ringkasan suntingan
Tag: perubahan_terbaru VisualEditor Suntingan perangkat seluler Suntingan peramban seluler
Baris 177:
Kok, ada anomali ya? Katanya komputer barang yang canggih, tapi kenapa ya? Sebelumnya saya pernah katakan bahwa komputer adalah barang yang bego, yang tidak akan bergerak tanpa ada instruksi! Komputer, hanya bisa kita anggap sebagai budak saja lah. Lalu kenapa terjadi anomali, karena di sana terjadi apa yang disebut dengan '''''<u>overflow</u>''''' dan '''''<u>underflow</u>'''''. Nah lho apa lagi tuh? Kejadian ''overflow'' akan terjadi saat nilai sebuah bilangan bulat melebihi nilai positif maksimumnya, sementara ''underflow'' akan terjadi saat nilai sebuah bilangan bulat kurang dari nilai negatif minimumnya. Tapi, para ''programmer'' seringnya menggunakan kata "'''''overflow'''''" saja untuk menjelaskan kedua fenomena tersebut. Program-program C# pada dasarnya mengizinkan adanya ''overflow'', karena C# dapat melakukan penjumlahan, pengurangan perkalian, dan pembagian terhadap bilangan bulat tanpa adanya kekhawatiran apakah nantinya hasilnya dapat ditampung pada ruangan 32-bit atau tidak. Mengabaikan overflow dalam melakukan perhitungan aritmetika terhadap bilangan bulat adalah sebuah cara yang paling efisien dan paling cepat dilakukan oleh komputer. Komputer, namanya saja budak bego, akan terus saja meneruskan perhitungan tersebut tanpa harus berhenti sejenak untuk mengecek apakah terjadi ''overflow'' atau tidak.
 
Meskipun beberapa program aplikasi mungkin dapat mengambil keuntungan dari overflow bilangan bulat, dalam banyak kasus, ''overflow'' menjadi sebuah masalah dan dianggap menjadi sebuah ''bug'' di dalam kode kita. Sebagai contoh, program sebuah bank yang menerima uang hingga miliaran rupiah, adalah sebuah program yang tidak menerima overflow, karena ketika seorang nasabah memiliki hutang -2.147.483.647 rupiah dalam saldo, lalu ada bunga 1 rupiah, maka saldonya akan berubah menjadi 2.147.483.648, yang berarti hal tersebut berubah menjadi keuntungan buat si penghutang tersebut. Siapa penjahatnya? Bukannya teller atau kasir, tapi ''overflow'' lah yang jadi penjahatnya.
 
Teknik pertama melibatkan kompiler C# itu sendiri. Kita dapat menginstruksikan kompiler C# untuk membuat kode yang mampu melakukan pengecekan terhadap ''overflow'' terhadap bilangan bulat. Ini merupakan contoh dari opsi kompiler. Untuk mengilustrasikannya, marilah kita kembali ke contoh program Program0201.cs.