Bahasa Pemrograman Java

1. Variabel dalam bahasa pemrograman java
Variabel dalam Java
          Ketika kita bekerja menggunakan variabel dalam pemrograman Java, hal yang perlu kita cermati adalah bahwa dalam Java terdapat beberapa jenis variabel. Diantara variabel-varibel tersebut adalah :
  • Variabel Lokal
  • Variabel Kelas ( Variabel Static )
  • Variabele Instance ( Variabel Non-Static )
          Setiap variabel dalam Java memiliki tipe yang spesifik, yang enentukan ukuran dan layout memori, jangkauan nilai yang dapat disimpan, dan operasi-operasi yang dapat dijalankan terhadap variabel. Dalam Java, kita harus mendeklarasikan semua varibel sebelum digunakan.  Berikut merupakan bentuk dasar deklarasi variabel :
tipe data variabel [=nilai][,variabel[=nilai]….];
Berikut ini adalah contoh deklarasi dan inisialisasi variabel dalam Java :
int a, b, c; //Mendeklarasikan tiga int yaitu a, b, dan c.
int a=10, b=10; //Contoh inisialisasi.
byte B=22; //Inisialisasi variabel B dengan type byte.
double pi=3.14159; //Deklarasi dan inisialisai nilai pi.
char a=’a’; //variabel char a diinisialisai dengan ‘a’.
Variable Lokal
Variabel lokal memiliki ciri-ciri :
  • Variabel lokal dideklarasikan didalam method, konstruktor atau blok.
  • Variabel lokal dibuat saat method, kontruktor atau blok mulai dijalankan dan akan dihapus saat selesai dijakankan.
  • Modifier akses tidak dapat digunakan untuk variabel lokal.
  • Variabel lokal hanya dapat digunakan didalam method, konstruktor, atau blok tempat pendeklarasiannya.
  • Tidak ada nilai default untuk variabel lokal sehingga variabel lokal harus dideklarasikan dan diinisialisasikan sebelum digunakan.
Berikut ini contoh variabel lokal yang didefinisikan di dalam method umurKucing() dan lingkup penggunaannya hanya di dalam method tersebut.
public class Tes {
public void umurKucing() {
int umur=0;
umur=umur+7;
System.out.println(“Umur kucing adalah : “+umur);
}
public static void main(String args[])
{
Tes tes = new Tes(); tes.umurKucing();
}
}

Variabel Instance
Variabel Instance atau Variabel Non-Static memiliki ciri ciri :
  • Variabel instance dideklarasikan didalam kelas, tetapi di luar method, konstructor, atau blok.
  • Saat sebuah objek dibuat, tempat untuk setiap ariabel instance disiapkan dalam memori.
  • Variabel instance dibuat saat sebuat objek dibuat dengan kata kunci ‘new’ dan dihapus saat objek tersebut dihapus.
  • Variabel instance dapat dideklarasikan dalam kelas sebelum atau sesudah penggunaan.
  • Modifier akses dapat digunakan oleh semua method, konstruktor, dan blok di dalam kelas.
  • Variabel instance memiliki nilai default ; untuk tipe numerik 0, untuk Boolean false, dan untuk referensi objek adalah null.
Berikut merupakan contoh penggunaan Variabel Instance :
import java.io.*;
public class Karyawan {
//variabel instance ini dapa digunakan oleh semua subkelas
//(kelas anak).
public String nama;
//variabel nama diinisialisaikan dalam konstruktor.
public Karyawan (String namaKar)
{
nama=namaKar;
}
//Method ini menampilkan informasi Karyawan.
public void tampilKar()
{
System.out.println(“Nama : “+nama);
}
public static void main(String[] args) {
Karyawan karSatu=new Karyawan(“Puruhita Mega”);
karSatu.tampilKar();
}
}

