Tipe Data di Java: Tipe Data Primitif & Non-Primitif

Diterbitkan: 2020-12-01

Daftar isi

pengantar

Dalam bahasa pemrograman apa pun, tipe data adalah ascribe data yang memungkinkan komputer atau kompiler mengetahui bagaimana programmer ingin menetapkan data. Tipe data menambahkan batasan ke variabel atau fungsi saat menetapkan nilai.

Tipe data ini mendefinisikan perilaku data seperti cara nilai tipe tersebut dapat disimpan dan operasi yang dapat dilakukan pada data. Mari kita lihat semua tipe data yang disediakan oleh java.

Tipe Data Primitif

Tipe data primitif tidak dapat dipecah lagi menjadi tipe data yang lebih sederhana. Java menyediakan 8 tipe data primitif, mari kita jelajahi!

Byte

Byte adalah tipe Integer yang menyimpan bilangan bulat mulai dari -128 hingga 127, ini menghapus masalah batasan memori jika Anda berurusan dengan angka kecil karena hanya membutuhkan 1 byte memori. Variabel byte dapat dideklarasikan menggunakan kata kunci “byte”. Menetapkan nilai yang lebih tinggi dari 127 ke satu byte akan memunculkan kesalahan "tipe yang tidak kompatibel".

byte n1 = 98 ;

Sistem . keluar . println(n1);

Cuplikan di atas mencetak 98 seperti yang diharapkan.

Pendek

Short adalah tipe Integer yang menyimpan bilangan bulat mulai dari -32768 hingga 32767, ia menghabiskan 2 byte memori dari disk. Variabel pendek dapat dideklarasikan dengan menggunakan kata kunci “short”. Menetapkan nilai yang lebih besar dari 32767 ke variabel pendek akan memunculkan kesalahan "tipe yang tidak kompatibel".

pendek n1 = 9876 ;

Sistem . keluar . println(n1);

Cuplikan di atas mencetak 9876 sebagai output.

ke dalam

Int adalah tipe integer yang menyimpan bilangan bulat mulai dari -2147483648 hingga 2147483647, ia menghabiskan 4 byte memori dalam disk. Umumnya, programmer lebih suka menggunakan int untuk mendeklarasikan variabel yang menyimpan nilai numerik. Kompiler Java menampilkan kesalahan "tipe yang tidak kompatibel" jika mencoba menetapkan nilai yang lebih besar dari rentang.

int n1 = 987654 ;

Sistem . keluar . println(n1);

Cuplikan di atas mencetak 987654 sebagai output.

Panjang

Sekarang, ini adalah tipe data yang menarik yang menghabiskan 8 byte memori dalam disk. Ini adalah tipe integer yang menyimpan bilangan bulat mulai dari -9223372036854775808 hingga 9223372036854775807, Fiuh, itu membutuhkan banyak waktu untuk membaca rentang itu.

Ini digunakan ketika tipe data int meluap untuk operasi yang kita lakukan. Ingat bahwa kita perlu mengakhiri nilainya dengan 'L' saat menetapkan.

panjang n1 = 987654321098765L ;

Sistem . keluar . println(n1);

Cuplikan di atas mencetak 987654321098765, seperti yang diharapkan.

Mengambang

Float adalah tipe data floating-point, artinya dapat menyimpan nilai termasuk presisi desimalnya. Mari kita asumsikan bahwa Anda telah mengembangkan kode untuk mencatat semua pengeluaran Anda, tetapi Anda cukup ketat dan ingin melacak setiap sen yang Anda keluarkan. Dalam hal ini, int tidak akan melakukan pekerjaan karena int hanya dapat menyimpan bilangan bulat.

Kami membutuhkan tipe data floating-point untuk tugas ini. Float dapat menyimpan bilangan pecahan mulai dari 3.4e-038 hingga 3.4e+038, ia dapat menyimpan hingga 7 digit desimal presisi. Ingatlah bahwa Anda harus mengakhiri nilainya dengan 'f'.

mengapung n = 98.76f ;

Sistem . keluar . println(n);

Cuplikan di atas mencetak 98,76 sebagai output.

Baca: Properti & Manfaat JavaBeans: Bagaimana Seharusnya Anda Memanfaatkannya?

Dobel

