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’.
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();
}
}
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;
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;
}
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();
}
}
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;
public class Karyawan {
//variabel gaji adalah variabel private static.
private static double gaji;
//DEPARTEMENT adalah konstanta.
public static final String DEPARTEMENT=”Pengembangan”;
public static final String DEPARTEMENT=”Pengembangan”;
public static void main(String args[])
{
gaji=1000;
System.out.println(DEPARTEMENT+”Gaji rata-rata : “+gaji);
}
}
{
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
- 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
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
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
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
Posting Komentar