A. SEJARAH JAVA
Bahasa Java merupakan karya Sun
Microsystem Inc. Bahasa Java secara resmi diperkenalkan oleh Sun
pada dunia tanggal 23 Mei 1995 dan Netscape menjadi perusahaan pertama
yang memperoleh lisensi bahasa Java dari Sun.
Sedangkan, pembangunan Java itu
sendiri sudah dimulai sejak tahun 1991, saat itu “Stealth Project”
mengadakan pertemuan brainstorming yang terdiri dari sekelompok insinyur
Sun dipimpin oleh Patrick Naughton dan James Gosling ingin merancang
bahasa komputer untuk perangkat konsumer. Proyek ini diberi nama “Green”.
Karena orang-orang di proyek Green berbasis C++ maka kebanyakan sintaks diambil
dari C++, serta mengadopsi orientasi objek bukan prosedural.
Pada tahun 1995, Netscape
memutuskan membuat browser yang dilengkapi dengan “Java” diikuti oleh IBM,
Symantec, Insprise, bahkan Microsoft. Setelah itu, gaung “Java”
mulai terdengar dan dengan strategi terbukanya membuat banyak industri melirik
dan menyambutnya. Sebagai bahasa yang menampung hampir seluruh kemampuan
terbaik bahasa pemrograman yang pernah dikembangkan umat manusia, maka bahasa
ini menjadi tidak mudah, sedikit rumit, dan kompleks. Namun demikian, kita
pantas sedikit bersusah agar dapat mampu menguasai salah satu perangkat
terampuh yang pernah dibuat umat manusia.
B. EDISI JAVA
- 1. Java 2 Standard Edition (J2SE)
J2SE menyediakan lingkungan
pengembangan yang kaya fitur, stabil, dan aman. Edisi ini mendukung fitur
konektivitas basis data, rancangan antarmuka pemakai, masukan/keluaran (I/O),
dan pemrograman jaringan (network programming), dan termasuk sebagai
paket-paket dasar bahasa Java.
- 2. Java 2 Enterprise Edition (J2EE)
J2EE menyediakan lingkungan untuk
membangun dan menjalankan multitier enterprise applications. Edisi ini
berisi paket-paket untuk mendukung pengembangan Enterprise JavaBeans (EJB),
Java Servlet, Java Server Pages, XML, dan kendali transaksi yang fleksibel.
- 3. Java 2 Micro Edition (J2ME)
J2ME untuk beragam consumer
electronic product, seperti pager, smart card, cell phone, handheld PDA,
dan set-top box. J2ME menggunakan sekumpulan paket lebih kecil,
berisi subset dari paket-paket di J2SE ditambah paket spesifik Micro
Edition berupa javax.microedition.io.
C. KELEBIHAN
- Sederhana (Simple)
Syntax untuk Java seperti syntax
pada C++ tetapi syntax Java Jika anda mengenal C++ dengan baik, maka anda dapat
berpindah ke syntax Java dengan mudah tetapi jika tidak, anda pasti tidak
berpendapat bahwa Java sederhana.
- Berorientasi Objek (Object Oriented)
Rancangan berorientasi objek
merupakan suatu teknik yang memusatkan rancangan pada data (objek) dan
interface. Fasilitas pemrograman berorientasi objek pada Java pada dasarnya
adalah sama dengan C++, tetapi Java memiliki cara penyelesaian yang lebih baik.
- Terdistribusi (Distributed)
Aplikasi Java dapat membuka dan
mengakses objek untuk segala macam NET lewat URL sama mudahnya seperti yang
biasa dilakukan seorang programmer ketika mengakses file sistem secara lokal.
- Kuat (Robust)
Java dimaksudkan untuk membuat suatu
program yang benar-benar dapat dipercaya dalam berbagai hal. Java banyak
menekankan pada pengecekan awal untuk kemungkinan terjadinya masalah,
pengecekan pada saat run0time dan mengurangi kemungkinan timbulnya kesalahan
(error).
- Aman (Secure)
Java memungkinkan penyusunan program
yang bebas virus, sistem yang bebas dari kerusakan.
- Netral Arsitektur (Architecture Neutral)
Kompiler membangkitkan sebuah format
file dengan objek arsitektur syaraf, program yang di kompile dapat
dijalankan pada banyak prosesor, disini diberikan sistem run time dari Java.
Java dirancang untuk mempermudah penterjemahan pada banyak komputer dengan
mudah dan diterjemahkan pada komputer asal pada saat run-time.
- Portabel (Portable)
Librari atau pustaka merupakan
bagian dari sistem yang mendefinisikan interface yang portabel.
- Interpreter
Interpreter Java dapat meng-eksekusi
kode byte Java secara langsung pada komputer-komputer yang memiliki
interpreter.
- Kinerja Yang Tinggi (High Performance)
Meskipun kinerja kode byte yang di
interpretasi biasanya lebih dari memadai, tetapi masih terdapat situasi yang
memerlukan kinerja yang lebih tinggi.
10. Multithreaded
Multithreading adalah kemampuan
sebuah program untuk melakukan lebih dari satu pekerjaan sekaligus. Keuntungan
dari multithreading adalah sifat respons yang interaktif dan real-time.
11. Dinamis
Java dirancang untuk beradaptasi
dengan lingkungan yang terus berkembang. Librari dapat dengan mudah menambah
metode dan variabel contoh yang baru tanpa banyak mempengaruhi klien.
DASAR-DASAR
JAVA
A. KOMENTAR
Komentar digunakan untuk memberikan
penjelasan atau informasi kepada pembaca program.
- // … (berlaku untuk satu baris)
- /* … */ (berlaku untuk beberapa/banyak baris)
B. KATA KUNCI (KEYWORDS)
Keyword adalah kata kunci spesial
dalam Java yang tidak dapat digunakan untuk mengidentifikasi sebuah nama dari
class, method, dan variabel.
C. PENGENAL (IDENTIFIER)
Pengenal (identifier) adalah
nama yang diciptakan oleh pemrogram dan digunakan di dalam program untuk
memberi nama kelas/variabel pada program. Aturan pemberian nama pengenal pada
Java adalah sebagai berikut :
- Karakter pertama berupa huruf, tanda garis bawah ( _ ), atau tanda dolar ($).
- Karakter kedua dan seterusnya dapat berupa sembarang huruf atau angka.
- Panjang pengenal bebas (bisa berapa saja).
- Case sensitiv (huruf kapital dan huruf kecil dibedakan).
Contoh : $_99
_nama
D. LITERAL
Besaran konstanta pada Java
dihasilkan dengan menggunakan literal yang mewakilinya. Setiap literal
merepresentasikan nilai suatu tipe, dimana tipe itu sendiri menjelaskan
bagaimana sifat nilai tersebut dan bagaimana penyimpanannya.
E. VARIABEL
Variabel menyatakan suatu lokasi di
dalam memori komputer yang digunakan untuk menyimpan suatu nilai dan nilai yang
ada di dalamnya bisa diubah.
Mendeklarasikan variabel :
Di dalam pendeklarasian, nama
variabel dan tipe yang dikandung disebutkan. Bentuk pendeklarasian variabel :
tipe namaVar;
Contoh : int jumlahBarang;
Memberikan nilai terhadap variabel :
Setelah variabel di deklarasikan,
variabel dapat diberi nilai. Caranya adalah dengan menggunakan operator =.
variabel = nilai;
- F. KONSTANTA
Java memungkinkan pendefinisian
konstanta melalui kata kunci final. Contoh :
final double PI = 3.14;
Menyatakan bahwa PI adalah konstanta
bertipe double dengan nilai 3,14. Kata kunci final menyatakan
bahwa PI tak dapat diubah setelah didefinisikan.
G. TIPE DATA
- 1. Integer
Tipe
|
Ukuran
|
Jangkauan (inclusive)
|
int
|
4 byte
|
- 2.147.483.648 sampai
2.147.483.647 (hanya lebih dari 2 miliar)
|
short
|
2 byte
|
- 32.768 sampai 32.767
|
long
|
8 byte
|
- 9.223.372.036.854.775.808L
sampai 9.223.372.036.854.775.807L
|
byte
|
1 byte
|
- 128 sampai 12
7
|
- 2. Floating point
Tipe
|
Ukuran
|
Jangkauan
|
float
|
4 byte
|
secara kasar 3,40282347E+38F
( 7 digit desimal signifikan)
|
double
|
8 byte
|
secara kasar ±
1,79769313486231570E+308 (15 digit desimal siignifikan)
|
- 3. Char
Tipe untuk menyatakan sebuah
karakter (yang tercakup dalam himpunan kode Unicode).
- 4. Boolean
Tipe data boolean digunakan
untuk menangani keadaan logika atau keadaan dengan dua kemungkinan nilai. Nilai
yang dapat digunakan adalah true (benar) dan false (salah).
H. OPERATOR
Operator adalah simbol/karakter
khusus yang digunakan dalam suau ekspresi untuk menghasilkan suatu nilai.
- 1. Arithmetic Operator
Operator
|
Operation
|
+
|
Addition
|
-
|
Subtraction
|
*
|
Multiplication
|
/
|
Division
|
%
|
Modulo
|
- 2. Bitwise Operator
Operator
|
Operation
|
&
|
AND
|
|
|
OR
|
^
|
XOR
|
>>
|
Shift Kanan
|
<<
|
Shift Kiri
|
>>>
|
Shift Kanan isi dengan nol
|
- 3. Unary Operator
Operator
|
Operation
|
~
|
Unary NOT
|
-
|
Minus
|
++
|
Increment
|
–
|
Decrement
|
- 4. Relational Operator
Operator
|
Operation
|
==
|
Equal To
|
!=
|
Not Equal To
|
>
|
Greater Than
|
<
|
Less Than
|
>=
|
Greater or Equal To
|
<=
|
Less or Equal To
|
- 5. Logical Operator
Operator
|
Operation
|
!
|
Short-circuit NOT
|
&&
|
Short-circuit AND
|
||
|
Short-circuit OR
|
?:
|
Operator ternary if-then-else
|
- I. STREAM
Stream berhubungan dengan proses
untuk membaca data dari suatu sumber atau mengirimkan data ke suatu tujuam.
Pada saat program Java dijalankan, terdapat tiga buah stream standard
yang dengan sendirinya disediakan Java, yaitu System.in untuk menangani
pembacaan dari keyboard, System.out untuk mengirimkan keluaran ke layar,
danSystem.err untuk mengirimkan kesalahan (standard error).
- 1. Kelas InputStream
Merupakan kelas abstrak yang menjadi
dasar bagi semua kelas yang berhubungan dengan pembacaan data dari suatu
sumber. Turunan dari kelas ini antara lain FileInputStream,
FilterInputStream,dan StringBufferInputStream. Metode-metode pada
kelas InputStream :
Bentuk Metode
|
Keterangan
|
int available()
|
Menghasilkan jumlah data yang
telah tersedia untuk dibaca
|
void close()
|
Untuk menutup stream
|
int read()
|
Untuk membaca sebuah byte data
|
int read(byte[] buffer
|
Untuk membaca sejumlah byte data
|
int read(byte[] buffer, int
offset, int jumlah)
|
Untuk membaca sejumlah byte data
dimulai pd posisi tertentu
|
void reset
|
Meletakkan posisi yang telah
ditandai oleh mark()
|
long skip(long n)
|
Melompati sejumlah n byte
|
- 2. Kelas OutputStream
Merupakan kelas abstrak yang menjadi
dasar untuk semua stream keluaran. Turunan dari kelas ini yaitu ByteArrayOutputStream,
FileOutputStream, FilterOutputStream, dan PipedOutputStream.
Metode-metode pada kelas OutputStream :
Bentuk Metode
|
Keterangan
|
void clear()
|
Menutup stream keluaran
|
void flush()
|
Memaksa penulisan byte-byte
keluaran yang ada dalam penyangga (buffer) ke stream keluaran
|
void write(int b)
|
Menuliskan byte b ke stream
keluaran
|
void write(byte[] buffer)
|
Menuliskan isi buffer ke
stream keluaran
|
void write(byte[] buffer,
int offset, int n)
|
Menuliskan isi buffer
sebanyak, n buah dimulai dari posisi offset
|
- 3. Kelas ByteArrayOutputStream
Merupakan kelas yang digunakan untuk
mengirimkan keluaran ke suatu array dengan elemen bertipe byte. Metode dari
kelas ini :
Bentuk Metode
|
Keterangan
|
toString()
|
memperoleh string yang berkelas
String
|
toByteArray()
|
mengubah stream ke array byte
|
size()
|
menghasilkan jumlah byte yang
dapat ditampung dalam penyangga
|
writeTo()
|
menuliskan isi penyangga keluaran
ke suatu stream keluaran yang menjadi argument metode ini.
|
- 4. Kelas ByteArrayInputStream
Kelas ini menciptakan stream masukan
dari suatu penyangga (array byte). Konstruktor yang umum dipakai melibatkan
argument array dengan elemen bertipe byte.
- 5. Kelas FileOutputStream
Berfungsi untuk menuliskan keluaran
ke suatu berkas. Konstruktor kelas ini melibatkan argument yang menyatakan
berkas yang akan diciptakan.
FileOutputStream berkasKeluaran =
New FileOutputStream(“tes123.txt”);
Akan membuat berkas tes123.txt
diciptakan dan dibuka. Dengan menggunakan metode write(), data dapat
dituliskan ke berkas. Untuk menutup dengan metode close().
- 6. Kelas FileInputStream
Digunakan untuk membaca data dari
suatu berkas. Metode yang penting yaitu :
- read() untuk membaca data
- close() untuk menutup berkas
- available() untuk memperoleh jumlah data yang bias dibaca.
- J. PAKET DAN IMPORT
Sejumlah kelas yang terkait pada
Java biasa dikelompokkan dalam sebuah unit yang disebut paket (package).
Kelebihan dari paket adalah memungkinkan penentu akses bawaan (tanpa penyebutan
private, public, atau protected) pada variable dan metode
sehingga variable atau metode tersebut dapat diakses oleh semua kelas yang
terletak dalam satu paket.
Contoh : package kelasku;
Pernyataan import merupakan
mekanisme dalam program untuk mengakses kelas yang terdapat dalam suatu paket.
Import namaPaket.namaBerkas;
Contoh : import java.util.Date;
Contoh diatas memberitahukan bahwa
akan menggunakan kelas bernama Date yang berada dalam paket java.util.
CONTROL
FLOW
A. PERCABANGAN
- 1. Pernyataan If
Pernyataan if merupakan salah
satu bentuk pernyataan berkondisi yang berguna untuk pengambilan keputusan
terhadap dua buah kemungkinan.
if (kondisi) {
//blok pernyataan yang dijalankan
kalau kondisi bernilai benar
} else {
//blok pernyataan yang dijalankan
kalau kondisi bernilai salah
}
Suatu pernyataan if bisa
berada dalam pernyataan if. Pernyataan if seperti ini disebut if
bersarang (nested if).
- 2. Pernyataan Switch
Perintah switch memungkinkan untuk
melakukan sejumlah tindakan berbeda terhadap sejumlah kemungkinan nilai.
switch (ekspresi) {
case nilai1 :
pernyataan1;
break;
case nilai2 :
pernyataan2;
break;
default: pernyataanN;
}
Pernyataan break digunakan
untuk mengakhiri eksekusi switch. Namun adakalanya break justru
tidak diberikan pada bagian case tertentu. Tujuannya adalah agar
eksekusi dilanjutkan ke pernyataan yang ada di bawahnya.
B. PERULANGAN (LOOPING)
Looping artinya mengulangi eksekusi
blok program tertentu sampai tercapai kondisi untuk menghentikannya.
- 1. Pernyataan while
Penggunaan pernyataan while akan
dijalankan secara terus menerus selama pernyataan bernilai benar.
while (kondisi) {
//blok pernyataan
}
- 2. Pernyataan do-while
Penggunaan pernyataan do –while akan
dijalankan sekurang-kurangnya 1 kali walaupun pernyataan bernilai salah.
do{
//blok pernyataan
} while(kondisi);
- 3. Pernyataan for
Pernyataan for adalah cara praktis
untuk menyatakan suatu perulangan.
for(inisialisasi;kondisi;penaikan/penurunan) {
//blok pernyataan
}
Inisialisasi : untuk memberikan nilai pada variabel yang digunakan
mengontrol pengulangan.
Kondisi : untuk mengontrol pengulangan dilanjutkan/diakhiri.
Penaikan/penurunan : untuk menaikkan/menurunkan nilai variabel pengontrol
pengulangan.
Penyataan continue digunakan
untuk menghentikan iterasi yang bersangkutan tetapi program akan menjalankan
sisa perulangan sampai dengan selesai.
C. CONTOH PROGRAM
Contoh berikut akan memperjelas
pemahaman terhadap pernyataan for.
public class PernyataanFor {
public static void main(String[]
args) {
For(int bil=1; bil<13; bil++)
System.out.println(bil);
}
}
Keterangan :
- Int bil = 1 digunakan untuk mendeklarasikan bil dan memberikan nilai 1 ke variabel tersebut.
- Bil < 13 digunakan untuk menguji apakah nilai bil < 13. Kalau ya, bagian pernyataan akan dijalankan dan kemudian bagian bil++ akan dieksekusi dan pengujian dilakukan kembali. Kalau tidak, maka for berakhir.
- Bil++ digunakan untuk menaikkan nilai bil sebesar 1.
OBJECT
DAN CLASS
A. OBJECT
Objek dibuat mula-mula membuat
variabel yang kelak merujuk ke objek. Variabel seperti ini biasa disebut variabel
objek. Selanjutnya objek diciptakan melalui new dan hasilnya
ditugaskan ke variabel objek.
Contoh :
Date waktuSekarang;
WaktuSekarang = new Date();
Variabel waktuSekarang merujuk ke
objek yang berisi tanggal dan jam saat pernyataan WaktuSekarang = new Date();
dijalankan.
B. CLASS
Kelas pada Java didefinisikan dengan
menggunakan kata kunci class.
Contoh :
class Mobil {
String warna;
Int tahunProduksi;
}
Pada contoh di atas kelas yang
dibuat bernama Mobil. Dalam hal ini warna dan tahunProduksi disebut variabel
instan/field.
Sebuah kelas umumnya tersusun atas
variabel instan dan metode untuk objek. Metode adalah fungsi/subprogram yang
melekat pada sebuah objek/instan kelas.
Variabel kelas adalah variabel yang berlaku tidak terbatas hanya pada
objek tetapi pada seluruh objek. Variabel ini didefinisikan dengan menggunakan
kata kunci static.
C. KATA KUNCI THIS
Kata kunci this digunakan
pada pembuatan kelas dan digunakan untuk menyatakan objek sekarang. Contoh :
void isiData(String warna, int
tahunProduksi) {
this.warna = warnaMobil;
this.tahunProduksi = tahunProduksi;
}
D. PENENTU AKSES : PRIVATE DAN
PUBLIC
Pada pemrograman yang berorientasi
objek, akses terhadap suatu variabel instan di luar kelas biasanya tidak
diperkenankan. Sebagai penggantinya, disediakan metode yang diperlukan untuk
mengakses variabel instan.
Berkaitan dengan boleh tidaknya
suatu variabel instan diakses dari luar kelas, Java menyediakan penentu akses.
- Public berarti bahwa pengaksesan suatu variabel instan atau metode dapat dilakukan dari luar kelas.
- Private berarti bahwa pengaksesan suatu variabel instan atau metode hanya dapat dilakukan di dalam kelas, tidak bisa diakses dari luar kelas.
Perbedaan public, private, dan tanpa
penentu akses pada variabel.
Penentu Akses
|
Keterangan
|
Tanpa penentu akses
|
Variabel dapat diakses oleh kelas
yang berada dalam paket yang sama.
|
Public
|
Variabel dapat diakses pada semua
kelas yang menggunakan kelas yang berisi variabel tersebut.
|
Private
|
Hanya dapat diakses oleh
metode-metode dalam kelas itu sendiri
|
Perbedaan public, private, dan tanpa
penentu akses pada variabel.
Penentu Akses
|
Keterangan
|
Tanpa penentu akses
|
Metode hanya dapat diakses oleh
metode dalam kelas itu sendiri ataupun metode pada kelas lain yang terletak
pada paket yang sama.
|
Public
|
Metode dapat diakses oleh
sembarang kelas.
|
Private
|
Hanya dapat diakses oleh
metode-metode dalam kelas yang sama.
|
E. KONSTRUKTOR
Konstruktor adalah metode yang dapat
digunakan untuk memberikan nilai awal saat objek diciptakan. Metode ini akan
dipanggil secara otomatis oleh Java ketika new dipakai untuk menciptakan
instan kelas.
Sifat konstruktor :
- Namanya sama dengan nama kelas.
- Tidak memiliki nilai balik (termasuk tidak boleh ada kata kunci void).
Contoh :
public Mobil(String warna, int
tahunProduksi) {
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
- F. OVERLOADING TERHADAP KONSTRUKTOR
Overloading terhadap konstruktor merupakan
suatu mekanisme pembuatan konstruktor yang memiliki bentuk lebih dari satu.
Dalam hal ini pembeda antara satu konstruktor yang lain berupa jumlah
parameter.
Contoh : new
Mobil(“Merah”, 2008)
ARRAY
Array pada Java adalah objek yang
dapat digunakan untuk menyimpan sejumlah data. Elemen yang disimpan dapat
berupa tipe primitif (misalnya int) ataupun instan kelas (objek).
Langkah menciptakan array :
- Mendeklarasikan variable untuk menuju ke array (selanjutnya disebut variable array).
- Menciptakan objek array dan menugaskannya ke variable yang dideklarasikan pada langkah pertama.
Mendeklarasikan variable array :
Tipe namaVariabelArray[];
atau
namaKelas namaVariabelArray[];
contoh : string[] kota;
int[] nilai;
Penciptaan objek array dan penugasan
objek ke variable array dilakukan dengan menggunakan kata kunci new.
namaKelas namaVariabel=new
namaKelas[jumlahElemen];
tipe namaVariabel=new
tipe[jumlahElemen];
contoh : kota=new String[5];
Objek array dengan elemen berkelas String
sebanyak 5 dialokasikan/disiapkan di dalam memori computer dan objek ini
dirujuk oleh variable kota.
Elemen array dapat diakses melalui
notasi :
namaVariabelArray[subskrip];
Subskrip berupa nomor elemen. Dalam
hal ini elemen pertama memiliki subskrip berupa nol, elemen kedua mempunyai
subskrip 1 dan seterusnya.
Contoh : kota[0]=”Jakarta”;
Akan membuat elemen pertama
(subskrip 0) array yang dirujuk kota diisi dengan string “Jakarta”.
Jumlah elemen array dapat diketahui
dengan menggunakan variable instan length miliki objek array.
Java mendukung array multidimensi
melalui pendekatan “array dari array”.
Contoh : int[][] piksel=new int
[5][3];
Contoh Program :
public class ContohArray {
public static void main(String[]
args) {
String[] kota=(“Jakarta”,”Bandung”,”Semarang”,”Medan”,”Jogja”);
//menampilkan elemen array
for(int i=0;i
System.out.println(kota[i]);
}
}
PEWARISAN
Pewarisan merupakan konsep dalam
pemrograman berorientasi objek yang memungkinkan untuk membuat suatu kelas
dengan didasarkan pada kelas yang sudah ada sehingga mewarisi semua metode dan
variabelnya.
Untuk memudahkan pemahaman terhadap
cara mewariskan kelas, buatlah kelas seperti berikut :
class Alpha {
private int a=5;
public void info() {
System.out.println(“a= “ + a);
System.out.println(“Dipanggil pada “
+ this.getClass().getName());
}
}
Kelas Alpha memiliki sebuah variable
instan yaitu a dan sebuah metode yaitu info(). Perlu diketahui,
this.getClass().getName() merupakan ekspresi untuk memperoleh nama kelas.
Berdasarkan kelas Alpha bias dibuat
kelas baru, katakanlah bernama Bravo. Kelas turunan ini secara prinsip
dapat dibuat dengan menggunakan bentuk :
Class KelasTurunan extends KelasDasar {
//tubuh kelas
}
KelasTurunan menyatakan kelas
turunan yang akan dibuat berdasarkan sebuah kelas dasar.
KelasDasar yang terletak sesudah
kata kunci extends menyatakan superkelas.
Class Bravo extends Alpha {
Private int b=7;
Public static void main(String[]
args) {
Bravo obj=new Bravo();
Obj.info();
}
}
Kelas Bravo merupakan kelas turunan
dari superkelas Alpha dan memiliki variable instan tambahan berupa b. di
dalam main() dideklarasikan variable obj yang merujuk ke objek
berkelas Bravo. Mengingat kelas Bravo juga memiliki metode info().
A. PENENTU AKSES PROTECTED DAN FINAL
- 1. Protected
Protected berarti untuk
mengatur agar suatu variable instan ataupun metode yang terdapat pada sebuah
kelas dapat diakses pada kelas itu sendiri dan pada subkelas.
- 2. Final
Final dapat diterapkan pada variable instan atau pada metode.
- Pada variable instan, final akan membuat variable menjadi suatu konstanta.
Contoh : final public double
PI=3.14;
- Pada metode, final akan membuat kelas tak dapat ditimpa (di-override) pada subkelas.
Contoh : final void info()
B. ABSTRACT
Metode abstrak adalah metode yang
belum mempunyai implementasi. Kita dapat menyatakan suatu metode abstrak dengan
membubuhkan kata kunci abstrak pada deklarasi method tersebut.
Contoh :
public abstract class Kendaraan {
protected String nama;
public abstract void jalankan();
}
Kendaraan merupakan kelas abstrak.
Di dalam kelas ini dideklarasikan sebuah metode abstrak bernama jalankan().
Metode ini disebut metode abstrak karena dideklarasikan dengan menggunakan kata
kunci abstract. Perhatikan pula tak ada tubuh metode pada metode abstrak
ini, karena pendefinisian metode tersebut harus dilakukan pada subkelas.
STRING
DAN STRINGBUFFER
A. KELAS STRING
String adalah kelas yang menangani
deretan karakter.
- 1. Ukuran String
String helloJava=”J2SE”;
helloJava.lenght();
- 2. Mendapatkan kembali String
String helloJava=”J2SE”;
For(int
i=0;i
System.out.print(helloJava.charAt(i));
}
- 3. Substring
String msg=”Hello Java2”;
System.out.println(msg.substring(2,8));
System.out.println(msg.substring(3));
- 4. Konversi String
- toLowerCase() : seluruh huruf berupa huruf kecil.
Contoh :
System.out.println(msg.toLowerCase());
- toUpperCase() : seluruh huruf berupa huruf capital.
Contoh :
System.out.println(msg.toUpperCase());
- trim() : menghilangkan seluruh spasi ataupun karakter control yang terletak di awal dan di akhir string ini.
Contoh :
System.out.println(msg.trim() + ”for beginner”);
- replace(oldChar,newChar) : berisi string dengan semua karakter yang sesuai dengan argumen pertama diganti dengan argumen kedua.
Contoh :
System.out.println(msg.replace(‘e’,’a’));
- 5. Pencarian Karakter
- indexOf(int ch) : menghasilkan nilai bertipe int yang menyatakan posisi pertama untuk karakter yang nilainya ch pada string ini. Jika tidak ditemukan, nilai balik berupa -1.
- indexOf(int ch, int fromIndex) : menghasilkan nilai bertipe int yang menyatakan posisi pertama untuk karakter yang nilainya ch pada string ini dimulai dari posisi index. Jika tidak ditemukan, nilai balik berupa -1.
- indexOf(String str) : menghasilkan nilai bertipe int yang menyatakan posisi pertama untuk substring str pada string ini. Jika tidak ditemukan, nilai balik berupa -1.
Contoh :
System.out.println(msg.indexOf(‘I”));
- indexOf(String str, int fromIndex) : menghasilkan nilai bertipe int yang menyatakan posisi pertama untuk substring pada string ini dimulai dari posisi index. Jika tidak ditemukan, nilai balik berupa -1.
Contoh :
System.out.println(msg.indexOf(‘a’,5));
B. STRINGBUFFER
StringBuffer adalah kelas yang
memungkinkan penambahan atau penyisipan teks. Itulah sebabnya, kelas ini
memiliki metode bernama append() yang digunakan untuk menambahkan string
di bagian akhir.
Contoh :
StringBuffer buff = new
StringBuffer();
buff.append(“Hello”);
buff.append(‘ ‘);
buff.append(“J2SE”);
System.out.println(buff);
- 1. Modifikasi StringBuffer
- delete()
buff.delete(0,5);
System.out.println(buff);
- replace()
buff.replace(0,5,”Welcome”);
System.out.println(buff);
- reverse()
buff.reverse();
System.out.println(buff);
- 2. Manipulasi StringBuffer
- toString() : menghasilkan string yang terdapat pada StringBuffer.
Contoh :
System.out.println(buff.toString());
- capacity() :menghasilkan kapasitas stringbuffer.
Contoh :
System.out.println(buff.capacity());
- length(int newLength) : jumlah karakter dalam StringBuffer.
Contoh : System.out.println(buff.length());
- setLength(int newLength) : mengubah panjang string menjadi n karakter.
Contoh : buff.setLength(7);
- charAt() : menghasilkan karakter pada posisi indeks.
Contoh :
System.out.println(buff.charAt(7));
POLYMORPHISM,
INTERFACES, DAN EXCEPTION HANDLING
A. POLYMORPHISM
Polymorphism didefinisikan sebagai kemampuan beberapa objek bertipe sama
bereaksi secara berbeda terhadap message yang sama. Polymorphism berarti
mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic
bila objek-objek itu mempunyai antarmuka identik namun mempunyai perilaku
berbeda. Polymorphism merupakan satu nama tunggal (deklarasi fungsi) dan
dapat menyatakan objek kelas-kelas berbeda yang terhubung dengan superkelas
yang sama diantara kelas-kelas itu.
Contoh :
Animal animal;
animal = new Dog(“Mamalia”);
animal.soundOfAnimal();
animal = new Snake(“Reptil”);
animal.soundOfAnimal();
Animal animal = new Dog(“Mamalia”);
animal.soundOfAnimal();
Disetiap iterasi pada loop diatas,
pada dasarnya kita mengirimakan pesan yang sama ke objek-objek yang bertipe
sama (animal). Walaupun begitu, ternyata masing-masing bereaksi dengan caranya
sendiri-sendiri.
B. INTERFACES
Interface merupakan kumpulan method tanpa implementasi actual.
Interface adalah kelas abstrak yang berarti tidak diimplementasikan. Sepenuhnya
tidak diimplementasikan berarti tidak ada method di kelas itu yang telah
diimplementasikan, juga data anggota interface dapat dipastikan variable
final static yang berarti konstanta murni.
Manfaat interface :
- Menyediakan sarana untuk mendefinisikan protocol kelas tanpa rincian implementasinya.
- Pengembangan kelas dapat dilakukan tanpa khawatir mengenai komunikasi kelas.
Contoh :
interface A {
//secara default, variable berikut
adalah public, satatic, & final meski tidak dinyatakan.
String str = “JAVA”;
public void setNama(String nama);
public void setAlamat(String
alamat);
public void setTelepon(String
telepon);
}
Java hanya memperbolehkan single
inheritance (pewarisan tunggal untuk kelas yang diwariskan akan tetapi
mengizinkan multiple inheritance (pewarisan jamak) dengan
mengimplementasikan lebih dari satu interface.
public class SubClass extends
SuperClass
implements InterfaceA, InterfaceB,
…, InterfaceN {
…
}
Sebuah interface dapat mawarisi
interface lainnya dengan menggunakan kata kunci extends.
public interface TestInterface
extends InterfaceA, InterfaceB, …,
InterfaceN {
…
}
C. EXCEPTION HANDLING
Kesalahan pada umumnya ditangani
sewaktu program dikompilasi. Namun tidak semua kesalahan dapat terdeteksi,
kesalahan yang seringkali terjadi sewaktu program dijalankan. Untuk menangani
kesalahan sewaktu program dieksekusi, Java menyediakan exception handling/penanganan
eksepsi.
Kata kunci exception :
- try : program yang hendak dimonitor untuk exceptionnya dimuat di blok try. Jika exception terjadi di dalam blok try, exception tersbut dilemparkan.
try {
//Blok yang akan ditangkap sekiranya
terjadi eksepsi.
}
catch (parameter) {
//Blok yang akan dijalankan kalau
terjadi eksepsi
}
- catch : kode dapat menangkap exception menggunakan catch dan menangani dengan suatu cara yang rasional.
- throw : exception yang dibangkitkan system secara otomatis dilempar oleh system Java. Untuk exception yang dilempar secara manual maka menggunakan throw.
throw variabelObjek;
- throws : memberitahukan bahwa suatu metode ada kemungkinan menghasilkan suatu eksepsi.
public tipe1 NamaMetode(tipe2 x,
tipe3 y) throws JenisEksepsi {
….
}
- finally : sembarang kode yang secara absolute harus dieksekusi sebelum metode keluar diletakkan di blok finally.
try {
//Blok yang akan ditangkap sekiranya
terjadi eksepsi.
}
finally {
//Blok yang akan dijalankan terakhir
kali.
}
Bagian finally akan
dijalankan, tak tergantung apakah bagian blok try mengalami eksepsi
ataupun tidak.
APPLET
DAN SWING
A. APPLET
Applet merupakan program Java yang
ditujukan secara khusus agar bias berjalan di lingkungan web browser. Applet
adalah subkelas dari panel yang terletak pada paket java.applet. itulah
sebabnya hal-hal yang bias diletakkan dalam panel juga bias diletakkan dalam
applet. Sebagai program yang ditujukan berjalan pada web browser, applet
dilengkapi dengan fitur untuk berkomunikasi dengan host server dan
bahkan berkomunikasi antar applet. Nemun, applet dirancang untuk tidak
melakukan operasi penulisan ke computer klien karena alas an keamanan.
Metode pada Applet :
Metode
|
Keterangan
|
init()
|
Dijalankan ketika applet mulai
dimuat dan hanya berlangsung sekali saja. Hal ini bias dimanfaatkan untuk
melakukan tindakan seperti meletakkan komponen ke panel, mengatur warna, atau
membuka koneksi database.
|
start()
|
Dipanggil setelah kejadian
inisialisasi atau setiap kali pemakai berpindah dari suatu aplikasi/halaman
web lain menuju ke halaman yang mengandung applet.
|
paint()
|
Metode yg dipanggil berkali-kali
untuk memperbaharui tampilan.
|
repaint()
|
Metode yg digunakan untuk memaksa
agar paint() dipanggil.
|
Daftar atribut pada
tag
Atribut
|
Keterangan
|
Align
|
Menentukan mode penataan applet
dalam halaman web. (LEFT, RIGHT, TOP, TEXTTOP, MIDDLE, ABSMIDDLE, BASELINE,
BOTTOM, atau ABSBOTTOM)
|
Hspace
|
Menentukan jumlah spasi(piksel),
antar applet dan teks yang terletak di kiri atau kanan
|
Vspace
|
Menentukan jumlah spasi(piksel),
antar applet dan teks di atas atau bawah
|
Code
|
Menentukan nama berkas .class.
|
codebase
|
Menentukan letak direktori dari
berkas .class
|
Alt
|
Menentukan teks yang akan
ditampilkan sekiranya web browser mengenali tag
|
Name
|
Memberikan nama terhadap applet.
Nama ini dipakai untuk mendukung komunikasi antar applet
|
Height
|
Menentukan tinggi tampilan applet
|
Width
|
Menentukan lebar tampilan applet
|
Kelas Applet :
public class MyFirstApplet extends
java.applet.Applet {
…
public MyFirstApplet() {…} //default
konstruktor
public void init() {…}
public void start() {…}
public void stop() {…}
//other method
}
Passing parameter untuk Applet :
B. SWING
Swing merupakan alternative lain
untuk mengimplementasikan pemrograman window. Walaupun diimplementasikan
berdasarkan kelas AWT, swing tidak menggunakan komponen yang terdapat pada AWT,
sehingga tampilan komponen dalam swing tidak bergantung pada system window
local.
- 1. Color
Using java.awt.color
Syntax : Color color = new
Color(r,g,b);
- 2. Font
Font font = new Font(name, style,
size);
- 3. JFrame : sebuah container dimana semua komponen GUI bisa ditempatkan.
public static void main(String[]
args) {
JFrame frame = new JFrame(“Test
Frame”);
frame.setSize(400,300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
- 4. JPanel : panel bertindak sebagai suatu container kecil untuk mengelompokkan sesuai dengan komponen user interface. Contoh :
JPanel p = new JPanel();
p.add(new JButton(“My Button”);
- 5. JLabel : komponen yang biasa digunakan untuk menampilkan teks yang pendek. Komponen ini bisa digunakan untuk menampilkan ikon. Metode pada JLabel :
Metode
|
Keterangan
|
getText()
|
Untuk memperoleh teks pada label
|
setText()
|
Untuk mengubah teks pada label
|
SetIcon(Icon gambar)
|
Untuk mengubah gambar pada ikon
|
JLabel label = new JLabel(text);
- 6. JButton : membuat objek tombol yang dapat dilengkapi dengan judul tombol maupun ikon.
Contoh kode sederhaan JButton
:
…
content.add(new JButton(“Icon”));
ImageIcon icon = new
ImageIcon(“icon.jpg”);
content.add(new JButton(icon));
content.add(new
JButton(“Icon”,icon));
JButton lastButton = new
JButton(“Icon”,icon);
lastButton.setHorizontalTextPosition(SwingConstants.LEFT);
content.add(lastButton);
…
- 7. JOptionPane
- JOptionPane.showMessageDialog
- JOptionPane.showConfirmDialog
- JOptionPane.showInputDialog
- JOptionPane.showOptionDialog
- 8. JTextField : kelas yang berguna untuk menciptakan objek yang ditujukan untuk memasukkan data satu baris. Daftar konstruktor pada JTextField :
Konstruktor
|
Keterangan
|
JTextField()
|
Membuat objek JTextField
dengan nilai awal sama string kosong
|
JTextField(String teks)
|
Membuat objek JTextField
dengan nilai awal sama string teks
|
JTextField(String teks, int
kolom)
|
Membuat objek JTextField
dengan nilai awal sama string teks dan jumlah kolom sebanyak kolom
|
- 9. JTextArea : kelas yang memungkinkan menyajikan teks yang terdiri dari beberapa baris.
Konstruktor
|
Keterangan
|
TextArea(String teks, int baris,
int kolom)
|
Membuat objek JTextArea
dengan nilai awal sama string teks dan jumlah kolom sebanyak kolom serta
baris sebanyak baris
|
TextArea(int baris, int kolom)
|
Membuat objek JTextArea
dengan nilai awal berupa string kosong dan jumlah kolom sebanyak kolom serta
baris sebanyak baris
|
10. JCheckBox : komponen yang biasa digunakan untuk memilih salah satu
pilihan di antara dua
Konstruktor
|
Keterangan
|
JCheckBox(String teks)
|
Label berupa teks dan nilai
keadaan kotak cek diisi dengan false
|
JChecjBox(String teks,
Boolean keadaan)
|
Label berupa teks dan nilai
keadaan kotak cek diisi dengan nilai pada keadaan
|
JCheckBox(String teks, Icon
ikon, Boolean keadaan)
|
Label berupa teks, dilengkapi dengan
ikon dan nilai keadaan kotak cek diisi dengan nilai pada keadaan.
|
JCheckBox(String teks, Icon
ikon, Boolean keadaan)
|
Label berupa teks, dilengkapi
dengan ikon dan nilai keadaan kotak cek diisi dengan nilai false
|
11. JList : komponen yang memungkinan pemakai memilih salah satu dari
sejumlah pilihan.
JList(object[] daftarData);
Pada bentuk di atas, argument berupa
array objek apa saja. Adapun bentuk yang lain melibatkan argument
berkelas Vector.
12. JComboBox
JComboBox(Object[] daftarItem)
Dalam hal ini, argumennya berupa array
objek apa saja.
13. JMenu & JMenuItem : kelas untuk membuat batang menu yang biasa diletakkan di
bagian atas jendela dan bersifat pull-down. Prinsip untuk membuat menu :
- Membuat objek JMenuBar.
- Mengaitkan objek JMenuBar tersebut ke jendela melalui metode setJMenuBar().
- Menciptakan sejumlah objek JMenu yang akan dijadikan sebagai menu dalam menu batang.
- Mengaitkan objek JMenu ke objek JMenuBar melalui metode add().
- Membuat sejumlah item menu melalui pembuatan objek JMenuItem untuk tiap menu.
- Mengaitkan item-item menu ke objek JMenu.
14. JTabel : komponen yang berguna untuk menampilkan data dalam bentuk
table (terdiri atas baris dan kolom).
15. Look and Free : mekanisme yang memungkinkan tampilan komponen berbentuk
seperti pada tampilan motif.
public static void
setNativeLookAndFeel() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
System.out.println(e);
}
}
16. ExitListener
EXIT_ON_CLOSE adalah ya tetapi tidak
cukup bagus untuk menutup/keluar dari window.
Contoh :
import java.awt.*;
import java.awt.event.*;
public class ExitListener extends
WindowAdapter {
public void
windowClosing(WindowEvent event) {
System.exit(0);
}
}
KONEKSI
KE DATABASE
Koneksi ke database pada Java
ditangani oleh JDBC (Java Database Conectivity). JDBC merupakan salah
satu API (Application Programming Interface) Java yang secara khusus
ditujukan untuk menangani koneksi ke database. Antarmuka ini memungkinkan
pemrogram menulis sebuah program yang dapat digunakan untuk mengakses database
yang berbeda, misalnya Oracle, Access, atau MySQL.
Koneksi Menggunakan MySQL
Sebelum menggunakan JDBC, maka yang
perlu dibuat adalah :
- Membuat database dengan nama db_pegawai.
- Membuat table pegawai dengan field-field sebagai berikut :
- kode varchar(10) Primary not null
- nama varchar(50)
- alamat varchar(50)
- gaji Double
- Menambah/mengisi data
- Melihat data
- Menghapus data
Langkah Menggunakan JDBC :
- Meload Driver
try {
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
} catch
(ClassNotFoundException e) {
e.printStackTrace();
}
- Mendefinisikan koneksi URL
String dbURL =
“jdbc:mysql://localhost/db_pegawai”;
String dbUser = “root”;
String dbPass = “ “;
- Menetapkan koneksi
conn =
DriverManager.getConnection(dbURL,dbUser,dbPass);
- Membuat statement
Statement st =
conn.createStatement();
- Menjalankan sebuah query
ResultSet rs =
st.executeQuery(query);
- Memproses hasil
String kode = rs.getString(1);
String nama = rs.getString(2);
String alamat = rs.getString(3);
String gaji = rs.getString(4);
- Menutup koneksi
st.close();
conn.close();
Sumber : Internet