Ads 468x60px

wibiya widget

Labels

dasar java


Variabel dalam ilmu matematika adalah sesuatu yang menyimpan nilai yang dapat berubah-ubah. Demikian juga dalam bahasa pemrograman. Variabel dalam bahasa pemrograman adalah lokasi dalam memori di mana sebuah nilai disimpan, dan nilai tersebut dapat diubah. Setiap variabel memiliki nama, tipe, dan nilai.
Jadi variable pada java berfungsi Untuk menyimpan nilai tertentu di dalam program aplikasi (memori komputer), nilai tersebut disimpan sesuai kedalam suatu variabel yang tipenya sesuai dengan tipe dari nilai tersebut serta item yang digunakan data untuk menyimpan pernyataan objects.
B. Jenis Variable
Java memiliki beberapa jenis variabel yang dapat dikelompokkan sebagai berikut :
1. Instance Variables (tidak statis) ialah variabel yang digunakan sebagai atribut dari sebuah objek. Instans yang diciptakan dari sebuah kelas. Dalam bahasa pemrograman berorientasi objek, objek menyimpan variabel yang tidak dideklarasikan dengan kata kunci static dalam kategori non-statis, atau dapat berubah-ubah. Suatu kelas dapat dijelmakan ke dalam beberapa objek.Nilai yang terkandung dalam variabel tak-statis ini berbeda untuk setiap objeknya.Variabel instance sama halnya dengan variabel class, tetapi tidak menggunakan kata static dalam pendeklarasiannya. Variabel instance terhubung dengan instance dari class. Jadi kita hanya bisa menggunakannya ketika membuat instance dari class. Karena static method tidak terhubung dengan instance dari class, kita tidak bisa menggunakan variabel instance dalam static method dan memasukkannya dalam main method.Berikut adalah contoh dari pendeklarasian variabel instance dan jika kita mencoba untuk mengakses variabel tersebut melalui main method (yang merupakan static method) maka saat di-compile akan mengalami error.
SayHelloA.java

public class SayHelloA
{
// declare instance variable
String helloMessage = “Hello Programmer”;
public static void main(String args[])
{
System.out.println(helloMessage);
}
}
Dan di bawah ini adalah pesan error yang akan ditampilkan jika kita mencoba untuk mengcompile program di atas.
SayHelloA.java

SayHelloA.java:8: non-static variable helloMessage cannot be
referenced from a static context
System.out.println(helloMessage);
^
1 error
2. Class Variables (statis) ialah variabel yang digunakan sebagai atribut dari sebuah kelas. Variabel kelas adalah variabel yang didefinisikan dan digunakan hanya dalam sebuah metode. Variabel ini merupakan bagian integral dari suatu kelas, dan tidak ada satu objek pun yang dapat menyatakan kepemilikan atas variabel ini. Variabel yang dideklarasikan sebagai statis digunakan bersama oleh semua objek. Variabel ini lebih bersifat global yang nilainya sama untuk setiap objek pada kelas yang bersangkutan dan juga variabel dapat diakses oleh semua method di dalam class, termasuk static method seperti main. Ketika mendeklarasikan variabel class, ada dua aturan dasar yang harus diikuti, yaitu: Menempatkan deklarasi variabel dalam blok class, tetapi tidak dalam method yang berada dalam class.Kita harus memasukkan kata “static” dalam pendeklarasian variabel. Kata static ditempatkan sebelum tipe variabel.Agar lebih jelas lihat contoh program di bawah ini:
SayHello.java

public class SayHello
{
// declare class variable
static String helloMessage = “Hello Programmer”;
public static void main(String args[])
{
System.out.println(helloMessage);
System.out.println(myNickNameIs);
}
// declare class variable
static String myNickNameIs = “ghaNOZ2480″;
}
Bila melihat contoh program diatas, kita dapat menempatkan pendeklarasian variabel pada awal class atau akhir class, tetapi lebih baik ditempatkan di awal class agar lebih mudah dibaca.
1.    Local Variabel adalah variabel yang dideklarasikan di dalam badan method. Jadi kita hanya dapat menggunakan variabel tersebut hanya di dalam method. Method lain dalam class tidak peduli akan keberadaan variabel tersebut. Dan variabel lokal hanya akan ada jika method (yang memiliki variabel lokal tersebut) dieksekusi. Dalam pendeklrasiannya kita tidak perlu menambahkan kata static (seperti yang harus dilakukan pada saat mendeklarasikan variabel class). Jika kata static digunakan dalam pendeklarasian variabel lokal, maka compiler akan menghasilkan pesan error dan menolak untuk melakukan compile terhadap program.Berikut adalah contoh program yang menunjukkan pendeklarasian variabel lokal di dalam method main:
SayHelloB.java

public class SayHelloB
{
public static void main(String args[])
{
// declare local variable within main method
String helloMessage = “Hello Programmer”;
System.out.println(helloMessage);
} // end of main method
}
2.    Paramater atau argumen adalah variabel yang digunakan pada saat suatu metoda atau prosedur dipanggil. Parameter berguna untuk memberikan nilai awal untuk diteruskan (pass) ke dalam suatu prosedur atau metoda.
Tidak seperti bahasa pemrograman lain, Java tidak memiliki variabel global, yaitu variabel yang tersedia bagi semua bagian program. Dalam Java kita menggunakan variabel kelas dan instans untuk mengkomunikasikan informasi global di antara objek-objek. Hal ini disebabkan Java menganut paradigma pemrograman berorientasi objek murni, sehingga segala hal dipandang sebagai interaksi antarobjek bukan antar bagian program.
 Tipe Data (Tipe Variable)
