lifelong learner — urip iku urup, currently working on accenture.

Java dasar 5 – primitive data byte , short dan int

0
Degananda.com -

Screen Shot 2019-03-09 at 14.47.43.png

Tipe data primitif : Byte, Short dan Int

Primitive data type adalah tipe data yang di miliki oleh bahasa pemrograman tersebut. Tipe data ini tidak perlu dilakukan instansiasi untuk dapat menginisiasi tipe data tersebut. Berbeda dengan tipe data String yang dalam java bukanlah merupakan tipe data primitive. Sesungguhnya pada saat kita membuat variabel bertipe string , didalam background kita melakukan instansiasi terhadap object string (new String()).

mengapa jenis tipe data yang menyimpan bilangan bulat dibedakan mejadi byte , short dan int? yakni untuk menghemat alokasi memori. Byte mengalokasikan 8 bit, int 16 bit dan 32 bit.

Ada beberapa jenis tipe data primitif diantarannya adalah int (integer) , byte dan short.

integer (int)

tipe data ini memiliki ukuran mulai dari -2^32 hingga 2^32. integer digunakan untuk menampung bilangan bulat. Contohnya kita menyimpan jumlah uang dalam bentuk rupiah. Mata uang rupiah tidak memiliki nilai desimal. Contohnya mulai dari rp 50, rp 500, rp 1000, rp 10000 dan seterusnya. Indonesia tidak memiliki nilai mata uang dalam bentuk desimal, contohnya  Rp 2500,20 (salah).

package index;

public class Index {

	public static void main(String [] agrs) {

		int uangSaya = 20000;
		System.out.print("uang saya berjumlah " + uangSaya);

	}

}

jika dijalankan maka pada konsol akan menghasilkan keluaran sebagai berikut ini :

Screen Shot 2019-03-09 at 14.18.55.png

tanda plus(“+”, tanpa kurung) di sebelah kanan quote (petik dua) berfungsi untuk menambahkan nilai yang tersimpan dalam suatu variabel. “uang saya berjumlah” bukanlan sebuah variabel. Dia adalah suatu string yang langsung dituliskan dalam fungsi system.out.print

Pada tipe data primitif integer (int), kita tidak bisa memberikan nilai selain bilangan bulat. Contohnya kita memberikan nilai Rp. 250,25 maka compiler java akan menolak kode kita karena kesalahan syntax.

Screen Shot 2019-03-09 at 14.20.31.png

compiler memberi tahu bahwa terjadi kegagalan ketika melakukan konversi dari double ke int. Ini dikarenakan 250.25 adalah double kemudian dipaksakan untuk ditampung dalam variabel bertipe integer.

Kita juga dapat menyimpan bilangan bulat negatif dalam tipe data integer ini telah sesuai dengan nilai yang dapat ditampung oleh int yakni -2^32 sampai dengan 2^32,

package index;

public class Index {

	public static void main(String [] agrs) {

		int suhuSurabaya = -32;
		System.out.print("saat ini surabaya memiliki suhu : " + suhuSurabaya + " derajat celcius.");

	}

}

jika dijalankan maka pada konsol akan menghasilkan nilai sebagai berikut

byte & short

byte dan short memiliki karakteristik yang sama dengan integer yakni untuk menampung bilangan bulat saja (positif ataupun negatif). Adapun demikian perbedaan antara ketiganya (byte , short dan integer) hanyalah terletak pada jumlah nilai yang dapat ditampung sesuai dengan tabel dibawah ini

Data Type Nilai yang dapat ditampung
byte (8 bits) -2^8 sampai 2^8
short (16 bits) -2^16 sampai dengan 2^16
int (32 bits) -2^32 sampai dengan 2^32

kita juga dapat melihat tabel dibawah ini sebagai komparasi tipe data bilangan bulat(int, short dan byte) terhadap tipe data lain seperti float, double dan long.
Screen Shot 2019-03-09 at 14.53.43.png
nilai yang melewati batasan dari suatu tipe data bilangan bulat diatas tidak dapat dipaksakan. Compiler akan menolak kita nilai yang terdapat didalam suatu varibel melewati batas minimal dan maksimal dari tipe data tersebut. Contohnya kita akan paksakan angka 257 keadalam tipe data byte. Ekspektasinnya adalah kompiler akan memberikan error karena , 257 lebih besar dari 2^8 yang merupakan nilai batas atas dari tipe data byte.

Screen Shot 2019-03-09 at 14.32.13.pngmunculah pesan bahwa kompiler gagal melakukan konversi dari int(nilai 257 yang kita masukan menuju ke byte. Sebenarnya , 257 ini masih dapat masuk ke dalam tipe data short. Tetapi java menganggap bahwa setiap bilangan bulat sebagai suatu int. Sehingga pesan error yang selalu tertulis sebagai int (integer).

Untuk menyelesaikan error diatas, maka kita dapat menggunakan short ataupun integer untuk menyimpan angka 257.

package index;

public class Index {

	public static void main(String [] agrs) {

		short suhuSurabaya = 257;
		int suhuJakarta = 257;
		System.out.println("saat ini surabaya memiliki suhu : " + suhuSurabaya + " derajat farenheit.");
		System.out.println("saat ini jakarta memiliki suhu : " + suhuJakarta + " derajat farenheit.");

	}

}

kode diatas jika dijalankan akan berhasil karena 257 berada pada jangkauan nilai int dan short baik dalam batas atas maupun batas bawahnya. Hasil pada konsol ketika kode di run adalah sebagai berikut.

Screen Shot 2019-03-09 at 14.36.40.png

lalu pertanyaan yang kemudian muncul adalah ketika kita memiliki nilai yang dapat ditampung oleh dua jenis tipe data seperti pada kasus angka 257 manakah yang harus kita pilih ? int atau byte?

berdasarkan sebuah jawaban pada stackoverflow dibawah ini :

stackoverflow.com/questions/24371077/when-to-use-short-over-int

best practice ketika kita suatu nilai dapat masuk dilebih dari satu tipe data maka yang harus dipertimbangkan adalah :

  1. Jika program yang dibuat sangat mempertimbangkan konsumsi memori maka sangat disarankan untuk menggunakna short karena lebih sedikit memori yang akan dialokasikan (16 bit) dibandingkan int (32 bit)
  2. Ketika menuliskan suatu array disarankan untuk menggunakan tipe data short.

tetapi disisi lain, ketika bekerja menggunakan hardware 32bit ataupun 64bit maka pertimbangan konsumsi memori 16bit bukanlah menjadi halanagan sehingga pemilihan int dapat menjadi pilihan yang lebih bijak. untuk menyimpan nilai 257 tersebut.

LEAVE A REPLY