Double mirip dengan float, tetapi seperti namanya, ini adalah dua kali float dalam hal presisi desimal. Ini dapat memiliki presisi desimal 15 digit dan dapat menyimpan angka pecahan mulai dari 1.7e-308 hingga 1.7e+308. Ingatlah bahwa Anda harus mengakhiri nilainya dengan "d".

Mari menelusuri kode untuk memahami perbedaan antara float dan double.

Tes kelas publik {

public static void main ( String args[])

{

float a1 = 1.f / 70 ;

mengapung b1 = 0 ;

ganda a2 = 1.d / 70 ;

ganda b2 = 0 ;

mengapung f1 = 1f ;

ganda f2 = 1d ;

untuk ( int i = 0 ;i < 490 ;i ++ ){

b1 = b1 + a1;

b2 = b2 + a2;

jika (i > 1 && i <= 50 ){

f1 = f1 * saya;

f2 = f2 * saya;

}

}

Sistem . keluar . println(b1); //baris1

Sistem . keluar . println(b2); //baris2

Sistem . keluar . println(f1); //baris3

Sistem . keluar . println(f2); //baris4

}

}

Di tangan perhitungan ekspresi "(1/70)*490" memberi kita 7 sebagai jawaban, tetapi mengeksekusinya di java menggunakan float dan double memberikan jawaban yang berbeda. Dalam cuplikan di atas, variabel float dan variabel ganda diinisialisasi dengan 1/70, dan menambahkan nilai ini ke variabel lain 490 kali akan memberi kita 7 sebagai jawabannya.

Saat menjalankan potongan di atas, baris 1 mencetak 6.9999795 yang memiliki presisi desimal 7 digit, sedangkan baris 2 mencetak 6.99999999999999978 yang memiliki presisi desimal 15 digit. Jadi, jika float tidak memberi Anda presisi desimal yang akurat, maka Anda dapat memilih double. Juga, pelampung lebih cenderung mencapai tak terhingga karena jangkauan pelampung lebih sedikit jika dibandingkan dengan dua kali lipat.

Misalnya, jika Anda menyimpan faktorial dari angka yang sangat besar, maka variabel itu mencapai tak terhingga. Dari cuplikan di atas, kita dapat melihat bahwa ada dua variabel yang digunakan untuk menyimpan faktorial dari 50 dan pada saat kita mencetak hasilnya, baris 3 mencetak infinity, dan baris 4 mencetak 3.0414093201713376E64, jadi jika float tidak memenuhi numerik Anda rentang maka Anda dapat memilih untuk ganda.

Float dan double dapat digunakan sebagai bilangan ilmiah dengan 'e', ​​di mana 'e' dilambangkan dengan pangkat 10. Misalnya, 3e2f setara dengan 300,0 dalam tipe data float, dan 3e4d setara dengan 30000.0 dalam tipe data ganda.

Boolean

Tipe data boolean hanya dapat mengambil dua nilai true dan false, dideklarasikan dengan menggunakan kata kunci boolean di java. Tipe data ini umumnya digunakan sebagai variabel flag untuk melacak perubahan yang kita lakukan dalam sebuah kode. Misalnya, menyetel flag ke true jika suatu bilangan habis dibagi 2 else false.

bendera boolean = benar ;

boolean b1 = salah ;

Sistem . keluar . println(bendera); //mencetak benar

Sistem . keluar . println(b1); //cetak salah

Arang

Tipe data char digunakan untuk menyimpan satu karakter, tipe data ini dapat dideklarasikan menggunakan kata kunci char. Ingat bahwa kita harus menyertakan karakter dalam tanda kutip tunggal saat menetapkan, itu dapat menyimpan karakter huruf kecil dan huruf besar dalam tipe data char.

Menyimpan lebih dari satu karakter dalam tipe data char menimbulkan kesalahan. Juga, ada fakta menarik tentang tipe data char yaitu, mengetik char ke dalam bilangan bulat menyimpan nilai ASCII karakter itu, dan sebaliknya juga benar.

char c1 = ' a ' ;

karakter c2 = 66 ;

Sistem . keluar . println(c1); //baris1

Sistem . keluar . println(c2); //baris2

Sistem . keluar . println(( int )c1 ); //baris3