Tipe data pada java digunakan untuk menentukan jenis suatu variable, apakah variable tersebut akan diisi dengan angka bilangan bulat, desimal, teks, dan lain sebagainya. Dengan demikian setiap variable diharuskan memiliki tipe data untuk pendeklarasiannya karena sebuah variabel tipe datanya menentukan nilai dari variabel yang dapat memuat dan operasi-operasi yang dapat dilakukannya. Tipe data pada java dapat dibagi menjadi dua, yaitu tipe data primitif (disebut primitif karena dibangun ke dalam sistem dan bukan benar-benar objek sehingga pemakaiannya lebih efisien. Tipe-tipe tersebut tidak bergantung pada arsitektur mesin, sehingga pemakaiannya tidak mengganggu portabilitas program Anda) dan tipe data reference. Java memiliki delapan tipe data primitif yang dapat digunakan sebagai variable, sedangkan untuk tipe data kelas jumlahnya tak terhingga (karena bisa kita definisikan sendiri). Delapan tipe data primitif ini sangat fundamental karena ia sebagai dasar untuk membangun tipe data kelas. Kedelapan tipe data primitif tersebut bisa digolongkan kedalam tipe data numerik (untuk mengolah nilai-nilai yang berupa angka), tipe data boolean (berisi nilai benar dan salah - 0 dan 1), dan tipe data karakter huruf.
Tipe data numerik dibagi menjadi dua, yakni tipe data untuk menyimpan bilangan bulat dan tipe data untuk menyimpan bilangan pecahan. Berikut adalah tipe data primitif (dasar) dalam java :
Numerik Bilangan Bulat :
byte (panjangnya 1 byte = 8 bit), menampung nilai dari -127 sd 128. Memiliki nilai default 0 –> artinya jika tidak diinisialisasi (diberi nilai awal) variabel yang menggunakan tipe data ini bernilai 0.
short (panjangnya 2 byte = 16 bit), menampung nilai dari -32.768 sd 32.767. Nilai default juga 0.
int (panjangnya 4 byte = 32 bit), menampung nilai dari -2.147.483.648 sd 2.147.483.647. Nilai default 0.
•    Long (panjangnya 8 byte = 64 bit), menampung nilai dari 9.223.372.036.854.775.808 sd 9.223.372.036.854.775.807. Nilai default 0.
Numerik Bilangan pecahan (bilangan riil) :
float (panjangnya 4 byte), menampung nilai dari -3.4E38 (-3.4 * 10 pangkat 38) sd +3.4E38. Memiliki presisi angka sampai 7 digit (0.xxxxxxx)
double (panjangnya 8 byte), menampung nilai dari -1.7E308 (-1.7 * 10 pangkat 308) sd +1.7E308. Memiliki presisi angka sampai 17 digit (0.xxxxxxxxxxxxxxxxx)
Deklarasi untuk tipe data numerik bilangan pecahan secara default menggunakan tipe data double. Jadi 0.24, 1.78, 2000.5034 dll dibaca sebagai double. Dengan eclipse deklarasi variabel float testFloat = 0.24; akan bertanda merah (berarti eclipse mendeteksi kesalahan). Deklarasi pecahan yang bertipe float harus diakhiri dengan huruf f. Deklarasi float yang salah di atas bisa diperbaiki menjadi sebagai berikut float testFloat = 0.24f.
Dua tipe data primitif yang lain adalah char dan boolean. char adalah tipe data untuk menampung nilai dari satu karakter Unicode (bisa berupa huruf atau angka), ukurannya 16-bit. Sedangkan boolean adalah tipe data untuk menampung nilai benar (true) atau salah (false) dengan ukuran 1-bit. Berikut contoh deklarasi variabel menggunakan tipe data primitif char dan boolean yg sudah dinisialisasi:
char nilaiKuliah = ‘A’;
boolean lulus = true;
Default tipe data char adalah karakter kosong, sedangkan default tipe data boolean adalah bernilai ‘false’. Java memiliki tipe data kelas yang bersesuaian, yaitu Byte untuk tipe data primitif byte, Short untuk tipe data primitif short, Integer untuk tipe data primitif int, Long untuk tipe data primitif long, Float untuk tipe data primitif float, Double untuk tipe data primitif double, Boolean untuk tipe data primitif boolean dan Character untuk tipe data primitif char.
D. Aturan Penamaan Variabel
Java memiliki aturan-aturan dalam penamaan suatu variabel. Aturan-aturan itu adalah sebagai berikut:
Penamaan variabel tidak boleh menggunakan kata-kata kunci (reserved word) dalam bahasa pemrogramman java. Kata-kata kunci tersebut adalah sebagai berikut : abstract, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, extends, final, finally, float, for, goto, if, implements, import,instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, try, void, volatile dan while.
Harus dimulai dengan huruf atau garis bawah ( _ ) atau tanda dollar ($), tidak boleh angka. Huruf kedua dan seterusnya bebas (bisa angka) tapi tidak boleh menggunakan operator yang digunakan java (semisal +, ++, * , -, — dll)
Panjang nama variabel terserah (dalam artian tidak dibatasi) tapi kata-katanya tidak boleh terpisah (tidak boleh ada spasi).
Nama Variabel dalam java adalah case sensitif (membedakan huruf kecil dan huruf besar. Nama variabel bilangan1 dan Bilangan1 dianggap sebagai dua variabel yang berbeda.
Penamaan variabel sebaiknya interpretatif, menggambarkan raealita yang diwakilinya. Penamaan variabel String namaMahasiswa adalah lebih interpretatif dibandingkan dengan variabel String x.
Sudah menjadi konvensi (kesepakatan) para programmer java juga, jika penamaan variabel dimulai dengan huruf, maka hurufnya harus huruf kecil. Berikut contoh penamaan variabel yang valid dan tidak valid :
int bilangan1 –> valid
int bilangan 1 –> tidak valid
int 1bilangan –> tidak valid
int _bilangan1 –> valid
int $bilangan1 –> valid
int b1langan –> valid
int bi-langan –> tidak valid
int bi+langan –> tidak valid
Konstanta
Konstanta yang juga disebut variabel final, merupakan variabel yang nilainya tidak dapat kita rubah setelah diinisialisasi. Untuk mendeklarasikan konstanta, kita menambahkan kata kunci final pada pendeklarasian variabel:

final int JUMLAH_HARI = 7;
Meskipun kita dapat membuat variabel konstanta lokal, kebanyakan variabel konstanta merupakan variabel kelas atau instance. Untuk mendeklarasikan konstanta kelas, tambahkan static final pada pendeklarasian variabel:

static final JUMLAH_HARI = 7;

Pada prinsipnya konstanta hampir mirip dengan variabel. Dua-duanya digunakan untuk menyimpan suatu nilai dari tipe data tertentu. Bedanya variabel menyimpan suatu nilai yang bisa berubah-ubah (dinamis) sedangkan konstanta sekali dideklarasikan nilainya tidak akan pernah berubah. Variabel bisa tidak diinisialisasi, sedangkan konstanta selalu diinisialisasi dan nilai inisialisasi tersebut tidak akan pernah berubah.
Deklarasi konstanta mirip dengan deklarasi variabel. Tetapi memiliki kata kunci final sebelum tipe datanya. Dan seperti variabel, konstanta juga memiliki aturan dalam penamaannya. Nama konstanta hanya boleh terdiri dari huruf besar dan garis bawah (undescore). Berikut contoh penamaan konstanta yang valid :

final double PI = 3.14;


Deklarasi variable ( Format/ struktur variable)
Deklarasi variabel mengikuti aturan sebagai berikut :
tipeData namaVariabel;
Contoh berikut adalah deklarasi variabel dengan menggunakan tipe data int :
int bilangan1;
int bilangan2;
Kata int adalah tipe data, sedangkan bilangan1 dan bilangan2 adalah nama variabel.
Dalam pendeklarsian variabel kita juga bisa menyatukan dua variabel dalam pendeklarasiannya. Contoh dari dua deklarasi variable di atas bisa diringkas menjadi:
int bilangan1, bilangan2;
Variabel bisa diinisialisasi (diberi nilai awal). Misalnya pada contoh di atas kita melakukan inisialisasi sebagai berikut :
int bilangan1 = 0;
int bilangan2 = 5;
Inisialisasi atau nilai awal dapat diberikan setelah variable dideklarasikan. atau pada saat variable dideklarasikan. Contoh :
int nilai;
int nilai = 10;
Sebuah variabel dapat juga bertukar nilai atau saling memberi dengan variabel lainnya. Contoh :
int nilai1= 10;
int nilai2;
int nilai2=nilai1;
Tanda ; (titik koma) menyatakan satu statement yang utuh (Dalam bahasa manusia ’satu kalimat yang lengkap - berakhir dengan tanda titik’). Untuk mendeklarasikan variabel yang dapat menyimpan nilai tersebut digunakan sintak berikut ini:
[tipe_variabel] [nama_variabel];
Contoh Program
Contoh 1 :
public class latih2
{
public static void main(String args[])
{
String text="Belajar Variabel Java";
int angka1=10;
int angka2=5;
int hasil=0;

System.out.println("Cetak "+text );

hasil=angka1+angka2;
System.out.println("Hasil Penjumlahan "+hasil );

}
}
Pada contoh di atas kita menggunakan dua jenis variabel local yaitu String dan Int .String untuk text dan int untuk angka. sekali lagi perhatikan besar kecilnya huruf.Berikut penjelasan mengenai contoh diatas:
public class latih2
{
latih2 merupakan nama class sekaligus nama file java
public static void main(String args[])
{
String text="Belajar Variabel Java";
int angka1=10;
int angka2=5;
int hasil=0;
list di atas cara mendeklarasikan variable baik text maupun angka
System.out.println("Cetak "+ text );
hasil=angka1+angka2;
System.out.println("Hasil Penjumlahan "+hasil );
Proses perhitungan variabel dan pencetakan ke layar
}
}
Contoh 2 :
public class Contoh {
public static void main(String[] args) {
int a = 5;
double b = 0.8;
String c = “belajar bersama Adie dkk”;
boolean d = false;
// mengeluarkan nilai diatas ke layar
System.out.println(a); //layar tertulis: 5
System.out.println(b); //layar tertulis: 0.8
System.out.println(c); //layar tertulis: belajar bersama Adie dkk
System.out.println(d); //layar tertulis: false
//ganti nilai variabel a
a = 500;
System.out.println(a); // layar tertulis: 500
}
}

E. Pemberian Variabel Dalam Method
Walaupun kita belumdapat membedakan antara perbedaan tipe variabel yang diberikan
(passing) ke method dalam Java. Ada dua tipe data variabel passing pada method, yang
pertama adalah pass-by-value dan yang kedua adalah pass-by-reference.
1.    Pass-by-Value
    Ketika pass-by-values terjadi, method membuat sebuah salinan dari nilai variable yang dikirimkan ke method. Walaupun demikian, method tidak dapat secara langsung memodifikasi nilai variabel pengirimnya meskipun parameter salinannya sudah dimodifikasi nilainya di dalam method.
Contoh :

public class TestPassByValue
{
public static void main( String[] args ){
int i = 10;
//mencetak nilai i
System.out.println( i );
//memanggil method test
//passing i pada method test
test( i );
//Mencetak nilai i
System.out.println( i );
}
Pass i as parameter
which is copied to j
public static void test( int j ){
//merubah nilai parameter j
j = 33;
}
}
Pada contoh diatas, kita memanggil method tes dan melewatkan nilai variabel i sebagai parameter. Nilai pada i disalinkan ke variable j pada method. Pada kondisi ini variabel j adalah merupakan variabel pengganti pada method tes, jika nilai j berubah maka nilai variabel i yang terletak pada main tidak akan ikut berubah walaupun awalnya variabel j merupakan salinan dari variabel i. secara default, semua tipe data primitif ketika dilewatkan pada sebuah method adalah pass-by-value.
2. Pass-by-reference
Ketika sebuah pass-by-reference terjadi, alamat memori dari nilai pada sebuah variable dilewatkan pada saat pemanggilan method. Hal ini berarti bahwa method menyalin alamat memori dari variabel yang dilewatkan pada method. Ini tidak seperti pada pass-by-value, method dapat memodifikasi variabel asli dengan menggunakan alamat memori tersebut, meskipun berbeda nama variabel yang digunakan dalam method dengan variabel aslinya, kedua variabel ini menunjukkan lokasi dari data yang sama.
Contoh :

class TestPassByReference
{
public static void main( String[] args ){
//membuat array integer
int []ages = {10, 11, 12};
//mencetak nilai array
for( int i=0; iSystem.out.println( ages[i] );
}
Pass ages as parameter
which is copied to
variable arr
}
test( ages );
for( int i=0; iSystem.out.println( ages[i] );
}
public static void test( int[] arr ){
//merubah nilai array
for( int i=0; iarr[i] = i + 50;
}
}
}

Lingkup Variabel
Selain nama dan tipe data yang dimiliki oleh variabel, suatu variable juga mempunyai jangkauan. Jangkauan ini menentukan kemampuan program dalam mengakses variable. Jangkauan ini juga menentukan siklus hidup dari suatu variable atau berapa lama variable
itu berada dalam memori. Jangkauan ini ditentukan oleh letak pendeklarasian variabel di dalam program.untuk memudahkan anda mengenai jangkauan variabel, kita bedakan variabel yang terletak di dalam kurawal {.....}. Blok kode yang terdapat di luar kurung kurawal bisa disebut juga dengan blok luar, dan blok kode yang terletak di dalam kurung kurawal disebut dengan blok dalam. Jika kamu mendeklarasikan variabel di blok luar, variabel akan dapat dipakai oleh blok bagian dalam. Lain halnya jika kamu mendeklarasikan variabel di blok dalam, kamu tidak bisa harapkan blok terluar untuk menggunakan variabel tersebut.Jadi dapat disimpulkan, suatu jangkauan variable dapat terletak di dalam blok dimana variabel tersebut sudah di deklarasikan, dimulai dari tempat dimana variable itu di deklarasikan dan di blok-blok bagian dalam.
Sebagai Contoh :

public class ScopeExample
{
public static void main( String[] args ){
int i = 0;
int j = 0;
//... some code here
{
int k = 0;
int m = 0;
int n = 0;
}
}
Contoh lain jika terdapat dua method, yaitu main dan test :

class TestPassByReference
{
public static void main( String[] args ){
//membuat array integer
int []ages = {10, 11, 12};
//mencetak nilai array
for( int i=0; iA }
test( ages );
//mencetak kembali nilai array
for( int i=0; iC System.out.println( ages[i] );
}
}
public static void test( int[] arr ){
//merubah nilai pada array D
for( int i=0; iarr[i] = i + 50;
}
}
}
Pada method main Jangkauan variabel adalah :
ages[ ] - scope A
i in B - scope B
i in C – scope C
Pada method test, Jangkauan variabel adalah :
arr[ ] - scope D
i in E - scope E
Pada saat variabel di deklarasikan, hanya boleh terdapat sebuah variabel dengan identifier/nama dapat di deklarasikan di dalam sebuah jangkauan. Hal ini maksudnya jika kamu mempunyai deklarasi berikut,
{
int test = 10;
int test = 20;}
Compiler akan menghasilkan error karena compiler mendeteksi nama yang lain dari variabel di satu blok, namun compiler tidak akan menghasilkan error jika menumukan dua variabel dengan nama yang sama jika kedua variabel tersebut tidak dideklarasikan pada blok yang sama,

Contoh :
int test = 0;
System.out.print( test );
//..some code here
{
int test = 20;
System.out.print( test );
}
Manakala System.out.print (baris 2) pertama dipanggil, dia mencetak nilai dari variabel test pertama (nilai 0) pada saat variabel terlihat pada jangkauan. Pernyataan System.out.print yang kedua (baris6), nilai 20 dicetak mengambil nilai variabel test terdekat (baris 6) pada jangkauan blok kode tersebut.




OPERATOR

Operators
Dalam Java, ada beberapa tipe operator. Ada operator arithmatika, operator relasi, operator logika, dan operator kondisi. Operator ini mengikuti macam-macam prioritas yang pasti jadi compilernya akan tahu yang mana operator untuk dijalankan lebih dulu dalam kasus beberapa operator yang dipakai bersama-sama dalam satu pernyataan.
Operator    Description    Associativity
::    Scoping operator C++    →
()
[]
.
->
++ --
typeid
dynamic_cast
static_cast
reinterpret_cast
const_cast    Parentheses (grouping)
Brackets (array subscript)
Member selection via object name
Member selection via pointer C and C++
Unary post-increment/decrement
Run-time type information C++
Run-time type-checked cast C++
Compile-time type-checked cast C++
Cast for non-standard conversions C++
Cast away const-ness C++    →
++ --
+ -
! ~
(type)
*
&
sizeof
new
delete
new[] delete[]    Unary pre-increment/decrement
Unary positive/negative sign
Unary logical negation/bitwise complement
Unary cast (change type)
Dereference C and C++
Address C and C++
Determine size in bytes C and C++
Dynamic memory allocation C++ and Java
Dynamic memory deallocation C++
Dynamic array allocation/deallocation C++    ←
.* ->*    Pointer to member via object/pointer C++    →
* / %    Multiplication/division/modulus    →
+ -    Addition/subtraction    →
<< >>
>>>    Bitwise shift left/right
Bitwise shift right with zero extension Java    →
< >
<= >=
instanceof    Relational less/greater than
Relational less/greater than or equal to
Type comparison Java    →
== !=    Relational is equal to/is not equal to    →
&    Bitwise AND    →
^    Bitwise exclusive OR    →
|    Bitwise inclusive OR    →
&&    Logical AND    →
||    Logical OR    →
?:    Ternary conditional    ←
=
+= -=
*= /=
%= &=
^= |=
<<= >>=
>>>=    Assignment
Addition/subtraction assignment
Multiplication/division assignment
Modulus/bitwise AND assignment
Bitwise exclusive/inclusive OR assignment
Bitwise shift left/right assignment
Bitwise unsigned shift right assignment Java    ←
,    Comma (separate expressions)    →













Operator Arithmatika dan fungsi-fungsinya


Berikut ini adalah dasar operator arithmatika yang dapat digunakan untuk membuat suatu program java.

Operator
    Use    Description

+    op1 + op2    Adds op1 and op2

*    op1 *  op2    Multiplies op1 by op2
/    op1 /  op2    Divides op1 by op2
%    op1  % op2    Computes the remainder of dividing op1 by op2
-    op1 - op2    Subtracts op2 from op1







contoh program dalam penggunaan operator-operator ini :

public class aritmatikaDemo
{
public static void main(String[] args)
{
//sedikit angka
int i = 37;
int j = 42;
double x = 27.475;
double y = 7.22;
System.out.println("Variable values...");
System.out.println(" i = " + i);
System.out.println(" j = " + j);
System.out.println(" x = " + x);
System.out.println(" y = " + y); //penjumlahan angka
System.out.println("Adding...");
System.out.println(" i + j = " + (i + j));
System.out.println(" x + y = " + (x + y));
//pengurangan angka
System.out.println("Subtracting...");
System.out.println(" i - j = " + (i - j));
System.out.println(" x - y = " + (x - y));
//perkalian angka
System.out.println("Multiplying...");
System.out.println(" i * j = " + (i * j));
System.out.println(" x * y = " + (x * y));
//pembagian angka
System.out.println("Dividing...");
System.out.println(" i / j = " + (i / j));
System.out.println(" x / y = " + (x / y));
//menghitung hasil modulus dari pembagian
System.out.println("Computing the remainder...");
System.out.println(" i % j = " + (i % j));
System.out.println(" x % y = " + (x % y));
//tipe penggabungan
        System.out.println("Mixing tipes...");

Berikut ini adalah output program :

Variable values...
i = 37
j = 42
x = 27.475
y = 7.22
Adding...
i + j = 79
x + y = 34.695
Subtracting...
i - j = -5
x - y = 20.255
Multiplying...
i * j = 1554
x * y = 198.37
Dividing...
i / j = 0 x /
x * y = 198.37S
Dividing...
i / j = 0
x / y = 3.8054
        Computing the remainder...
        i % j = 37
x % y = 5.815
Mixing tipes...
        j + y = 49.22
        i * x = 1016.58

A. Operator Assignment ( Penugasan )
Operator assignment dalam Java digunakan untuk memberikan sebuah nilai ke sebuah variabel. Operator assignment hanya berupa ‘=’, namun selain itu dalam Java dikenal beberapa shortcut assignment operator yang penting, yang digambarkan dalam tabel berikut :

Operator    Penggunaan    Ekuivalen Dengan

+=    Op1 += Op2    Op1 = Op1 + Op2
-=    Op1 -= Op2    Op1 = Op1 – Op2
*=    Op1 *= Op2    Op1 = Op1 * Op2
/=    Op1 /= Op2    Op1 = Op1 / Op2

%=    Op1 %= Op2    Op1 = Op1 % Op2
&=    Op1 &= Op2    Op1 = Op1 & Op2

¦=    Op1 ¦= Op2    Op1 = Op1 ¦ Op2
^=    Op1 ^= Op2    Op1 = Op1 ^ Op2

<<=    Op1 <<= Op2    Op1 = Op1 << Op2
>>=    Op1 >>= Op2    Op1 = Op1 >> Op2
>>>=    Op1 >>>= Op2    Op1 = Op1 >>> Op2




Contoh : Assignment. java
class Assignment {
  public static void main(String[] args) {
  int var = 10;
  int a,b,c;
  a = b = c = 100;
  int d,e,f;
  f = 200;
  e = f;
  d = e;
System.out.println("Nilai var : " + var);
System.out.println("Nilai a : " + a);
System.out.println("Nilai b : " + b);
System.out.println("Nilai c : " + c);
System.out.println("Nilai f : " + f);
System.out.println("Nilai e : " + e);
System.out.println("Nilai d : " + d);
 int z;
char Teks1 = 'a'; // dalam Unicode karakter 'a' direpresentasikan      dengan
  angka 97
  z = Teks1 * 100; // z = 97 * 10;
System.out.println("Nilai Teks1 : " + Teks1);
System.out.println("Nilai z : " + z);
}
    }



Operator Relasi
Operator relasi dalam Java digunakan untuk menghasilkan nilai boolean yang sering digunakan untuk mengatur alur jalannya sebuah program.

Operator   
Penggunaan   
Deskripsi


>   
Op1 > Op2    Menghasilkan true jika Op1 lebih besar dari Op2


<   
Op1 < Op2    Menghasilkan true jika Op1 lebih kecil dari Op2

>=   
Op1 >= Op2    Menghasilkan true jika Op1 lebih besar atau sama dengan Op2


<=   
Op1 <= Op2    Menghasilkan true jika Op1 lebih kecil atau sama dengan Op2


==   
Op1 == Op2    Menghasilkan true jika Op1 sama dengan Op2


!=   
Op1 != Op2    Menghasilkan true jika Op1 tidak sama dengan Op2


   

Contoh : Relasi. java
class Relasi{
  public static void main(String[] args) {
  int x,y,z;
  x = 100;
  y = 99;
  z = 99;
System.out.println("Nilai x = "+x);
System.out.println("Nilai y = "+y);
System.out.println("Nilai z = "+z);
  // operator sama dengan
  if(y == z ){
System.out.println("y sama dengan z");
}else {
System.out.println("y tidak sama dengan z");
}
  // operator tidak sama dengan
  if(x != y ){
System.out.println("x tidak sama dengan y");
}else {
System.out.println("x sama dengan y");
}
  // operator lebih besar dari
  if(x > y ){
System.out.println("x lebih besar dari y");
}else {
System.out.println("x lebih kecil dari y");
}
  // operator lebih kecil dari
  if(y < x ){
System.out.println("y lebih kecil dari x");
}else {
System.out.println("y lebih besar dari x");
}
  // operator lebih besar dari atau sama dengan
  if(x >= y ){
System.out.println("x lebih besar dari atau sama dengan y");
}else {
System.out.println("x lebih kecil dari atau sama dengany");
}
  // operator lebih kecil dari atau sama dengan
  if(y <= x ){
System.out.println("y lebih kecil dari atau sama dengan x");
}else {
System.out.println("y lebih besar dari atau sama dengan x");
      }
    }
  }



Operator Logical

Operator ini digunakan untuk ekspresi logik yang menghasilkan nilai boolean. Operator-operator yang digunakan adalah AND ( && ), OR ( ¦ ¦ ) dan NOT ( ! ).       

A    B    A ¦¦ B    A && B

True    True    True    True

True    False    True    False
False    True    True    False
False    False    False    False


Contoh : logik. Java
class logik{
  public static void main(String[] args) {
  boolean Benar = true;
  boolean Salah = false;
System.out.println("Hubungan OR (||)");
System.out.println("Benar || Benar : " +(Benar||Benar));
System.out.println("Benar || Salah : " +(Benar||Salah));
System.out.println("Salah || Benar : " +(Salah||Benar));
System.out.println("Salah || Salah : " +(Salah||Salah));
System.out.println("Hubungan AND (&&)");
System.out.println("Benar && Benar : " +(Benar&&Benar));
System.out.println("Benar && Salah : " +(Benar&&Salah));
System.out.println("Salah && Benar : " +(Salah&&Benar));
System.out.println("Salah && Salah : " +(Salah&&Salah));
System.out.println("Hubungan NOT (!)");
System.out.println("Kebalikan (NOT) dari Benar adalah: " +!Benar);
System.out.println("Kebalikan (NOT) dari Salah adalah: " +!Salah);
}
    }



D. Operator Aritmatika
Sama halnya dengan semua bahasa pemrograman, Java menyediakan operator-operator aritmatika untuk manipulasi variabel data numerik.Operator-operator tersebut antara lain:
Operator    Penggunaan                                  Deskripsi
     +    Op1 + Op2    Menambahkan  Op1 dengan Op2
     -    Op1 – Op2    Mengurangkan Op1 dengan Op2
     *    Op1 * Op2    Mengalikan     Op1 dengan Op2
      /    Op1 / Op2    Membagi Op1 dengan Op2
       %    Op1 % Op2    Menghasilkan sisa hasil bagi Op1 dengan Op2

Contoh : Aritmatika. Java

class Aritmatika{
public static void main(String[] args) {
 int a = 20;
 int b = 10;
System.out.println("Penggunaan Operator Aritmatika ");
System.out.println("Nilai awal a adalah : "+a);
System.out.println("Nilai awal b adalah : "+b);
System.out.println("Hasil dari a + b = " +(a + b));
System.out.println("Hasil dari a - b = " +(a - b));
System.out.println("Hasil dari a / b = " +(a / b));
System.out.println("Hasil dari a * b = " +(a * b));
System.out.println("Hasil dari a % b = " +(a % b));




E. Operator Increment dan Decrement
Operator Increment dan Decrement digunakan untuk menaikan atau menurunkan suatu nilai integer (bilangan bulat) sebanyak satu satuan, dan hanya dapat digunakan pada variabel.
Ada dua versi operator increment maupun decrement, yaitu prefix dan postfix. Prefix berarti operator digunakan sebelum variabel atau ekspresi, dan postfix berarti operator digunakan sesudahnya. Penjelasan selengkapnya yaitu:
                     ++              Op++        Op dinaikkan nilainya 1 setelah dilakukan operasi ada Op

                                       ++Op         Op dinaikkan nilainya 1 sebelum dilakukan operasi ada Op


                    --                Op--          Op diturunkan nilainya 1 setelah dilakukan operasi ada Op
      
                                       --Op         Op diturunkan nilainya 1 sebelum dilakukan perasi pada Op



Contoh : Increment Decrement. Java
class IncrementDecrement{
  public static void main (String[] args){
  int i = 1;
System.out.println("i : " + i);
System.out.println("++i : " + ++i);
System.out.println("i++ : " + i++);
System.out.println("i : " + i);
System.out.println("--i : " + --i);
System.out.println("i-- : " + i--);
System.out.println("i : " + i);
}
    }

F. Precedence Operator
Operasi-operasi yang menggunakan operator dapat melibatkan lebih dari 1 operator dan 1 operand. Adapun urutan precedence operator dalam Java, dapat digambarkan dalam tabel berikut :

Postfix operators    [] . (params) expr++ expr--

Unary operators    ++expr --expr +expr -expr ~ !

Creation or cast    New (type)expr
Multiplicative    * / %

Additive    + -

Shift    << >> >>>

Relational    <> <= >= instanceof

Equality    == !=
Bitwise AND    &

Bitwise exclusive OR    ^

Bitwise inclusive OR    ¦

Logical AND    &&

Logical OR    ¦¦

Conditional    ? :
Assignment    = += -= *= /= %= &= ^= ¦= <<= >>= >>>=


G. Operator Bitwise
Operator ini dalam Java digunakan untuk melakukan manipulasi bit.

Operator    Penggunaan    Deskripsi

&    Op1 & Op2    Bitwise AND

¦    Op1 ¦ Op2    Bitwise OR

^    Op1 ^ Op2    Bitwise XOR
~ ~    Op Bitwise    Complement
<<    Op1 << Op2    Menggeser bit Op1 ke kiri sejauh Op2
>>    Op1 >> Op2    Menggeser bit Op1 ke kanan sejauh Op2
>>>    Op1 >>> Op2    Geser kanan tanpa mempertahankan sign (dengan nilai 0 sebagai pengisi bit paling kiri)

1.     Bitwise AND
Bitwise AND akan menghasilkan bit “1”, jika kedua operator bernilai bit “1”. Operasi bitwise AND dapat digambarkan sebagai berikut :
           
Op1    Op2    Op1 & Op2
0    0    0
0    1    0
1    0    0
1    1    1

2. Bitwise OR
    Bitwise OR akan menghasilkan bit “1”, jika salah satu operator bernilai bit “1”. Operasi bitwise OR dapat digambarkan sebagai baerikut :

Op1    Op2    Op1 ¦ Op2
0    0    0
0    1    1
1    0    1
1    1    1

3. Bitwise XOR ( Exclusive OR )
    Bitwise XOR akan menghasilkan bit “1”, jika kedua operator memiliki nilai bit yang berbeda. Operasi bitwise XOR dapat digambarkan sebagai berikut :

Op1    Op2    Op1 ¦ Op2
0    0    0
0    1    1
1    0    1
1    1    0

4. Bitwise Complement
Bitwise Complement akan menghasilkan bit yang berlawanan dengan bit yang
dioperasikan. Operasinya dapat digambarkan sebagai berikut :
   
Op    Op
0    1
1    0


BAB III
STRUKTUR KONTROL
A. Struktur Kontrol Keputusan
Struktur kontrol keputusan adalah statement dari Java yang mengijinkan user untuk memilih dan mengeksekusi blok kode dan mengabaikan blok kode yang lain.
1. Statement if
Statement-if menentukan sebuah statement (atau blok kode) yang akan dieksekusi jika dan hanya jika persyaratan boolean (boolean statement) bernilai true.
Bentuk dari statement if,
if( boolean_expression )
statement;
atau
if( boolean_expression ){
statement1;
statement2;
. . .
}

Gambar 1: Flowchart Statement If
dimana, boolean_expression adalah sebuah persyaratan boolean (boolean statement) atau boolean variabel.
Berikut ini adalah contoh code statement if,
int grade = 68;
if( grade > 60 ) System.out.println("Congratulations!");
atau
int grade = 68;
if( grade > 60 ){
System.out.println("Congratulations!");
System.out.println("You passed!");
}
2. Statement if-else
Statement if-else digunakan apabila kita ingin mengeksekusi sebuah statement dengan kondisi true dan statement yang lain dengan kondisi false.
Bentuk statement if-else,
if( boolean_expression )
statement;
else
statement;
dapat juga ditulis seperti,
if( boolean_expression ){
statement1;
statement2;
. . .
}
else{
statement1;
statement2;
. . .
}
Berikut ini contoh code statement if-else,
int grade = 68;
if( grade > 60 ) System.out.println("Congratulations!");
else System.out.println("Sorry you failed");
atau
int grade = 68;
if( grade > 60 ){
System.out.println("Congratulations!");
System.out.println("You passed!");
}
else{
System.out.println("Sorry you failed");
}

Gambar 2: Flowchart Statement If-Else

B. Struktur Kontrol Perulangan
Struktur kontrol pengulangan adalah statement dari Java dimana kita bisa mengeksekusi blok code berulang-ulang dalam kurun nilai tertentu. Ada tiga macam jenis struktur kontrol pengulangan yaitu while, do-while, dan for-loops.
1. while loop
Statement while loop adalah statement atau blok statement yang diulang-ulang sampai mencapai kondisi yang cocok.
Bentuk statement while,
while( boolean_expression ){
statement1;
statement2;
. . .
}
Statement di dalam while loop akan dieksekusi berulang-ulang selama boolean_expression bernilai true.
Contoh, pada code dibawah ini,
int i = 4;
while ( i > 0 ){
System.out.print(i);
i--;
}
Contoh diatas akan mencetak angka 4321 pada layar. Perlu dicatat jika bagian i--; dihilangkan, akan menghasilkan looping yang tidak berhenti (infinite loop). Sehingga, ketika menggunakan while loop atau bentuk pengulangan yang lain, pastikan Anda memberikan statement yang membuat pengulangan berhenti pada suatu titik.
Berikut ini adalah beberapa contoh while loop,

Contoh 1:
int x = 0;
while (x<10)
{
    System.out.println(x);
            x++;
            }
Contoh 2:
//infinite loop
while(true)

System.out.println(“hello”);

Contoh 3:
//no loops
// statement is not even executed
while (false)
System.out.println(“hello”);

2. Do-while loop
Do-while loop mirip dengan while-loop. Statement di dalam do-while loop akan dieksekusi beberapa kali selama kondisi bernilai true. Perbedaan antara while dan do-while loop adalah dimana statement di dalam do-while loop dieksekusi sedikitnya satu kali.
Bentuk statement do-while,
    do{
        statement1;
        statement2;
. . .
}while( boolean_expression );

Statement di dalam do-while loop akan dieksekusi pertama kali, dan dilakukan pengecekan kondisi dari boolean_expression. Jika nilai tersebut belum mencapai nilai yang diinginkan, statement akan dieksekusi lagi.
Berikut ini beberapa contoh do-while loop:
Contoh 1:

    int x = 0;
    do
{
System.out.println(x);
x++;
}while (x<10);

Contoh ini akan memberikan output 0123456789 pada layar.

Contoh 2:

//infinite loop
do{
System.out.println(“hello”);
} while (true);

Contoh di atas akan melakukan pengulangan yang tidak berhenti untuk menulis “hello” pada layar.
Contoh 3:
        //one loop

    // statement is executed once
    do
        System.out.println(“hello”);
    while (false);
Contoh di atas akan memberikan output hello pada layar.
3. for loop
Seperti pada struktur pengulangan sebelumnya yaitu melakukan pengulangan eksekusi code beberapa kali.
Bentuk dari for loop,
for (InitializationExpression; LoopCondition; StepExpression){
statement1;
statement2;
. . .
}
dimana,
InitializationExpression – inisialisasi dari variabel loop.
LoopCondition - membandingkan variabel loop pada nilai batas.
StepExpression - melakukan update pada variabel loop.
Berikut ini adalah contoh dari for loop,
int i;
for( i = 0; i < 10; i++ ){
System.out.print(i);
}

Pada contoh ini, statement i=0 merupakan inisialisasi dari variabel. Selanjutnya, kondisi i<10 diperiksa. Jika kondisi bernilai true, statement di dalam for loop dieksekusi. Kemudian, statement i++ dieksekusi, dan dilakukan pengecekan kondisi. Kondisi ini akan dilakukan berulang-ulang sampai mencapai nilai yang salah (false).
Contoh tadi, adalah contoh yang sama dari while loop,
int i = 0;
while( i < 10 ){
System.out.print(i);
i++;
}90