Variabel Kelas
Variabel Kelas atau Variabel Static memiliki ciri-ciri :
  • Variabel kelas/static dideklarasikan dengan katakunci static didalam kelas, tetapi diluar method, konstruktor, atau blok.
  • Hanya ada satu salinan dari variabel kelas per kelas.
  • Variabel static biasanya dideklarasikan sebagai konstanta. Variabel konstanta nilainya tetap dan tidak berubah.
  • Variabel static dibuat ketika program dimulai dan dihapus saat program berhenti.
  • Variabel static memiliki nilai default yang sama dengan varibake instance.
  • Variabel static dapat diakses dengan memanggil nama kelas.NamaKelas.NamaVariabel.
  • Saat mendeklarasikan variabel kelas dengan public static final, maka nama variabel (konstanta) dituliskan semua dalam huruf kapital. Jika variabel static tidak dideklarasikan dengan public  final, sintaks pertamanya sama dengan variabel instance dan lokal.
Berikut contoh penggunaan variabel kelas :
import java.io.*;
public class Karyawan {
//variabel gaji adalah variabel private static.
private static double gaji;
//DEPARTEMENT adalah konstanta.
public static final String DEPARTEMENT=”Pengembangan”;
public static void main(String args[])
{
gaji=1000;
System.out.println(DEPARTEMENT+”Gaji rata-rata : “+gaji);
}
}

2. tipe data dalam bahasa pemrograman java
Tipe data adalah jenis data yang mempunyai batasan tempat dan karakteristik sesuai dengan interprestasi data dan dapat diolah oleh komputer untuk memenuhi kebutuhan dalam pemrograman komputer. Tipe data pada umumnya termasuk tipe data primitif, yaitu interger, floating point number dan character (string). Kumpulan dari tipe data primitif yang sejenis juga dapat disatukan dalam sebuah blok yang disebut array.
Setiap variabel atau konstanta yang ada dalam kode program, sebaiknya kita tentukan dengan pasti tipe datanya. Ketepatan pemilihan tipe data pada variabel atau konstanta akan sangat menentukan pemakaian sumberdaya komputer (terutama memori komputer). Salah satu tugas penting seorang programmer adalah memilih tipe data yang sesuai untuk menghasilkan program yang efisien dan berkinerja tinggi.
Jadi dengan kata lain, misalkan sebuah variabel adalah wadah suatu zat, kemudian kita memiliki beberapa zat yang ingin kita simpan didalam wadah tersebut. Misal, kita memiliki air untuk ditempatkan dalam suatu wadah, apa yang akan kita gunakan untuk menampung / mewadahi air tersebut ? Gelas ? Ember ? Gayung ? Ya benar sekali. Kita harus menggunakan wadah khusus zat cairan untuk menampung / mewadahi air, kita tidak mungkin menggunakan wadah lainnya. Kita tidak mungkin menggunakan kardus untuk mewadahi air bukan ? Karena kardus digunakan untuk mewadahi zat padat. Jadi sama halnya dengan tipe data, apabila kita ingin menampung/menyimpang sebuah input huruf, kita tidak bisa menyimpannya dalam bentuk tipe data angka / integer, karena tipe data integer / angka hanya di desain khusus untuk menampung / mewadahi inputan berupa angka saja.
Setelah kita memahami apa itu tipe data seperti yang dijelaskan di atas, kita bisa memulai untuk mengetahui apa saja tipe data yang ada, khususnya dalam bahasa pemrograman Java.
Java mempunyai 11 macam tipe data yang terdiri atas tipe data sederhana dan referensi / komposit. Tipe sederhana meliputi byte, short, int, long, char, float, double dan boolean yang terbagi menjadi 3 tipe. Sedangkan tipe data referensi meliputi class,array dan interface.
A. Tipe Data Sederhana
  1. Integer (Bilangan Bulat)
Tipe data yang masuk menjadi bagian ini adalah byte, short, int dan long. Semua tipe data ini bersifat
Signed, yaitu bisa mempresentasikan nilai positif dan negatif. Tidak seperti tipe data lainnya, Java tidak mendukung tipe data Unsigned yang hanya bisa mempresentasikan nilai postif.
  • Byte
