Jenis Data

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 :

booleanchardoublefloatlongintshortbyte
Kegunaan Simpanantrue / falsehuruf tunggalnilai desimal 64bit dengan 754 floating pointnilai desimal 32bit 754 floating pointnilai 64bit integernilai 32bit integernilai 16bit integernilai 8bit integer
Defaultfalse0.0d0.0f0L000
Minimum‘\u0000’
(-2^63)(-2^31)(-2^15)(-2^7)
Maximum‘\uffff’(2^63-1)(2^31-1)(2^15-1)(2^7-1)
Contohboolean 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 :

NotasiKegunaan
\nNewline
\rCarriage return
\fFormfeed
\bBackspace
\sSpace
\ttab
\”Double quote
\’Single quote
\\Backslash
\uxxxxHexadesimal 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!