Memang untuk menyimpan suatu nilai kita memerlukan variable. Dari sinilah sebenarnya nilai tertentu ada di lokasi khusus pada suatu memory. Mungkin kita belum begitu sadar ya tiap nilai tertentu itu tersimpan rapi di dalam memory. Tetapi begitu RAM kita rusak, phewww! Rata-rata langsung merembet error kesana kemari! Tapi kali ini kita bukan membahas tentang error koq! Disini kita bakalan explore tentang jenis data yang disimpan oleh suatu variable. Apa saja sih? Ada dua hal:
- Primitive Data Type
- Reference atau Object Data Type
Primitive Data Type
Wah apa itu Primitive? Disini disebut primitif sebenarnya bukan bermakna ‘purbakala’. Tetapi digunakan oleh java sebagai identifikasi 8 jenis data yang sudah ditentukan sejak awal. Apa saja itu?
- byte
- short
- int
- long
- float
- double
- boolean
- char
Itulah ke-8 jenis Primitive Data Type. Secara terperinci begini jadinya :
boolean | char | double | float | long | int | short | byte | |
Kegunaan Simpanan | true / false | huruf tunggal | nilai desimal 64bit dengan 754 floating point | nilai desimal 32bit 754 floating point | nilai 64bit integer | nilai 32bit integer | nilai 16bit integer | nilai 8bit integer |
Default | false | 0.0d | 0.0f | 0L | 0 | 0 | 0 | |
Minimum | ‘\u0000’ | (-2^63) | (-2^31) | (-2^15) | (-2^7) | |||
Maximum | ‘\uffff’ | (2^63-1) | (2^31-1) | (2^15-1) | (2^7-1) | |||
Contoh | boolean b = true; | char = ‘a’; | double cash = 500.5d; | float x = 245.5f; | long y = 12000L; | int y = 12; | short n = 12; | byte m = 8; |
Reference Data Type
Sering dikenal sebagai Object data type. Secara default nilainya pasti null. Contohnya begini :
Binatang robot;
System.out.println(robot);
// tapi akan beda jika
Binatang robotKece = new Binatang("laba-laba");
System.out.println(robotKece.jenis);
Sehingga hasilnya :
null
laba-laba
Java Literal
Dalam penulisan nilai yang sudah fixed kita dapat memberikan nilai langsung kepada suatu variable misalkan seperti ini :
byte kode = 68;
char simb = 'A';
Dan ada juga pemberian nilai yang memberikan nilai oktal, bisa diawali dengan 0. Kemudian penggunaan nilai hexadecimal bisa menggunakan awalan 0x. Begini misalnya:
int bulat = 100;
int oktal = 0144;
int hexa = 0x64;
Kemudian kita juga harus ingat bahwa pemberian nilai String wajib pakai tanda petik seperti ini :
String namaPanggilan = "Udin Sampudin";
String alamat = "Jl. Kemayoran No.12, Jakarta Selatan";
Khusus pada jenis data char kita diperbolehkan menggunakan unicode character. Seperti apa itu misalnya? Ini dia…
char serina = '\u0001';
char serinb = '\u0002';
Dan pada kondisi tertentu kita juga terkadang membutuhkan simbol lain yang digunakan berdasarkan kebutuhan khusus misalnya spasi, tab, garing (garis miring), dst… Ini dia listing nya :
Notasi | Kegunaan |
\n | Newline |
\r | Carriage return |
\f | Formfeed |
\b | Backspace |
\s | Space |
\t | tab |
\” | Double quote |
\’ | Single quote |
\\ | Backslash |
\uxxxx | Hexadesimal Unicode |
Tanda diatas memang kelihatan aneh, tapi coba aja pada beberapa String dan perhatikan hasilnya!
Deklarasi Variable
Dalam penulisannya kita perlu menggunakan syntax alias kaidah standar yaitu :
datatype variable = nilai;
Sehingga contoh penerapannya bisa semudah ini :
int a, b, c;
int aku = 28, kamu = 9, dia = 99;
double nilaiPI = 3.14;
char kode = 'X';
// cukup jelas ya?
Untuk itu setidaknya kita harus faham lho bahwa dalam Java Programming ini ada 3 jenis variable yang harus diketahui :
- Local Variable
- Instance Variable
- Class/Static Variable
Local Variable
- Biasanya dideklarasikan pada method, atau constructor, atau block tertentu.
- Harus diberikan nilai tertentu agar dapat dipakai.
- Sehingga saat proses eksekusi selesai dari suatu method misalnya, maka variable tadi bakal otomatis berakhir. variablenya bakal ‘destroyed’ alias dimusnahkan oleh memory. Kita ngga tau hal tersebut. Yang jelas lancar jalan udah gitu aja!
Contohnya begini:
public class MotorGen{
public void testGerak(){
int powerNa;
powerNa = powerNa + 7;
System.out.println("Power semula " + powerNa);
}
public static void main(String [] args){
MotorGen coba = new MotorGen();
coba.testGerak();
}
}
Hasilnya begini :
MotorGen.java : 4 : variable might not have been initialized powerNa = powerNa + 7; ^ 1 error
tapi coba rubah code testGerak() itu menjadi begini pasti java bakal lancar lagi…
public void testGerak(){
int powerNa = 10;
powerNa = powerNa + 7;
System.out.println("Power semula " + powerNa);
}
Nah hasilnya betulkan?
Power semula 17
Instance Variable
Disini variable tidak disebut sebagai local tetapi disebut Instance karena deklarasinya terletak diluar method, diluar constructor juga.
Penggunaan Instance variable itu hanya dipakai apabila kita menggunakan keywords ‘new’. Begini misalnya:
// ini instance baru
Kucing robot = new Kucing();
// tapi ini belum ada nilainya
Kucing mesin;
Ketika Instance variable dipakai sebenarnya seluruh method, constructor dan juga block tertentu dapat mengaksesnya dengan baik! Contohnya begini…
import java.io.*;
public class Karyawan{
// ini instance variable ya
public String nama;
// yang ini juga tapi ga bisa diakses oleh class lain
private double gaji;
public Karyawan(String namina){
nama = namina;
}
public void setGaji(double uang){
gaji = uang;
}
public void cetakData(){
System.out.println("Nama : " + nama);
System.out.println("Gaji : " + gaji);
}
public static void main(String [] args){
Karyawan orang = new Karyawan("Siska");
orang.setGaji(400);
orang.cetakData();
}
}
Dan hasilnya ya betul saja:
Nama : Siska Gaji : 400
Faham ya sekarang?
Class/Static Variable
Static variable ini mirip seperti instance cuma tiap variablenya akan bernilai sama pada penggunaan manapun.
Ibaratnya satu variable diciptakan lalu diakses oleh berbagai macam class ternyata nilainya seperti sama semua, alias shared for everyone!
Nah bahayanya variable ini tidak pernah didestroy, kecuali ketika program sudah exit. Nah kan ngeri ya! Tapi tenang koq, karena nanti bakal kita explore cara mengatasinya!
Penggunaan saat dipanggil pada code cukup gunakan format : ClassName.VariableName
Simple yah mari kita coba…
public class Kotak{
static int nomorSeri = 1234;
public static void main(String arg[]){
Kotak benda = new Kotak();
System.out.println("Awal " + benda.nomorSeri);
nomorSeri = 9912;
Kotak bendaBaru = new Kotak();
System.out.println("Jadi ini " + bendaBaru.nomorSeri);
// padahal sama saja
System.out.println("Memang pasti " + Kotak.nomorSeri);
}
}
Bisa ditebak outputnya bagaimana? Nah ini…
Awal 1234
Jadi ini 9912
Memang pasti 9912
Oke deh, segitu dulu, jika kamu pengen tau lebih jauh tentang itu semua? Cobain dulu ketik coding nya ke dalam source code java. Atau at least bagi yang belum punya laptop cobalah Java Compiler versi mobile ini.
Karena pembahasan di artikel selanjutnya kita akan bahas tentang access modifier. Apa dan bagaimana detailnya… simak terus dan rajin praktek ya!