Type byte umumnya digunakan pada saat kita bekerja dengan sebuah data stream dari suatu file maupun jaringan, yaitu untuk kepeluan proses membaca/menulis. Selain itu, tipe ini juga digunakan saat bekerja dengan data biner yang tidak kompatibel dengan tipe-tipe lain yang didefiniskan di dalam Java.
  • Short
Pada umumnya diaplikasikan pada komputer-komputer 16-bit, yang saat ini semakin jarang keberadaanya
  • Int
Tipe ini merupakan tipe yang paling banyak dipakai dalam merepresentasikan angka dalam Java, dikarenakan dianggap paling efisien dibandingkan dengan tipe-tipe integer lainnya. Tipe Int banyak digunakan untuk indeks dalam struktur pengulangan maupun dalam konstruksi sebuah array.Selain itu, secara teori setiap ekspresi yang melibatkan tipe integer byte, short, int, long) semuanya akan dipromosikan ke int terlebih dahulu sebelum dilakukan proses perhitungan.
  • Long
Tipe ini digunakan untuk kasus-kasus tertentu yang nilainya berada di luar rentang tipe int, karna tipe ini punya range paling tinggi dibanding Integer lainnya. Dengan kata lain, tipe long terpaksa digunakan jika data memiliki range diluar range int.
2. Floating – Point (Bilangan Pecahan)
Tipe floating-point digunakan untuk merepresentasikan nilai-nilai yang mengandung pecahan atau angka decimal di belakang koma, seperti 3.1416,5.25, dan sebagainya. Bilangan semacam ini disebut sebagai bilangan riil. Dalam Java tipe ini dibedakan menjadi dua jenis, yaitu float, dan double.
  • Float
Tipe ini digunakan untuk menandakan nilai–nilai yang mengandung presisi atau ketelitan tunggal (single-precision) yang menggunakan ruang penyimpanan 32-bit. Presisi tunggal biasanya lebih cepat untuk processor-processor tertentu dan memakan ruang penyimpanan setengah kali lebih sedikit dibandingkan presisi ganda (double precision). Permasalahan yang timbul dari pemakaian tipe float untuk nilai-nilai yang terlalu kecil atau justru terlalu besar, karena nilai yang dihasilkan akan menjadi tidak akurat.
  • Double
Tipe ini mengandung tingkat ketelitian ganda atau presisi ganda (double precision) dan menggunakan ruang penyimpanan 64-bit untuk menyimpan nilai. Tipe double tentu lebih cepat untuk melakukan perhitungan-perhitungan matematis daripad tipe float. Untuk perhitungan yang bersifat bilangan riil dan menghasilkan hasil yang lebih akurat, maka lebih baik menggunakan tipe double.
3. Char
Tipe data char merupakan tipe untuk menyatakan sebuah karakter.  Java menggunakan karakter Unicode untuk merepresentasikan semua karakter yang ada . Unicode ialah sekumpulan  karakter yang terdapat pada semua bahasa, seperti bahasa Latin, Arab, Yunani dan lain-lainnya. Karena bahasa Java dirancang untuk dapat diterapkan di berbagai macam platform, maka Java menggunakan karakter Unicode yang membutuhkan ukuran 16-bit. Untuk karakter-karakter yang tidak dapat diketikkan secara langsung melalui keyboard, java menyediakan beberapa escape sequence (pasangan karakter yang dianggap sebagai karakter tunggal). Escape sequence tidak dianggap sebagai String, melainkan tetap sebagai tipe karakter khusus.
4. Boolean
Tipe boolean adalah tipe data yang digunakan untuk menampung nilai logika, yaitu nilai yang hanya memiliki dua buah kemungkinan (benar atau salah). Tipe ini ditandai dengan kata kunci Boolean. Dalam bahasa Java, nilai benar dipresentasikan dengan kata kunci true dan nilai salah dengan kata kunci false.
B. Tipe Data Referensi
1. Class
Kelas dapat didefiniskan sebagai cetak biru (blueprint) atau prototipe/kerangka yang mendefiniskan variabel-variabel (data) dan method-method (perilaku) umum dari sebuah objek. Dengan kata lain kelas adalah sebuah kesatuan yang terintegrasi antara method dan data yang mengacu pada suatu objek.
Dalam dunia permrograman, sebenarnya kelas tidak jauh berbeda dengan tipe data sederhana. Perbedaannya, tipe data sederhana digunakan untuk mendeklarasikan variabel ‘normal’, sedangkan kelas digunakan untuk mendeklarasikan sebuah variabel yang berupa objek. Variabel yang berupa objek ini sering disebut dengan referensi objek (object reference).
Pada saat kita membuat sebuah kelas baru. Sekali didefiniskan, maka tipe data baru ini dapat digunakan untuk membuat suatu objek dari tipe tersebut. Dengan kata lain, kelas adalah pola (template) untuk pembuatan objek, dan objek adalah wujud nyata (instance) dari sebuah kelas.
2. Array

