Karakteristik Java
Sintaks Java merupakan pengembangan dari bahasa C/C++. Berikut adalah beberapa hal tentang pemrograman Java:
- Bersifat protable dan platform independent. Program Java yang telah ditulis akan dapat dieksekusi di mesin apapun dan sistem operasi apapun tanpa harus mengubah sedikitpun dari program tersebut.
- memiliki garbage collection yang dapat mendealokasikan memori secara otomatis.
- menghilangkan sifat pewarisan berganda yang terdapat pafa C++.
- Mengurangi pointer aritmetika. Pengaksesan lokasi memori secara langsung dengan menggunakan pointer memungkinakn program untuk melakukan suatu tindakan yang tidak seharusnya atau tidak boleh dilakukan. Untuk mengurangi kemungkinan kesalahan seperti ini penggunaan pointer pada Java telah dibatasi dengan menggunakan reference.
- memiliki array sejati.
- mengurangi kerancuan antara pemberian nilai pada statement conditional.
Selain itu Java memiliki karakteristik:
- Berorientasi Objek
- Robust (Handal)
- Portable
- Multithreading
- Dinamis
- Sederhana
- Tredistribusi
- Aman
- Netral secar arsitektur
- Interpreter
- Berkinerja tinggi
- free / bebas licence
Pemrograman Berorientasi Objek (PBO)
Pemrograman Berorientasi Objek dimulai pertama kali dengan bahasa Semula yang dikembangkan di Scandinavia di pertengahan tahun 60-an. Simula utamanya digunakan untuk pemrograman simulasi, dimana adalah alamiah untuk memodelkan suatu entitas eksternal / diluar sistem perangkat lunak dan untuk memilih istilah-istilah untuk entitas-entitas tersebut dan tingkah lakunya. Simula memiliki sintak yang mirip dengan Pascal, tetapi programmer berfikir sedikit lebih berbeda ketika merancang suatu program yang akan dibuat dengan Simula. Sebuah ide dasar yang diperkenalkan dalam Simula adalah inheritance (pewarisan). Dalam Simula juga sudah dikenal objek (entitas) yang ada dalam sistem yang dimodelkan. Ada beberapa objek yang dikumpulkan kemudian disebut ”Class”, dan tugas utama dari seorang perancang program dengan Simula adalah menentukan behaviour dari class tersebut.
Elemen sebuah Objek: atribute dan behaviour
Setiap objek selalu memiliki atribute dan behaviour yang dapat mengubah atribut tersebut. Sebagai contoh manusia memiliki atribut: umur, tinggi, berat dan sebagainya. Demikian pula manusia memiliki behaviour: menua, meninggi, makan (menambah berat badan) dan sebagainya. Behaviour juga dapat tidak mengubah sama sekali state dari objek tersebut, baik secara langsung maupun tidak langsung. Secara sederhana state bisa dianggap sebagai suatu kata benda karena sifatnya yang pasif, benda tersebut tidak melakukan operasi tetapi justru menjadi target atau bahan operasi. Demikian pul behaviour bisa dianggap sebagai kata kerja, karena ia berfungsi untuk menujukkan operasi apa yang dilakukan.
Konsep Pemrograman Berorientasi Objek
Ciri PBO adalah :
1. Enkapsulasi
Enkapsulasi adalah suatu mekanisme untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem sekaligus menyederhanakan penggunaan system itu sendiri. Akses ke internal sistem diatur sedemikian rupa melalui seperangkat interface. Contoh kasus sepeda motor tadi, pada sistem pemindahan gigi transmisi, maka pengendara tidak perlu tahu detail dari bagaimana proses pemindahan gigi itu dilakukan oleh mesin, cukup tahu bagaimana menekan gigi transmisi itu. Pedal gigi transmisi yang diinjak pengendara itu merupakan interface (antar muka) pengendara dengan sistem transmisi sepeda motor.
Dalam bahasa Java segala sesuatu adalah objek (everything is object). Setiap baris program yang ditulis programmer adalah merupakan bagian dari sebuah objek. Programmer juga dapat membangun sebuah objek yang disusun oleh objek-objek kecil, dimana masing-masing objek yang menyusunnya memiliki fungsi sendiri-sendiri.
2. Pewarisan (Inheritance)
Sebagai manusia kita sebenarnya terbiasa untuk melihat objek yang berada disekitar kita tersusun secara hierarki berdasarkan class-nya masing-masing. Dari sini kemudian timbul suatu konsep tentang pewarisan yang merupakan suatu proses dimana suatu class diturunkan dari class lainnya sehingga ia mendapatkkan cirri atau sifat dari class tersebut. Perhatikan contoh hirarki berikut ini:
Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan semakin bersifat spesifik. Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian halnya juga Anjing, kucing dan Monyet memiliki seluruh sifat yang diturunkan dari class mamalia. Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan didefinisikan dalam class binatang saja. Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik dari class binatang secara otomatis. Demikian juga dengan class anjing, kucing dan monyet, hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing-masing. Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu mendefinisikan karakteristik yang lebih umum akan didapatkan dari class darimana ia diturunkan.
3. Polymorphism
Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk. Dalam PBO, konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi.
Aturan Dasar Java
Aturan Dasar dari penggunaan sintaks bahasa JAVA
- JAVA bersifat case-sensitive
- Secara umum JAVA mengabaikan spasi kosong
(karakter yang tidak muncul pada layar, mis kosong, tab, baris baru)
- Brace { } adalah simbol pengelompokkan dalam JAVA yang enandai awal dan akhir bagian suatu program.
- Setiap pernyataan JAVA diakhiri dengan simbol ;
- Simbol // membuat sebuah baris komentar Simbol /* … */ membatasi bagian awal dan akhir suatu komentar
- Komentar javadoc khusus digunakan untuk men-generate dokumentasi HTML untukprogram Java Anda. Anda dapat menciptakan komentar javadoc dengan memulai baris dengan /** dan mengakhirinya dengan */.
- JAVA memiliki beberapa kata yang dicadangkan dan tidak bisa digunakan dalam ekspresi biasa. Kata-kata tersebut disebut keyword.
- Kelas pertama dalam sebuah program JAVA (disebut kelas pengendali) harus memiliki nama yang sama dengan file di mana ia disimpan.
Contoh program :
// menampilkan sebaris text dengan multiple statement
class salam2 {
public static void main(String[] args) {
System.out.print(“Selamat datang”);
System.out.println(“ di JAVA programming”);
}}
// menampilkan beberapa baris dengan sebaris statement
class salam3 {
public static void main(String[] args) {
System.out.println(“Selamat datang\n di JAVA programming”);
}
}
Identifier merupakan nama yang digunakan untuk menamai class, interface, variable dan method. Programmer dapat menentukan sendiri identifier yang akan digunakan. Hanya yang perlu diperhatikan adalah:
- tidak ada batasan panjang, jadi identifier dapat dibuat dengan panjang karakter yang tidak terbatas.
- Identifier harus diawali dengan huruf, underscore / garis bawah ( _ ) atau lambang dollar ($). Untuk selebihnya dapat digunakan karakter apapun, kecuali karakter yang digunakan sebagai operator oleh Java (*, +, -, /).
- Bukan merupakan keyword yang telah dikenal oleh Java.
Reserved Word / keywords
Ini merupakan kata-kata yang telah dikenal oleh Java dengan memiliki arti khusus dalam program. Berikut ini adalah daftar kata-kata tersebut.
Table 1 Daftar Kata (Keyword) yang dikenal dalam Java
abstract
|
boolean
|
break
|
byte
|
case
|
catch
|
char
|
Class
|
const
|
Continue
|
default
|
do
|
Double
|
else
|
Extends
|
false
|
final
|
finally
|
float
|
For
|
goto
|
if
|
Implements
|
import
|
Instanceof
|
int
|
interface
|
long
|
native
|
New
|
null
|
package
|
Private
|
protected
|
Public
|
return
|
short
|
Static
|
strictfp
|
Super
|
switch
|
synchronized
|
this
|
throw
|
Throws
|
transient
|
true
|
Try
|
void
|
Volatile
|
while
|
Tipe Data
1. Tipe data Primitif
TYPE STORAGE KETERANGAN
boolean true / false true atau false
char 2 bytes 0 … 65535
byte 1 byte 28 … 127
short 2 bytes - 32.768 … 32.767
int 4 bytes -2.147.483.468 … 2.147.483.647
long 8 bytes ± 9.233.372.036.854.755.808
float 4 bytes ± 3,40282347E+38F
double 8 bytes ± 1,79763913486231570E+308
2. Tipe data composite
Merupakan tipe data yang dibentuk dari tipe data primitive seperti Array dan String.
Berikut adalah beberapa contoh tipe data:
Contoh
|
Tipe Data
|
178
|
Int
|
8864L
|
Long
|
37.266
|
Double
|
37.266D
|
Double
|
87.363F
|
Float
|
26.77e3
|
Double
|
' c '
|
Char
|
True
|
Boolean
|
False
|
Boolean
|
Karakter Escape (Escape Sequence )
\n Newline
\t Horizontal tab
\r Carriage return
\t tabulasi
\f form feed
\? Tanda tanya
\\ Backslash
\” Double quote mis: System.out.println(“\”Halo\””);
Variabel
Ada 3 jenis variabel, yaitu :
1. variabel instance (objek) adalah variabel yang digunakan untuk mendefnisikan atribut dari objek tertentu dan dideklarasikan di luar definisi method.
2. variabel kelas adalah variabel yang bersifat global terhadap kelas dan terhadap instance kelas. Untuk mendeklarasikan variabel kelas digunakan kata kunci static.
Cont : static int jumlah
static final int jumlah = 12; // untuk konstanta./
3. Variabel local adalah variabel yang dideklarasikan dan dipakai dalam definisi method.
Sintaks pendeklarasian variabel secara umum adalah sebagai berikut:
Tipe_data nama_variable [ = value ] ;
Contoh :
int hitung ;
int hitung = 7 , b = 8;
Catatan:
1. Tipe data pada JAVA, tidak tergantung pada mesin komputer.
2. Character selalu diapit oleh tanda petik tunggal → ‘H’
3. “H” → suatu string yang berisi sebuah karakter
Konversi Tipe Numerik
- Jika salah satu operand bertipe double, operand yang lain akan diubah menjadi double pula.
- Jika salah satu operand bertipe float, operand yang lain akan diubah menjadi float pula.
- Jika salah satu operand bertipe long, operand yang lain akan diubah menjadi long pula.
Perubahan : byte → short → int → long → float → double
Sama halnya dengan int , short dan byte
Type casting adalah istilah dimana suatu data dipaksa menjadi tipe data lain.
Contoh : int x = 9;
int y = 4;
int z = x/y;
Maka nilai z = 2.0 maka z diganti : double z = (double) x/y; maka z = 2.25;
Constant (Konstanta)
- final
final int PANJANG_SEGIEMPAT = 30;
- biasanya ditulis dengan huruf besar semua
- class constant ditulis dengan static final
class Contoh
{
public static final double G = 9.81;
public static void main (String[] args)
{
System.out.println(G + “meter per detik”);
}}
Operator
1. Assigment Operator
Operator Assigment digunakan untuk memberikan nilai ke suatu variabel. Operator yang digunakan adalah opertor ’=’
Contoh : A = 5; (memberi nilai 5 ke dalam variabel A)
B = B * 5 ; (membei nilai B*5 ke dalam vaiabel B)
A = B = 5 ; (memberi nilai 5 ke dala var A dan B)
2. Operator Aritmatika
Operator
|
Jenjang
|
* (perkalian)
/ (pembagian)
% (modulo)
+ (tambah)
– (pengurangan)
|
3
3
3
4
4
|
Contoh 1:
int x, y ; float z;
x = 7; y = 3;
z = x/y ;
ket : x dan y bertipe int, maka hasil 7 / 3 didapatkan nilai int juga, yaitu 2 yang disimpan dalam var z, walaupun z bertipe float. Output jika z dicetak dengan perintah System.out.print(”Z = ”+Z) adalah Z = 2.000000.
3. Operator Unary
Merupakan operator yang hanya menggunkan sebuah operand saja. Operator Unary memiliki jenjang ke-2
Operator
|
Arti
|
-
+ +
--
(tipe)
sizeof
!
~
&
*
|
Unary minus
Increamen dengan penambahan 1
Decreamen dengan pengurangan 1
Cast
Ukuran dari operan dalam byte
Unary NOT
Komplemen satu (Bitwise NOT)
Operator pointer
Operator pointer
|
a. Unary Minus
Contoh : A = -B jika B = 5 maka A bernilai -5
A = B + -C * D sama artinya A = B+ (-C) * D
b. Operator Increament (+ +) dan Decreament (--)
a++; sama artinya a = a+1
a--; sama artinya a = a-1
a--; sama artinya a = a-1
Contoh :
1. X = 5; sama artinya X = X + 1
A = ++X ; A = X
Hasil X = 6 A = 6
2. X = 5; sama artinya A = X
A = X++; B = X + 1
Hasil X = 6 A = 5
c. Type casting Operator (tipe)
Operator ini digunakan untuk menconvesi tipe data yang sudah dibeikan ke tipe data yang lain.
Contoh :
int i;
float f = 3.14;
i = (int) f; /*hasilnya i = 3 karena nilai f int*/
Pada contoh1. Z = X/Y menghasilkan tipe int meskipun z bertipe float. Untuk itu gunakan operator Tipe untuk menghasilkan tipe float.
Z = (float) X/Y;
Maka hasilnya Z = 2.333333 bukan lagi 2.000000
4. Operator Logika
Operator ini digunakan untuk membandingkan dua buah nilai logika. Nilai logika adalah nilai benar (1) atau salah (0).
Operator Arti Jenjang
! Logika NOT 2
&& Logika DAN (AND) 11
|| Logika ATAU (OR) 12
Tabel Hubungan Logika
X
|
Y
|
X&&Y
|
X | | Y
|
! X
|
0
0
1
1
|
0
1
0
1
|
0
0
0
1
|
0
1
1
1
|
1
1
0
0
|
7. Operator Relasi (hubungan)
Digunakan untuk menunjukkan hubunga antara 2 operand. Menghasilkan nilai boolean true (1) atau false (0).
Operator : jenjang ke-6 : < , <=, >, >=
jenjang ke-7 : = =, ! =
Contoh : int A = 5, B = 7;
System.out.print(A + ”<”+B+”hasilnya adalah = ”+ A
Hasil : 5 < 7 hasilnya adalah True
8. Condisional Operator (? : )
Disebut operator ternary.
Bentuk : Kondisi ? pernyataan1 : pernyataan2
Jika kondisi bernilai benar (true) maka akan menghasilkan pernyataan1 dan jika salah (false) akan menghasilkan penyataan2.
Contoh :
1. 7= = 5 ? 4 : 3 hasilnya adalah 3
2. bil 1 = 5 ; bil 2 = 10; bil3 = 15;
c = bil1 < bil2 && bil2 > bil3 ? bil1 : (bil 1 < bil3 ? bil3 : bil2);
hasilnya c =
9. Bitwise Operator
Digunakan untuk memanipulasi bit-bit nilai data di memori.
Operator
|
Arti
|
Jenjang
|
<<
>>
&
^
|
|
Pergeseran bit ke kiri (shift left)
Pergeseran bit ke kanan (shift right)
Bitwise AND
Bitwise XOR
Bitwise OR
|
5
5
8
9
10
|
Contoh :
int x = 0x2d, y = 0x1b, z = 25;
int A,B;
A = x & y;
B = Z>>2;
System.out.println(“Nilai A = ”+ A); System.out.println (“ Nilai B = “ + B);
System.out.println (x +” ^”+y+” hasilnya = + ( x ^ y));
printf(“\n%d << 2 hasilnya = %d”, z, z << 2);
Hasil : Nilai A =
Nilai B =
45 ^ 27 hasilnya =
25 << 2 hasilnya =
Cara : Ubah semua ke dalam bilangan biner dan perhatikan panjang bit setiap tipe data. Mis int 16 bit.
10. Coumpound Assigment Operator.
Operator : jenjang ke-14 : += , - = , * = , / = , %=
Jenjang ke-15 : >>= , <<= , | = , ^ = , &=
Contoh ;
I + = 3 sama dengan I = I + 3
I / = 2 sama dengan I = I / 2
I &= 2 sama dengan I = I & 2
ALIR KONTROL
Seperti bahasa pemrograman lain, JAVA memiliki alir kontrol yang ditentukan dengan statement seleksi dan perulangan (looping). Suatu blok atau sekumpulan statement ditandai dengan sepasang kurung { }. Blok dapat bersarang dalam blok yang lain. Suatu variabel yang didefinisikan dalam suatu blok bersifat lokal.
Penyeleksian Kondisi
1. statement if
a. Bentuk sederhana
BU : if (kondisi) statemen ;
Contoh :
¨ Tanpa Blok statemen
if(jumlah > 2) Tunjangan = 0.3;
¨ Dengan blok statement :
if(jumlah>2) {
Tunjangan = 0.3;
Potongan = 0.07; }
Ket : Jika kondisi benar makan akan di beri nilai tunjangan dan potongan.
b. Bentuk if-else
BU : if (kondisi) statement;
else statement;
Jika kondisi yang diseleksi bernilai benar maka statemen yang mengikutinya akan diproses dan bila kondisi bernilai salah maka statemen setelah else yang akan diproses.
c. Bentuk if-else-if…else
BU : if (kondisi1)
Statement;
else if (kondisi2)
statement;
………
else
statement;
Contoh :
int menu = 2;
if (menu = = 1)
Sytem.out.println(“menu anda nasi goreng”);
else if (menu = = 2)
Sytem.out.println (“menu anda nasi uduk”);
else
Sytem.out.println (“tidak ada menu”);
Out : menu anda nasi uduk
d. Bentuk if bersarang (Nested if)
BU : if (kondisi1)
if (kondisi2)
…..
if (kondisi n)
statement;
else
statement;
…..
else
statement;
else statement;
Contoh :
if(Nilai >= 80)
if(Nilai = = 80) {
Sytem.out.println (“Nilai Anda”+Nilai);
Sytem.out.println (“Nilai Anda cukup”); }
else {
Sytem.out.println (“Nilai Anda”+Nilai);
Sytem.out.println (“Nilai Anda memuaskan”); }
else {
printf(“Nilai Anda “+Nilai);
printf(“Nilai Anda kurang”); }
Jika Nilai = 85 maka output : Nilai anda 85
Nilai anda memuaskan
e. Bentuk if kondisi jamak
Kondisi jamak berhubungan dengan operator logika AND(&&), OR(||), atau NOT(!) untuk menyeleksi beberapa kondisi sekaligus.
Contoh :
if(A>5 || B< 3 && C= = ‘Y’)
Sytem.out.println (“kondisi benar”);
else
Sytem.out.println (“kondisi salah”);
Jika diberi nilai A=4, B = 5, C = ‘Y’ maka
hasilnya : kondisi salah
2. Statement switch…case
Bentuk : switch(kondisi) {
case konstanta1:
Statement-statement;
break;
case konstanta2:
Statement-statement;
break;
………………
default:
statement-statement; }
Statement switch akan menyeleksi kondisi yang diberikan dan kemudian membandingkan hasilnya dengan konstanta-konstanta yang berda pada case. Jika hasil dari kondisi sama dengan konstanta yang ada di case maka statementstatement yang ada di case akan diproses sampai ditemui statemen break untuk keluar dari penyeleksian switch. Jika semua konstanta tersebut tidak ada yang sama maka statement yang berada pada default akan dijalankan.
Contoh :
class Switch {
public static void main( String args[] ) {
int nilai = 2 ;
switch (nilai) {
case 1: printf(“satu”); break;
case 2: printf(“dua”); break;
default: printf(”tidak ada”); break; }
}
Out : dua
PERULANGAN
Indeterminate loops
1. while (condition) { block }
2. do {
…..Statement….
} while (ekspresi) ;
Kontrol perulangan while lebih diperuntukkan pada control perulangan yang didasarkan pada kondisi yang benar. Bisa jadi, tidak ada inisialisasi nilai awal. Bentuk perintah do … while mirip dengan while, hanya perintah yang berada dalam blok perulangan paling tidak akan dikerjakan satu kali
Determinate loops
for (Inisialisasi; terminasi; increment)
{
…..Statement…. }
Statement merupakan inisialisasi, dimungkinkan untuk menginisialisasi lebih dari satu variabel, masing-masing dipisahkan dengan koma.
Contoh :
public class CommaOperator {
public static void main (String[ ] args) {
for (int i=1,j=1;i<5; i++ , j = i * 2) {
System.out.println(“i = “+ i +“ j = “+ j);
}}
}
out : i = 1 j = 2
i = 2 j = 4
i = 3 j = 6
i = 4 j = 8
a. Statemen Continue
Menyebabkan proses perulangan ke awal mulainya perulangan dengan mengabaikan statement-statement berikutnya setelah continue. Dapat digunakn untuk perulangan for, while dan do-while.
Contoh :
class Continue {
public static void main( String args[]) {
int I, N; N = 2;
for(I = 1; I<5 ; I++) {
N= N * 2 ;
if (N>16) continue;
N = N + 1 ; }
System.out.print (“Nilai N adalah ” + N); }
}
Output : Nilai N adalah 44
Penjelasan : I N = N*2 N=N+1
1 N = 4 N = 5
2 N = 10 N = 11
3 N = 22
kondisi N>16 terpenuhi maka N = N+1 tidak dijalankan, program melanjutkan looping.
4 N= 44
b. Statemen Break
Selain digunakan pada pernyataan switch, berak juga digunakan pada pernyataan for, le dan do-while. Kegunaanya untuk memaksa keluar dari pernytaan-pernyataan itu.
Contoh:
class Break {
public static void main( String args[]) {
int I, N; N = 2;
for(I = 1; I<5 ; I++) {
N= N * 2 ;
if (N>16) break;
N = N + 1 ; }
System.out.print (“Nilai N adalah ” + N); }
}
Output : Nilai N adalah 22
Penjelasan : I N = N*2 N=N+1
1 N = 4 N = 5
2 N = 10 N = 11
3 N = 22
kondisi N>16 terpenuhi maka looping dihentikan. Program keluar dari proses looping karena terdapat break,
3 Bacotan:
I love reading your site because you can constantly bring us new and cool stuff, I think that I ought to at least say thanks for your hard work.
- Henry
apa yang saya cari, terima kasih
Nauczylem sie wiele
Posting Komentar