Variabel dan Literal pada Bahasa Java

baca 6 menit
Variabel dan Literal pada Bahasa Java

Pada kesempatan kali ini kita akan membahas tentang literal dan variabel pada bahasa Java.

Literal dan variabel merupakan komponen yang akan selalu kita gunakan ketika membuat program, karena 2 hal ini berhubungan langsung dengan data dan manipulasinya.

Mari kita bahas.

Literal pada Bahasa Java

Pada konsep pemrograman, istilah literal adalah semua nilai mentah yang kita ketikkan pada kode program. Literal ini bisa berupa angka, huruf, kata, kalimat, nilai boolean, dan lain sebagainya.

Masih belum kepikiran? coba kita lihat potongan kode ini.

java
System.out.println("Hello World!");

Nah, kita-kira pada kode tersebut mana yang termasuk literal?

Pada kode tersebut, yang termasuk literal adalah “Hello World!”. Ini merupakan literal yang bertipe string atau disebut “string literal”.

Kalau kita lihat, terdapat ciri yang menandakan bahwa "Hello World!" merupakan string literal. Sebuah string literal selalu diapit oleh tanda petik (”…”).

Sehingga kita bisa membuat string literal yang lain seperti:

  • “saya makan nasi”
  • "dadu bermata 9"
  • "1945"
  • "@$#&^*"

Itu semua merupakan string literal yang valid.

Sebelumnya sudah disebutkan kalau literal memiliki banyak jenis. Tentunya untuk tiap jenis punya ciri dan aturan masing-masing yang berbeda sesuai tipe datanya.

Contohnya saja:

  • Integer literal (angka bulat) — 1945, -24434, 0x4b, 0b001, 0xFeeL
  • Float literal (angka desimal) — 3.14159, .25, 314E-2L, 120f
  • Boolean literal — true, false
  • Character literal — 'a', '*', '\n', '\t'
  • String literal — bisa dilihat di contoh sebelumnya

Untuk lebih lengkapnya, tentang literal ini akan kita bahas pada kesempatan selanjutnya ketika membahas tentang tipe data.

Lalu apa fungsinya?

Literal tidak akan bisa terpisahkan dari pemrograman. Ada manipulasi data berarti ada variabel. Ada variabel berarti ada literal. Kalau variabel adalah wadah, literal ini adalah isinya. Oleh karena itu, 2 istilah ini tidak bisa dipisahkan.

Oke, selanjutnya kita bahas tentang variabel pada Java.

Variabel pada Bahasa Java

Dalam pemrograman, variabel merupakan tempat penampung data. Variabel ini dapat diisi dengan banyak cara, termasuk adalah dengan literal seperti di atas, atau dengan expression.

Membuat Variabel (Inisialisasi)

Hal yang utama terkait dengan variabel adalah, tiap variabel harus punya nama, atau biasa disebut identifier.

Identifier ini berfungsi sebagai tanda pengenal dan perujuk variabel dalam format yang dimengerti manusia.

Selain identifier, sebagai bahasa dengan gaya static typing, Java juga mengharuskan tiap variabel memiliki tipe data secara eksplisit.

Seperti yang sudah kita singgung sebelumnya, tipe data ini akan menentukan literal apa yang dapat dimasukkan pada variabel terkait.

Lebih lanjut tentang tipe data pada Bahasa Java akan kita bahas pada kesempatan-kesempatan selanjutnya. Jika menemukan keyword tipe data seperti String, int, float, dan lain sebagainya jangan dipikirkan keras-keras apa artinya hehe..

Secara umum, format pembuatan variabel pada bahasa Java adalah sebagai berikut:

java
[tipe_data] [identifier] = [nilai_awal]

Contohnya saja:

java
public class VariabelDanLiteral{
  public static void main(String[] args) {
    String nama = "Inva";
    int angka = 125;
    float pecahan = 0.12f;
    boolean benar = true;
    
    System.out.println("nama: " + nama);
    System.out.println("angka: " + angka);
    System.out.println("pecahan: " + pecahan);
    System.out.println("benar: " + benar);
  }
}

Jika kita jalankan, outputnya akan seperti ini:

nama: Inva
angka: 125
pecahan: 0.12
benar: true

Pada contoh tersebut, kita coba membuat 4 variabel dengan tipe data dan nilai awal yang berbeda.

Hal yang perlu diperhatikan dalam inisialisasi variabel adalah, nilai awal variabel harus sesuai dengan tipe data yang kita berikan. Jika kita memasukkan nilai atau literal yang tidak sesuai, maka program akan langsung error — hal ini juga berlaku untuk assignment variabel.

Contohnya saja:

java
public class VariabelDanLiteral{
  public static void main(String[] args) {
    String nama = 125; // angka tidak bisa masuk ke string
    int angka = "125"; // string tidak bisa masuk ke angka
    
    System.out.println("nama: " + nama);
    System.out.println("angka: " + angka);
  }
}

Bila kita jalankan pasti akan keluar error tipe data yang kurang lebih seperti ini:

/VariabelDanLiteral.java:3: error: incompatible types: int cannot be converted to String
    String nama = 125; // angka tidak bisa masuk ke string
                  ^
/VariabelDanLiteral.java:4: error: incompatible types: String cannot be converted to int
    int angka = "125"; // string tidak bisa masuk ke angka
                ^
2 errors

Dari errornya saja sudah cukup menjelaskan ya.

Mengakses Nilai Variabel