Tipe data ini memiliki kemampuan untuk menggunakan satu variabel yang dapat menyimpan sebuah data list dan kemudian memanipulasinya dengan lebih efektif.
Sebuah array akan menyimpan beberapa item data yang memiliki tipe data sama didalam sebuah blok memori yang berdekatan yang kemudian dibagai menjadi beberapa slot.
3. Interface
Interface merupakan sekumpulan method yang hanya memuat deklarasi dan struktur method, tanpa detail implementasinya. Sedangkan detail dari method tersebut berada pada class yang mengimplementasikan interface tersebut. Interface digunakan bila Anda ingin mengaplikasikan suatu method yang spesifik,  yang tidak diperoleh dari proses inheritance yang lebih terbatas. Tipe data yang boleh pada interface hanya tipe data konstan.


3. macam macam operator dalam bahasa pemrograman java
Operator berfungsi untuk mengoperasikan (memanipulasi, mengolah) satu atau lebih variabel. Variabel yang dioperasikan disebut operand.
Secara garis besar operator dalam java bisa dikelompokkan menjadi :
1. Operator assignment
2. Operator aritmatika
3. Operator unary
4. Operator equality
5. Operator kondisional
6. Operator komparasi
7. Operator bitwise

1. Operator assigment adalah tanda = (sama dengan), berguna untuk memberi literal pada suatu variabel tertentu.
2. Operator aritmatika adalah operator yang digunakan untuk melakukan operasi aritmatika (perhitungan). Operator ini ada lima macam yaitu :
– Operator penambahan (+)
– Operator penguranan (-)
– Operator perkalian (*)
– Operator pembagian (/)
– Operator sisa – mod (%).
Operator penjumlahan (+) bisa juga diterapkan pada objek          string (seperti pada contoh penjelasan kelas String).
3. Operator unary meliputi operator unary positif (+) untuk menandakan suatu bilangan positif (setiap bilangan tanpa tanda negatif, berarti termasuk bilangan positif). Operator unary negatif (-) untuk menandakan suatu bilangan negatif. Operator unary increment (++), berguna menambah menambah literal bilangan dengan literal bilangan satu. Operator unary decrement (–), berguna mengurangi literal bilangan dengan bilangan satu. Dan operator unary komplemen logika (!), berguna untuk mengkomplemenkan suatu logika yang bernilai true atau false.
4. Operator equality digunakan untuk membandingkan dua variabel, apakah nilainya sama, lebih besar, lebih kecil, lebih besar atau sama dengan, lebih kecil atau sama dengan dan tidak sama dengan.
Operator-operator tersebut adalah sebagai berikut :
== sama dengan
> lebih besar
< lebih kecil
>= lebih besar atau sama dengan
<= lebih kecil atau sama dengan
!= tidak sama dengan
5. Operator kondisional digunakan pada dua atau lebih ekspresi boolean. Operator ini terdiri dari operator kondisional AND (&&) dan operator kondisional OR (||). Selain itu ada juga operator kondisional and (&) dan operator kondisional or (|). Bedanya pada operasional kondisional && dan || jika ekspresi sudah memenuhi syarat, ekspresi setelahnya tidak dicek, sedangkan pada operator kondisional & dan | akan mengecek seluruh ekspresi.
6. Operator komparasi digunakan untuk mengecek apakah suatu objek merupakan instance dari suatu kelas tertentu. Operator komparasi adalah operator instanceof. Jika suatu objek yang kita tes merupakan instance dari suatu kelas yang kita tentukan, ekspresi ini bernilai true, false jika sebaliknya. Berikut contoh sederhana pemakaian operator komparasi.

