Pilih tipe data yang tepat
Anda telah mengenal perbedaan antara jenis nilai dan jenis referensi, serta jenis titik integral dan floating.
Misalnya pekerjaan Anda adalah membangun aplikasi baru yang mengambil, memanipulasi, dan menyimpan berbagai tipe data. Jenis data mana yang Anda gunakan?
Dalam beberapa kasus, ini adalah pilihan yang mudah. Misalnya, ketika Anda perlu bekerja dengan teks, maka Anda default untuk menggunakan string
jenis data kecuali Anda perlu melakukan sejumlah besar perangkaian.
Tetapi bagaimana dengan data numerik? Ada 11 opsi yang berbeda. Bagaimana Anda memilih tipe data yang tepat?
Pilih tipe data yang tepat
Dengan begitu banyak tipe data yang dapat dipilih, kriteria apa yang harus Anda gunakan untuk memilih tipe data yang tepat untuk situasi tertentu?
Saat mengevaluasi opsi, Anda harus menimbang beberapa pertimbangan penting. Seringkali tidak ada satu jawaban yang benar, tetapi beberapa jawaban lebih benar daripada yang lain.
Pilih jenis data yang memenuhi persyaratan rentang nilai batas aplikasi Anda
Pilihan tipe data Anda dapat membantu mengatur batasan untuk ukuran data yang mungkin Anda simpan dalam variabel tertentu. Misalnya, jika Anda mengetahui variabel tertentu hanya boleh menyimpan angka antara 1 dan 10.000 jika tidak, variabel tersebut berada di luar batas apa yang akan diharapkan, Anda mungkin akan menghindari byte
dan sbyte
karena rentangnya terlalu rendah.
Selain itu, Anda mungkin tidak memerlukan int
, , long
uint
, dan ulong
karena mereka dapat menyimpan lebih banyak data daripada yang diperlukan. Demikian juga, Anda mungkin akan melewati float
, double
, dan decimal
jika Anda tidak memerlukan nilai pecahan. Anda mungkin mempersempitnya ke short
dan ushort
, yang keduanya mungkin layak. Jika Anda yakin bahwa nilai negatif tidak akan memiliki arti dalam aplikasi Anda, Anda dapat memilih ushort
(bilangan bulat positif tidak ditandatangani, 0 hingga 65.535). Sekarang, nilai apa pun yang ditetapkan ke variabel jenis ushort
di luar batas 0 hingga 65535 akan melemparkan pengecualian, sehingga secara halus membantu Anda memberlakukan tingkat pemeriksaan kewarasan dalam aplikasi.
Mulailah dengan memilih jenis data agar sesuai dengan data (bukan untuk mengoptimalkan performa)
Anda mungkin tergoda untuk memilih jenis data yang menggunakan bit terkecil untuk menyimpan data yang berpikir itu meningkatkan performa aplikasi Anda. Namun, beberapa saran terbaik yang terkait dengan performa aplikasi (yaitu, seberapa cepat aplikasi Anda berjalan) adalah untuk tidak "mengoptimalkan sejak dini". Anda harus menolak godaan untuk menebak bagian kode Anda, termasuk pemilihan jenis data yang dapat memengaruhi performa aplikasi Anda.
Banyak yang berasumsi bahwa karena tipe data tertentu menyimpan lebih sedikit informasi, tipe data akan menggunakan lebih sedikit prosesor dan memori komputer daripada tipe data yang menyimpan lebih banyak informasi. Sebagai gantinya, Anda harus memilih yang tepat untuk data, maka nantinya Anda dapat mengukur performa aplikasi secara empiris menggunakan perangkat lunak khusus yang memberikan wawasan faktual ke bagian aplikasi yang berdampak negatif pada performa.
Pilih jenis data berdasarkan jenis data input dan output fungsi pustaka yang digunakan
Misalnya Anda ingin bekerja dengan rentang tahun antara dua tanggal. Karena aplikasi ini adalah aplikasi bisnis, Anda mungkin menentukan bahwa Anda hanya memerlukan rentang dari sekitar 1960 hingga 2200. Anda mungkin berpikir untuk mencoba bekerja dengan byte
karena dapat mewakili angka antara 0 dan 255.
Namun, saat Anda melihat metode bawaan pada kelas System.TimeSpan
dan System.DateTime
, Anda menyadari bahwa sebagian besar mereka menerima nilai jenis double
dan int
. Jika Anda memilih sbyte
, Anda akan terus melakukan transmisi bolak-balik antara sbyte
dan double
atau int
. Dalam hal ini, mungkin lebih masuk akal untuk memilih int
jika Anda tidak memerlukan presisi sub-detik, dan double
jika Anda membutuhkan presisi sub-detik.
Pilih jenis data berdasarkan dampak ke sistem lain
Terkadang, Anda harus mempertimbangkan cara informasi akan digunakan oleh aplikasi lain atau sistem lain seperti database. Misalnya, sistem jenis SQL Server berbeda dari sistem jenis C#. Akibatnya, beberapa pemetaan antara keduanya harus terjadi sebelum Anda dapat menyimpan data ke dalam database tersebut.
Jika tujuan aplikasi Anda adalah untuk berinteraksi dengan database, maka Anda mungkin perlu mempertimbangkan bagaimana data disimpan dan berapa banyak data yang disimpan. Pilihan jenis data yang lebih besar dapat memengaruhi jumlah (dan biaya) penyimpanan fisik yang diperlukan untuk menyimpan semua data yang akan dihasilkan aplikasi Anda.
Ketika ragu, tetap dengan dasar-dasarnya
Meskipun Anda telah melihat beberapa pertimbangan, saat Anda memulai, demi kesederhanaan, Anda harus lebih memilih subkumpulan jenis data dasar, termasuk:
int
untuk sebagian besar bilangan bulatdecimal
untuk angka yang mewakili uangbool
untuk nilai benar atau salahstring
untuk nilai alfanumerik
Pilih jenis kompleks khusus untuk situasi khusus
Jangan menemukan kembali jenis data jika satu atau beberapa jenis data sudah ada untuk tujuan tertentu. Contoh berikut mengidentifikasi di mana jenis data .NET tertentu dapat berguna:
byte
: bekerja dengan data yang dikodekan yang berasal dari sistem komputer lain atau menggunakan set karakter yang berbeda.double
: bekerja dengan tujuan geometris atau ilmiah.double
sering digunakan saat membangun game yang melibatkan gerakan.System.DateTime
untuk nilai tanggal dan waktu tertentu.System.TimeSpan
untuk rentang tahun/bulan/hari/jam/menit/detik/milidetik.
Rekap
Ada pertimbangan saat memilih jenis data untuk kode Anda, dan seringkali lebih dari satu opsi. Pikirkan pilihan Anda, dan kecuali Anda memiliki alasan yang baik, cobalah untuk tetap dengan jenis dasar seperti int
, , decimal
string
, dan bool
.