Variabel yang sudah kita buat ini bisa diakses dengan cara memanggil namanya. Ketika dipanggil namanya, variabel akan mengeluarkan nilai yang ada didalamnya.

Contohnya saja seperti kode di atas. Kita memanggil variabel nama, angka, pecahan, dan benar dengan menuliskannya sebagai argumen dari fungsi println. Oleh karena itu, yang keluar di layar adalah isi dari variabel terkait.

Tidak jarang juga ada yang bingung, apa bedanya pemanggilan variabel dengan penulisan literal string. Terutama ketika kita punya nama variabel yang identik dengan literal yang ingin ditulis.

Contohnya seperti ini:

java
public class VariabelDanLiteral{
  public static void main(String[] args) {
    String nama = "Inva"
    
    System.out.println("nama");
    System.out.println(nama);
  }
}

Pada contoh tersebut, kita membuat variabel dengan identifier nama. Selanjutnya, pada println kita mengisi argumen dengan nilai yang sekilas sama.

Ingat! Untuk memanggil variabel, kita hanya perlu menuliskan namanya saja. Pada println yang pertama, karena kita menggunakan tanda petik, maka Java menganggapnya sebagai literal string biasa.

Sedangkan, pada println yang kedua kita melakukan pemanggilan pada variabel nama, sehingga yang keluar adalah isi dari variabel tersebut yaitu "Inva".

Sehingga outputnya akan seperti ini:

nama
Inva

Terlihat ya bedanya.

Pemanggilan variabel juga dapat digunakan dalam operasi data. Seperti penjumlahan, pengurangan, dan lain sebagainya. Contohnya saja seperti ini:

java
public class VariabelDanLiteral{
  public static void main(String[] args) {
    int a = 9;
    int b = 12;
    
    String namaDepan = "Inva";
    String namaBelakang = "sikode";
    
    // nilai variabel jumlah adalah 9 + 12 = 21
    int jumlah = a + b;
    // nilai variabel namaLngkp adalah Invasikode
    String namaLengkap = namaDepan + namaBelakang;
    
    System.out.println(jumlah);
    System.out.println(namaLengkap);
  }
}

Output:

21
Invasikode

Lebih lanjut tentang operasi tipe data akan kita bahas pada kesempatan-kesempatan selanjutnya.

Memasukkan Nilai pada Variabel (Assignment)

Sebagai tempat penyimpan data, variabel juga bisa diubah isinya. Perubahan data ini dilakukan dengan memasukkan data baru, atau disebut dengan assignment.

Untuk melakukan assignment, kita perlu memanggil nama variabel yang sudah diinisialisasi diikuti tanda sama dengan (=) dan nilai yang ingin dimasukkan.

Contohnya seperti ini:

java
public class VariabelDanLiteral{
  public static void main(String[] args) {
    int a = 0; // inisialisasi variabel a
    a = 12;    // mengubah isi variabel a dari 9 menjadi 12

    System.out.println(a);
  }
}

Jika kita jalankan, maka angka yang akan keluar adalah 12.

Selain menggunakan literal langsung, kita juga bisa menggunakan expresi untuk mengisi variabel. Contohnya saja seperti ini:

java
public class VariabelDanLiteral{
  public static void main(String[] args) {
    int a = 0; // inisialisasi variabel a
    a = 10 * 3 - 3; // nilai a = 27

    System.out.println(a);
  }
}

Jika program tersebut kita jalankan, maka yang akan keluar adalah 27. Ini karena Java secara otomatis menghitung operasi bilangan pada assignment variabel a.

Sekarang, bagaimana jika kita memanggil variabel untuk mengisi dirinya sendiri? Kira-kira apa yang akan terjadi? Mari kita coba.

java
public class VariabelDanLiteral{
  public static void main(String[] args) {
    int a = 10; // inisialisasi variabel a
    a = a * a;  // nilai a = ?

    System.out.println(a);
  }
}

Pada program tersebut, kita membuat variabel a dengan nilai awal 10. Pada baris selanjutnya kita melakukan assignment a = a * a, artinya kita mencoba memasukkan nilai variabel a ke dalam dirinya sendiri.

Coba kita jalankan.

100

Nah loh, yang keluar nilai 100. Nilai ini asalnya dari mana?

Sesuai ekspresi yang kita ketikkan pada kode program, ketika kita melakukan pemanggilan variabel maka identifier akan diubah sesuai dengan nilai terkait.

Karena dalam hal ini nilai a adalah 10, maka assignment a = a * a dapat diartikan menjadi a = 10 * 10, jika kita operasikan maka didapat a = 100. Dari sanalah asal muasal nilai 100 didapat.

Gampangnya, ketika ada proses assignment, kita bisa membacanya dari kanan ke kiri. Nilai di kanan tanda sama dengan adalah nilai baru, sedangkan di sisi kiri tanda adalah variabel yang akan diubah nilainya.

Sebagai eksperimen, coba jalankan kode berikut ini dan cari tahu kenapa outputnya bisa begitu.

java
public class VariabelDanLiteral{
  public static void main(String[] args) {
    int a = 10; // inisialisasi variabel a
    a = a * a;
    a = a * a;
    a = a * a;

    System.out.println(a);
  }
}

Selanjutnya

Setelah mengetahui tentang variabel dan literal pada Java, pada kesempatan selanjutnya kita akan membahas tentang cara membuat kode kita menjadi lebih interaktif dengan sistem output.

Selamat berkoding ria 👋