4. public static void main dalam bahasa pemrograman java
Bila di suatu class terdapat static variable dan static method, maka apabila ada class lain yang ingin menggunakannya dapat langsung memanggil variable atau method tersebut dengan format: NamaClass.namaStaticVariableAtauMethod. Kita tidak perlu lagi membuat suatu objek dari class tersebut.
Pertama saya akan membahas mengenai static variable. Langsung praktek saja ya biar lebih mudah mengerti. Perhatikan code berikut :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.maniakjava.testdefault;

public class Test
{
   public int counter = 0;
   public Test()
   {
      counter += 1;
   }

   public int getCounter()
   {
      return counter;
   }

   public void addCounter()
   {
      counter+=1;
   }
}
Kemudian pada package yang sama buatlah class MainInside berikut :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.maniakjava.testdefault;

public class MainInside
{
   public static void main(String[] args)
   {
      Test obj1 = new Test();
      Test obj2 = new Test();
      Test obj3 = new Test();
      obj1.addCounter();
      System.out.println("Counter milik obj1 = " + obj1.getCounter());
      System.out.println("Counter milik obj2 = " + obj2.getCounter());
      System.out.println("Counter milik obj3 = " + obj3.getCounter());
   }
}
Perhatikan code di atas. Jika dijalankan akan terlihat bahwa masing2 object dari class Test memiliki state masing2. Jika obj1 menambah counternya, tidak akan berpengaruh terhadap counter milik obj2 dan obj3. Output dari code di atas adalah :
Counter milik obj1 = 2
Counter milik obj1 = 1
Counter milik obj1 = 1
Sekarang cobalah ubah variable counter di class Test menjadi static variable. Codenya seperti ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.maniakjava.testdefault;

public class Test
{
   public static int counter = 0;
   public Test()
   {
      counter += 1;
   }

   public int getCounter()
   {
      return counter;
   }

   public void addCounter()
   {
      counter+=1;
   }
}
Kemudian jalankan kembali class MainInside di atas (tidak ada code yang perlu diubah). Maka output dari class tersebut adalah :
Counter milik obj1 = 4
Counter milik obj2 = 4
Counter milik obj3 = 4
Mengapa bisa begitu? Bila suatu class memiliki static variable, maka variable tersebut akan dipakai bersama2 oleh object2dari class tersebut. Setiap objek dari class tersebut akan mengakses variable yang sama. Sehingga obj1, obj2, obj3 menggunakan variable yang sama (shared variable).
Sekarang cobalah tambahkan code berikut di class MainInside :
1
System.out.println("Counter milik class = " + Test.counter);
Kemudian jalankan kembali class MainInside tersebut, maka outputnya akan menjadi
Counter milik obj1 = 4
Counter milik obj2 = 4
Counter milik obj3 = 4
Counter milik class = 4
Mengerti kan maksudnya ? Dengan menggunakan static variable maka kita bisa langsung mengakses suatu state tanpa harus membuat suatu object terlebih dahulu. Dan juga perlu diingat bahwa untuk instance variable adalah 1 per instance dan untuk static variable adalah 1 per class.
Kemudian untuk static method, prinsipnya sama dengan static variable yaitu suatu static method dapat langsung diakses tanpa harus membuat object dari suatu class. Agar lebih jelas, ubah code class Test menjadi seperti ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.maniakjava.testdefault;

