Pilih tipe data yang tepat

Selesai

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, , longuint, 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 bulat
  • decimal untuk angka yang mewakili uang
  • bool untuk nilai benar atau salah
  • string 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, , decimalstring, dan bool.