PENGANTAR JAVA

Karakteristik Java
Sintaks Java merupakan pengembangan dari bahasa C/C++. Berikut adalah beberapa hal tentang pemrograman Java:
  1. 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.
  2. memiliki garbage collection  yang dapat mendealokasikan memori secara otomatis.
  3. menghilangkan sifat pewarisan berganda yang terdapat pafa C++.
  4. 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.
  5. memiliki array sejati.
  6. mengurangi kerancuan antara pemberian nilai pada statement conditional.

Selain itu Java memiliki karakteristik:
  1. Berorientasi Objek
  2. Robust (Handal)
  3. Portable
  4. Multithreading
  5. Dinamis
  6. Sederhana
  7. Tredistribusi
  8. Aman
  9. Netral secar arsitektur
  10. Interpreter
  11. Berkinerja tinggi
  12. 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
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
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:

Anonim mengatakan...

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

Anonim mengatakan...

apa yang saya cari, terima kasih

Anonim mengatakan...

Nauczylem sie wiele