public class Test
{
   public static void fungsiStatic()
   {
      System.out.println("ini fungsi static");
   }

   public void fungsiBiasa()
   {
      System.out.println("ini fungsi biasa");
   }
}
Kemudian ubah class MainInside menjadi seperti ini :
1
2
3
4
5
6
7
8
9
10
11
package com.maniakjava.testdefault;

public class MainInside
{
   public static void main(String[] args)
   {
      Test.fungsiStatic();
      Test obj = new Test();
      obj.fungsiBiasa();
   }
}
Karena fungsiStatic merupakan sebuah static method, maka kita dapat langsung mengaksesnya tanpa harus membuat sebuah object dari class Test. Sedangkan untuk mengakses fungsiBiasa, kita harus membuat object terlebih dahulu baru kita dapat mengaksesnya. Perlu diingat juga bahwa suatu static method tidak bisa mengakses suatu non-static method dan instance variable.
Lalu di Java juga ada suatu istilah yang dinamakan static imports. Tapi static imports ini hanya terdapat mulai dari java 5 dan seterusnya. Static imports ini berfungsi untuk mempercepat pengetikan (typing code), cocok buat kalian yang malas ngetik code panjang2.
Langsung saja lihat contoh code berikut
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.maniakjava.main;

public class Test
{
    public static void main(String[] args)
    {
        String x1 = "30";
        String x2 = "1988";
        int y1 = Integer.parseInt(x1) - 24;
        int y2 = 2011 - Integer.parseInt(x2);
        System.out.println("y1 : " + y1);
        System.out.println("y2 : " + y2);
    }
}
Contoh di atas belum menggunakan static import. Sekarang perhatikan code berikut ini yang menggunakan static import
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.maniakjava.main;

import static java.lang.System.out;
import static java.lang.Integer.parseInt;

public class Test
{
    public static void main(String[] args)
    {
        String x1 = "30";
        String x2 = "1988";
        int y1 = parseInt(x1) - 24;
        int y2 = 2011 - parseInt(x2);
        out.println("y1 : " + y1);
        out.println("y2 : " + y2);
    }
}
Nah terlihat kan perbedaannya ? Saya sendiri tidak pernah menggunakan static import, karena malah bikin bingung baca codenya.
Terakhir, di Java juga ada suatu istilah yang dinamakan static initializer. Static initializer merupakan suatu blok yang berada di dalam class dan dijalankan ketika suatu class di-load. Biasanya static initializer ini digunakan untuk melakukan inisialisasi suatu variable constant. Perlu kalian ketahui bahwa saat kita membuat suatu variable constant, maka kita wajib melakukan inisialisasi terhadapnya. Kita bisa melakukan inisialisasi langsung saat melakukan deklarasi variable constant atau menggunakan blok static untuk melakukan inisialisasi.
Perlu diketahui juga bahwa static initializer akan dijalankan pertama kali, mendahului constructor suatu class. Sebagai contoh perhatikan code berikut
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Member
{
    public static final int CONSTANT_VARIABLE;
    public static String staticVariable;

    public Member()
    {
        System.out.println("constructor Member dijalankan");
    }
    static
    {
        System.out.println("static dijalankan");
        CONSTANT_VARIABLE=88;
        staticVariable="Maniak Java";
    }
}
Seperti itulah contoh penggunaan blok static.


Komentar

Postingan populer dari blog ini

Program Multi Fungsi dalam 1 Kode Pemrograman C++

Program Untuk Menghitung Deret Bilangan Genap C++