Pada potongan baris 1 di atas, mencetak 'a' sebagai output yang diharapkan. Baris 2 mencetak 'B' sebagai output karena 66 mengacu pada B dalam tabel ASCII. Baris 3 mencetak 97 sebagai output karena merupakan nilai ASCII dari 'a'.

Tapi bagaimana jika kita ingin menyimpan lebih dari satu karakter? Kami akan membahasnya di paragraf mendatang.

Baca Juga: 17 Ide & Topik Java Project Menarik Untuk Pemula

Tipe Data Non-Primitif

Tipe data non-primitif di java juga disebut tipe referensi karena merujuk ke objek. Tipe data non-primitif dibuat oleh programmer dan tidak ditentukan sebelumnya. Karena non-primitif dirujuk sebagai objek, mereka dapat ditetapkan dengan nol, yang bukan merupakan kasus dalam tipe primitif.

Tidak seperti tipe data primitif, tipe data non-primitif harus dimulai dengan huruf besar. Semua tipe data non-primitif memiliki ukuran yang sama dan mengkonsumsi memori yang sama pada disk yang berbeda dalam kasus tipe data primitif.

Rangkaian

String adalah tipe data khusus di java, yang bertentangan dengan fakta bahwa tipe non-primitif didefinisikan oleh programmer. Tipe data string adalah tipe data non-primitif tetapi sudah ditentukan sebelumnya di java, beberapa orang juga menyebutnya tipe data primitif kesembilan khusus.

Ini memecahkan kasus di mana char tidak dapat menyimpan banyak karakter, tipe data string digunakan untuk menyimpan urutan karakter. Ingatlah bahwa Anda perlu menyertakan urutan teks dalam tanda kutip ganda.

String s1 = Halo ;

Sistem . keluar . println(s1);

Cuplikan di atas akan mencetak "Hey There" seperti yang diharapkan.

Array, Kelas, Antarmuka, dll adalah beberapa tipe data non-primitif lainnya di java.

Bagaimana cara menghitung rentang tipe data?

Setelah mengamati rentang tipe data primitif, Anda mungkin ragu apakah kita perlu mengingat ini?. Yah, jawabannya adalah TIDAK. Tetapi kita perlu mengingat ukuran setiap tipe data dan kemudian kita dapat menghitung kisaran tipe data tersebut.

Misalnya, tipe data byte menghabiskan 1 byte memori pada disk. Pada tingkat compiler, semua data disimpan dalam bentuk bit dan satu byte memiliki 8 bit. Sekarang satu di antara 8 bit digunakan untuk menentukan tanda angka dan 7 bit sisanya dapat menyimpan angka sebenarnya, jadi jumlah maksimum yang dapat kita simpan menggunakan 7 bit adalah 128.

Jadi, -128 adalah batas bawah tipe data byte dan +127 adalah batas atas karena nol adalah angka pertama pada baris angka setelah angka negatif.

Demikian pula dalam tipe floating-point, data dibagi menjadi 3 bagian bit bertanda, mantissa, dan eksponen. Bagian Mantissa digunakan untuk menyimpan presisi desimal, float memiliki 23 bit mantissa ditambah satu bit tersembunyi dan double memiliki 52 bit mantissa ditambah satu bit tersembunyi.

Untuk float, log(2^24)/log(10) yang kira-kira sama dengan 7, jadi presisi desimal 7 digit.

Untuk dobel, log(2^53)/log(10) yang kira-kira sama dengan 15, jadi presisi desimal 15 digit.

Mendaftar di Kursus Rekayasa Perangkat Lunak dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Kesimpulan

Kami telah melihat berbagai tipe data di java, memahami tipe data primitif dan non-primitif, perbedaan antara primitif dan non-primitif. Berjalan melalui cuplikan kode sampel untuk memiliki pengetahuan dasar tentang deklarasi tipe data.

Memahami cara menghitung rentang berbagai tipe data tipe data integer, cara menghitung presisi desimal tipe data floating-point.

Sekarang setelah Anda mengetahui berbagai tipe data di java, mulailah menjelajahinya!

Jika Anda tertarik untuk mempelajari lebih lanjut tentang Java, OOP & pengembangan perangkat lunak full-stack, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Full-stack yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat, 9+ proyek, dan tugas, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Persiapkan Karir Masa Depan

Daftar Sekarang untuk Magister Rekayasa Perangkat Lunak