Modul Pemrograman Java
Modul Pemrograman Java
PEMROGRAMAN JAVA
JAVA
PENGANTAR
i
ii
ketergantungan terhadap sistem operasi, sehingga apapun jenis sistem operasi yang di-
gunakan kita masih bisa menjalankan program java tanpa harus mengganti kode program
java-nya. Arsitektur dari JAVA Environment bisa dilihat pada Gambar 1.1.
Java Platform
Java platform merupakan nama plaform komputer yang diberikan oleh oracle yang
bisa membantu para pengguna dalam mengembangkan dan menjalankan aplikasi yang
berbasis java. selain itu java platform juga menyediakan berbagai perlengkapan yang
memberikan kemudahan bagi para programmer dalam membuat program sehingga pe-
kerjaan merekan menjadi lebih efisien.
Komponen java platform
Tools Praktikum
1. Java SDK 7 (http://www.oracle.com/technetwork/java/javase/downloads/jdk7-
downloads-1880260.html)
4. DIA (http://sourceforge.net/projects/dia-installer/)
Daftar Isi
1 Pengenalan Java 1
iii
DAFTAR ISI iv
4.3.1 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4 Private Modifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4.1 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5 Constructor 23
5.1 Default constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.1.1 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2 Parameterized constructor . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2.1 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3 Overloading constructor . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3.1 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6 Inheritance / Pewarisan 27
6.1 Tipe inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.2 Single inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.3 Multilevel Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.4 Hierarchical inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.4.1 Overriding Method . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.5 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
7 Encapsulation / Enkapsulasi 33
7.1 Private modifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.2 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
8 Polymorphism 36
8.1 Runtime Polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . . 37
8.2 Tugas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
9 Abstract Class 40
9.1 Objek abstract class . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.2 Method abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
9.3 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
9.4 Tugas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
10 Interface 44
10.1 Mendeklarasikan Interface . . . . . . . . . . . . . . . . . . . . . . . . . 44
10.2 Implementasi Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
10.2.1 Percobaan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
10.3 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
DAFTAR ISI v
11 Nested Class 48
11.1 Inner Class (Non-Static Nested Class) . . . . . . . . . . . . . . . . . . . 49
11.1.1 Mengakses Private Member/Variabel . . . . . . . . . . . . . . . 50
11.2 Static Nested Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11.3 Latihan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
12 Java Swing 53
12.1 Komponen Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
12.2 Setting Up Top-Level Containers . . . . . . . . . . . . . . . . . . . . . 54
BAB 1
Pengenalan Java
1
BAB 1. PENGENALAN JAVA 2
platform dimana program-program lain yang akan dijalankan harus menggunakan fitur
dari java itu sendiri. Java memiliki arsitektur yang tidak memiliki dependencies atau
ketergantungan terhadap sistem operasi, sehingga apapun jenis sistem operasi yang di-
gunakan kita masih bisa menjalankan program java tanpa harus mengganti kode program
java-nya. Arsitektur dari JAVA Environment bisa dilihat pada Gambar 1.1.
Java Platform
Java platform merupakan nama plaform komputer yang diberikan oleh oracle yang
bisa membantu para pengguna dalam mengembangkan dan menjalankan aplikasi yang
berbasis java. selain itu java platform juga menyediakan berbagai perlengkapan yang
memberikan kemudahan bagi para programmer dalam membuat program sehingga pe-
kerjaan merekan menjadi lebih efisien.
Komponen java platform
Untuk melakukan pengecekan apakah komputer yang kita gunakan sudah memiliki
java platform atau belum, kita bisa mengetikkan kata java pada command prompt dan
tekan enter. Jika JDK sudah terinstal maka tampilan command prompt akan seperti
berikut
BAB 1. PENGENALAN JAVA 3
C:\Users\Dell>java
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-server to select the "server" VM
The default VM is server.
Salah satu komponen dari JRE yang paling penting adalah Java Virtual Machine
(JVM). JVM berfungsi sebagai interpreter yang mentransformasikan byte-code menjadi
seperti native kode bagi sistem operasi. Byte-code merupakan file hasil kompilasi dari
file .java yang berekstensi .class, dimana file .class ini akan bisa terkompilasi disemua
sistem operasi sehingga programmer tidak perlu menulis ulang kode program pada sis-
tem operasi yang berbeda. untuk melakukan kompilasi kode program java, kita perlu
membuka command prompt dan ketikkan perintah
javac namaprogram.java
Setelah kode java terkompilasi maka akan muncul satu file byte-code yang nama
filenya sama dengan nama file kode programmnya yaitu Program.class yang letaknya
berada pada folder yang sama dengan program java-nya.
Contoh kode java Ketikkan kode program di bawah ini dan simpan dengan nama
Program.java. Catatan : Nama file java harus sama dengan nama kelas yang ada di
kode program.
1 package modul.praktikum.pbo;
2
3 public class Program {
4 public static void main(String[] args) {
5 System.out.println("Assalamualaikum");
Hello World
6 }
7 }
Kompile kode java yang sudah anda tulis dengan cara seperti gambar di bawah ini.
Jika kompilasi berhasil maka tampilan command prompt akan seperti gambar di atas
dimana command prompt tidak menampilkan adanya error. Untuk memastikan apakan
BAB 1. PENGENALAN JAVA 4
file byte-code sudah tercipta atau belum kita bisa melakukan pengencekan pada folder
dimana file java disimpan. Buka command prompt dan ketikkan perintah dir atau buka
melalui windows explorer untuk melihat file.class.
Pada gambar di atas terlihat bahwa file yang bernama Program.class berada pada lo-
kasi folder yang sama, yang berarti proses kompilasi program berhasil. File Program.class
inilah yang nantinya bisa dijalankan diberbagai jenis sistem operasi tanpa perlu meng-
ubah atau menulis ulang kode Program.java. Proses kompilasi dari byte code menjadi
program yang bisa dilihat hasilnya melibatkan JVM interpreter.
2.1.1 CLASS
Class adalah cetak biru ( blueprint ) dari objek. Dengan kata lain, suatu objek dapat
dibuat/diturunkan dari suatu model rancangan yang disebut dengan class. Berdasarkan
definisi ini, maka suatu class cukup dibuat hanya satu buah saja dan dari class tersebut
dapat dibuat/diciptakan beberapa objek (puluhan atau bahkan ratusan) yang memiliki
sifat yang sama.
Jadi sebuah kelas bisa kita analogikan seperti cetakan roti, dari cetakan roti tersebut
kita bisa membuat berbagai jenis roti yang beraneka rasa dan warna.
5
BAB 2. CLASS DAN OBJECT 6
2.1.2 Objek
Objek merupakan representasi nyata dari sebuah kelas, yang bisa kita artikan sebagai
contoh nyata dari kelas. Kita tidak bisa membuat objek kalau tidak ada kelas yang bisa
dijadikan sebagai panduan, sehingga kelas harus diciptakan terlebih dahulu sebelum suatu
objek dibuat . Untuk membuat ”objek” roti dari kelas roti di atas, kita harus membuat
cetakan roti terlebih dahulu dan kita hanya memerlukan satu cetakan roti saja. Bentuk
umum dari sebuah roti biasanya memiliki warna, rasa, harga dan berat, sehingg semua
roti yang kita buat pasti akan memiliki karakter yang sama. Di dalam pemrograman
berorientasi objek, bentuk, ukuran dan berat disebut sebagai properti atau field. Setiap
field memiliki tipe yang berbeda satu sama lain, misalnya berat yang nantinya berisi
angka, warna yang berisi nama-nama warna dan lain sebagainya.
Untuk lebih jelasnya silahkan tulis dan jalankan contoh kode dibawah ini :
1 public class Rotiku {
2 String warna;
3 String rasa;
4 int berat;
5 double harga;
6
7 void beriWarna(String warnaRoti){
8 warna = warnaRoti;
9 }
10 void beriRasa(String rasaRoti){
11 rasa = rasaRoti;
12 }
13 void timbangBerat (int beratRoti){
14 berat = beratRoti;
15 }
16 void hargaJual (double hargaRoti){
17 harga = hargaRoti;
18 }
19 void infoRoti (){
20 System.out.println(
21 "Warna Roti : "+warna+"\n"+
22 "Rasa Roti : "+rasa+"\n"+
23 "Berat Roti : "+berat+"\n"+"gr"+
24 "Harga Roti : Rp."+harga);
25 }
26 }
BAB 2. CLASS DAN OBJECT 7
Kode di atas merupakan template atau bentuk abstrak dari roti akan tetapi kode
diatas tidak bisa dijalankan untuk menampilkan informasi dari objek roti, sehingga ketika
kita ingin menampilkan informasi dari objek roti menggunakan kelas di atas kita harus
membuat sebuah fungsi main atau fungsi utamanya. Fungsi main bisa dibuat di dalam
kelas tersebut ataupun dibuat dikelas lain dengan terlebih dahulu kita membuat objek
baru. Pembuatan objek baru dari suatu kelas memiliki sintax sebagai berikut
1 NamaKelas namaObjek = new NamaKelas ():
Kata kunci new mengindikasikan bahwa objek akan diciptakan dari kelas java dengan
nama objek yang sudah dituliskan setelah nama kalas java. Untuk membuat objek roti
dari kelas Rotiku, kita bisa membuat kelas baru atau bisa juga membuat objek roti di
kelas yang sama. Contoh kali ini, kita akan membuat kode program untuk membuat
objek Rotiku. Ketik dan jalankan kode program di bawah ini.
1 public class RotiEnak {
2 public static void main(String[] args) {
3 Rotiku rotienak = new Rotiku();
4 roti.beriWarna("Cokelat");
5 roti.beriRasa("Pisang Coklat");
6 roti.timbangBerat(50);
7 roti.hargaJual(5000);
8 roti.infoRoti();
9 }
10 }
Class Rotiku di halaman sebelumnya tidak memiliki fungsi utama (main method)
dikarenakan class tersebut bukan merupakan Program Applikasi melainkan hanyalah
sebuah cetak biru untuk menciptakan objek roti. Untuk menjalankan suatu program
applikasi, maka harus membuat suatu class yang memiliki sebuah fungsi utama main
method. Seperti yang kita lihat bahwa kode diatas merupakan kode program aplikasi
untuk membuat satu buah objek roti dengan nama rotienak yang mana kode diatas bisa
kita jalankan dan bisa menampilkan informasi tentang roti yang sudah kita buat.
2. Baris kedua digunakan untuk menyatakan variabel yang terdapat pada class, dan
3. Baris ketiga digunakan untuk menyatakan method-method yang ada pada suatu
class
Selain itu UML juga bisa digunakan untuk memberikan indikasi tentang akses modifier
dari sebuah variabel atau method antara lain :
1. + : Tanda ini menunjukkan bahwa suatu variabel atau method memiliki akses
modifier public
2. - : Tanda ini menunjukkan bahwa suatu variabel atau method memiliki akses
modifier private
3. # : Tanda ini menunjukkan bahwa suatu variabel atau method memiliki akses
modifier protected
Akses modifier akan kita pelajari lebih dalam pada modul 4. Contoh class diagram
Tujuan dari penggunaan UML class diagram sebenarnya untuk menggambarkan mo-
del dari aplikasi yang akan kita buat. Class diagram merupakan satu-satunya diagram
yang dapat menggambarkan dengan detail bentuk kelas yang akan dibuat. Berikut ada-
lah tujuan utama penggunaan class diagram
1. Nama dari class harus memiliki arti yang bisa mewakili fungsi sesungguhnya dari
aplikasi
BAB 2. CLASS DAN OBJECT 9
Berikut adalah contoh penggnaan class diagram dalam pemrograman berorientasi objek
2.2 Latihan
1. Silahkan modifikasi kelas RotiEnak dan buatlah 3 objek baru di dalamnya
3. Buatlah satu kelas yang bisa digunakan sebagai template/blueprint dari kelas Bi-
cycleDemo di mana kelas tersebut tidak memiliki fungsi main. Di bawah ini adalah
kode untuk BicycleDemo
1 public class BicycleDemo {
2 public static void main(String[] args) {
3 Bicycle bike1 = new Bicycle();
4 Bicycle bike2 = new Bicycle();
5
6 bike1.changeCadance(50);
7 bike1.speedUp(20);
8 bike1.changeGear(2);
9 bike1.printInfo();
10
BAB 2. CLASS DAN OBJECT 10
11 bike1.changeCadance(50);
12 bike1.speedUp(20);
13 bike1.changeGear(2);
14
11 bike1.changeCadance(40);
bike2
15
12 bike1.speedUp(10);
bike2
16
13 bike1.changeGear(1);
bike2
17
14 bike1.printInfo();
bike2
18
15 }
19
16 }
4. Buatlah suatu class yang dapat merepresentasikan sifat-sifat dari objek Kucing.
Objek ini memiliki field/variable/properties berupa umur, warna bulu dan fungsi
berupa meong dan umur.
5. Salah satu applikasi PBO yang sangat umum adalah berupa aplikasi keuangan.
Bank Account (Rekening Bank) adalah salah satu hal yang dapat dijadikan sebagai
suatu objek di dalam PBO.
(a) Buatlah suatu class yang dapat merepresentasikan Objek Rekening tersebut.
Variabel dari objek ini adalah saldo, no rekening, nama dan fungsi berupa
cek saldo, menabung, menarik, dan transfer.
(b) Buatlah suatu class yang memiliki sebuah fungsi utama yang digunakan untuk
mendemokan pembuatan objek tersebut.
6. Perhatikan Class String yang ada di dalam dokumentasi Java. Sebutkan daftar
variable dan fungsi/method yang dimiliki oleh Class String tersebut.
2. Buatlah kelas Hewan dan juga ciptakan objek dari kelas tersebut sehingga kita
bisa membuat berbagai macam objek hewan dengan karakternya masing-masing.
Kode program akan menghasilkan output seperti berikut.
BAB 2. CLASS DAN OBJECT 11
Gambar 2.4:
BAB 3
3.2 Variabel
Variabel atau disebut juga field merupakan member dari kelas dimana setiap variabel
harus memiliki tipe data tertentu. Ketika kita membuat suatu variabel maka akan ada
memori komputer yang disediakan untuk menyimpan variabel tersebut. Tipe data di
dalam pemrograman java bisa berupa tipe data primitif dan tipe data reference atau
tipe data objek. Tipe data primitif artinya tipe data ini sudah didefinisikan oleh baha-
sa pemrograman dengan kata kunci (Keyword) khusus, sedangkan tipe data reference
merupakan tipe data yang merujuk pada suatu class objek. Tipe data primitif bisa kita
lihat di tabel 3.1 Untuk menggunakan tipe data pada variabel penulisan harus sesuai
dengan syntax pemrograman java
1 tipe data namaVariable = nilai/Value ;
2 tipe data namaVariabel;
3 namaVariabel = nilai/value ;
12
BAB 3. CLASS MEMBERS : VARIABEL DAN METHOD 13
Contoh
1 int a, b, c, d = 10;
2 byte B = 22;
3 double pi = 3.14159;
4 char a = ’a’;
Ada beberapa jenis variabel yang biasa digunakan dalam pemrograman berorintasi
objek yaitu local variabel, instance variabel dan class/static variabel. Ketiga jenis variabel
tersebut memiliki karakteristik yang berbeda-beda.
Latihan 1
1. Buatlah method baru untuk menghitung berat badan dengan nama void bera-
tBadan, di dalam method tersebut buatlah variabel lokal beratLahir, isikan nilai
awal pada berat lahir kemudian hitunglah berat badan dengan rumus
(umur /2)
beratBadan = beratLahir + (usia/2)
2. Bisakah nilai dari variabel umur dipanggil dari method void beratBadan ? berilah
alasannya !
Latihan 2
1. Modifikasi kelas VariabelLokal, dengan menambahkan satu variabel instance untuk
menampung nilai dari umur
Static variabel tidak bisa dijadikan sebagai variabel lokal. Sehingga untuk membuatnya,
static variabel harus dituliskan di bagian kode paling atas dan untuk mengakses variabel
static kita tidak perlu membuat objek dari kelas yang memiliki variabel static.
Perhatikan contoh dibawah ini
1 public class AksesVariabelStatic {
2 public static void main(String[] args) {
3 StaticVariabel.akreditasi=’B’;
4 StaticVariabel sv = new StaticVariabel();
5 sv.methodSatu();
6 sv.methodDua();
7 }
8 }
dengan kata kunci void. Selain itu method juga bisa memiliki parameter. Parameter
di dalam method sifatnya tidak wajib dan itu sangat tergantung pada kegunaan dari
method tersebut. Akan tetapi setiap parameter di dalam method harus memiliki tipe
data tertentu Secara umum bentuk sebuah method adalah seperti blok berikut.
1 Tipemethod Nama method (parameter){
2 */Some code */
3 }
Dari contoh kode di atas terlihat bahwa nilai return yang dihasilkan oleh method nama
akan bertipe data String dan method nilai akan menghasilkan nilai return dengan tipe
data double
Tulis ulang kode di bawah ini
1 public class MethodReturn {
2 public String getNama (){
3 return nama;
4 }
5 public String getNIM (){
6 return id;
7 }
8 }
Cobalah untuk memodifikasi code di atas dengan menambahkan dua variabel nama
dan nim, kemudian buatlah fungsi main yang bisa menampilkan nama dan nim anda.
Tunjukkan hasilnya kepada Asisten
BAB 3. CLASS MEMBERS : VARIABEL DAN METHOD 17
Parameter pada method merupakan sebuah variabel lokal yang hanya bisa diakses
oleh method tersebut. Sebuah method boleh memiliki parameter ataupun tidak bahkan
bisa memiliki lebih dari satu parameter, tergantung dari kegunaan method yang kita buat.
Karena parameter merupakan variabel lokal maka setiap parameter yang dituliskan dalam
method harus memiliki tipe data tertentu.
Contoh
1 public class MethodParameter {
2 String nama;
3 public String setNama (String beriNama){
4 return this.nama=beriNama;
5 }
6 }
Dari kode diatas terlihat bahwa baris ke-2 merupakan sebuah variabel global yang
bertipe data String, kemudian pada baris ke-3 sampai 4 merupakan sebuah blok method.
Di dalam method tersebut terdapat parameter yang bertipe String. Ketika kita akan
menggunakan atau mengirimkan nilai dari suatu parameter ke parameter lain, maka
parameter tersebut harus memiliki tipe data yang sama. Baris ke-4 pada kode di atas
akan mengembalikan nilai dari beriNama dan kemudian akan disimpan ke dalam variabel
nama. Tambahkan kode berikut ini kedalam kelas MethodParameter untuk melihat
proses kerja dari method setNama
1 public static void main (String[]args){
2 MethodParameter mp = new MethodParameter();
3 "Luffy"
mp.setNama("Fulan");
4 System.out.println(mp.nama);
5 }
Latihan 3
Lengkapilah kode di bawah ini dengan menambahkan method yang memiliki para-
meter kemudian tampilkan hasilnya. Buatlah minimal 5 Objek pegawai dengan nama,
nim dan gaji yang berbeda-beda.
1 public class Pegawai {
2 String nama;
3 int nip;
4 double gaji;
5 }
BAB 3. CLASS MEMBERS : VARIABEL DAN METHOD 18
Pekerjaan Rumah
1. Lengkapilah kode di atas dengan menambahkan method void dan method return
yang mengembalikan nilai dari setiap parameter method void.
2. Ubahlah tipe data dari int ke double dan tambahkan satu variabel double nilai-
Total, kemudian hitung nilai total dengan rumus berikut
nilaiT otal = (nilaiM ID + nilaiT ugas + nilaiU AS)/3
BAB 4
Setiap variabel atau field dalam kode java, sebaiknya memiliki penentu akses. Maksud
dari pentu akses adalah untuk mengijinkan apakah variable/field dan method/fungsi bo-
leh diakses oleh kelas lain atau tidak atau dikenal dengan encapsulation. Akses terhadap
suatu variabel instan di luar kelas biasanya tidak diperkenankan dengan maksud untuk
menjaga data dari akses kelas lain yang bisa mengaibatkan kesalahan. Sebagai penggan-
tinya, disediakan metode yang diperlukan untuk mengakses variabel instan. Berkaitan
dengan boleh tidaknya suatu variabel instan diakses dari luar kelas, Java menyediakan
beberapa penentu akses antara lain: Default (Tanpa penent akses), Public, Protected
dan Private. Untuk bisa memahami perbedaan dari masing-masing tipe akses, kita perlu
memahami sedikit tentang package atau paket terlebih dahulu. Package, merupakan su-
atu folder tempat menyimpan class java, sehingga program yang kita buat bisa tersusun
dengan rapi. Selain itu package juga berfungsi untuk mengelompokan class java sesuai
dengan grupnya masing-masing sehingga bisa meminialisir kesalah dalam pengaksesan
kelas.
Contoh package di dalam kode java
1 package modul.praktikum.pbo;
Perbedaan public, private, dan tanpa penentu akses pada variabel atau
method
1. Default. Tanpa penentu akses, setiap Variabel atau method dapat diakses oleh
kelas yang berada dalam package yang sama.
2. Public. Variabel atau method dapat diakses pada semua kelas yang menggunakan
kelas yang berisi variabel tersebut meskipun berada pada package yang berbeda.
19
BAB 4. PENENTU AKSES / ACCESS MODIFIER 20
3. Private. variabel atau method hanya dapat diakses dari dalam kelas itu sendiri
4. Protected. hanya bisa diakses oleh kelas turunannya meskipun kelas turunannya
berada dalam package yang berbeda dengan kelas induk
4.1.1 Latihan
1. Untuk membuktikan bahwa Variabel-variabel di atas hanya bisa diakses oleh kelas
yang berada di dalam package yang sama, silahkan buat satu package dengan
nama praktikum.pbo.package1, kemudian buat file java lainnya untuk mengakses
variabel dan method dari kelas diatas dan tampilkan hasilnya.
2. Butlah package baru dan satu file kelas java di package tersebut, kemudian cobalah
untuk mengakses variabel yang ada di kelas DefaultModifier dan perhatikan
hasilnya
yang memang mengijinkan semua kelas bisa mengaksesnya. Perhatikan contoh kode
program berikut ini
1 public class PublicModifier {
2 public int a=2;
3 public int b=5;
4 public int c=9;
5 public void kali(){
6 int d = a*b*c;
7 System.out.println("Hasil kali = "+d);
8 }
9 }
4.2.1 Latihan
1. Lakukan percobaan seperti pada latihan 4.1.1 dan bandingkan hasilnya
4.3.1 Latihan
Buatlah kelas dan objek untuk mengakses method dari kelas di atas, dan bandingkan
dengan dua modifier sebelumnya
BAB 4. PENENTU AKSES / ACCESS MODIFIER 22
4.4.1 Latihan
Tuliskan kode di atas dan buatlah file java untuk mengakses variabel ataupun method
dari kelas di atas. Apakah variabel ataupun method bisa diakses dari kelas lain ? Berilah
penjelasannya.
BAB 5
Constructor
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 objek dari suatu kelas.
Konstruktor memiliki beberapa karakteristik antara lain :
1. Default constructor
2. Parameterized constructor
23
BAB 5. CONSTRUCTOR 24
Baris kode ke 3-5 merupakan konstruktor yang tidak memiliki detail implementasi, kon-
struktor yang seperti ini disebut dengan default konstruktor, kita boleh menuliskannya
maupun tidak. Tujuan sebenarnya dari default constructor adalah untuk memberikan
nilai awal pada objek seperti 0, NULL, dan sebagainya.
Dari contoh program sebelumnya nilai default dari objek yang diciptakan melalui kon-
struktor adalah melakukan print out yang berisi ”default constructor”. Untuk mengecek-
nya silahkan tulis kode di bawah ini dan perhatikan hasilnya
1 public class AksesKonstructor {
2 public static void main(String[] args) {
3 Konstruktor konstruktor = new Konstruktor();
4 }
5 }
5.1.1 Latihan
1. Buatlah kelas baru dengan menambahkan variabel nama, nim dan alamat serta
sebuah konstruktor default yang dapat menampilkan nama, nim dan alamat anda.
Selanjutnya buatlah kelas baru dengan fungsi main untuk menampilkan hasilnya.
Pada kode program di atas kita memiliki konstruktor dengan tiga parameter yaitu :
namaKu, semesterKu dan nimKu dengan tipe data tertentu. Ketika kita membuat
objek baru dari kelas tersebut, maka kita harus mengisikan ketiga parameter tersebut
pada setiap objek yang dibuat. Untuk melihat hasilnya silahkan tulis dan jalankan code
program di bawah ini.
1 public class AksesKonstructor {
2 public static void main(String[] args) {
3 ParamConstructor pc = new ParamConstructor("Fulan",
"Luffy" 3,
"L2001400xy");
4 pc.infoKu();
5 }
6 }
Pada baris ke-3, terlihat jelas bahwa ketika kita membuat objek baru kita diwajibk-
an mengisikan nilai dari masing-masing parameter sesuai dengan tipe datanya masing-
masing, dimana nilai dari parameter inilah yang kita sebut sebagai isi dari objek.
5.2.1 Latihan
1. Buatlah class Buku dengan variabel String namaPengarang, String judulBuku, int
tahunTerbit, int cetakanKe dan double hargaJual. Selanjutnya buatlah constructor-
nya serta sebuah method untuk menampilkan informasi buku.
2. Buatlah 10 objek buku dengan fungsi main yang dapat menampilkan nilai dari
semua parameter Buku tersebut.
Dari kode di atas terdapat dua constructor yang memiliki jumlah parameter berbeda.
Ketika kita membuat objek dari kelas diatas maka nilai default dari objek tersebut bisa
memiliki dua kemungkinan yaitu NULL atau id user dan nama user.
5.3.1 Latihan
1. Modifikasi kode di atas dengan menambahkan 3 constructor baru dengan parame-
ter yang berbeda.
2. Buatlah kelas baru dengan method main untuk membuat objek dari kelas sebe-
lumnya.
3. Buatlah kelas baru dengan nama CustomerData, tambahkan variabel nama, ala-
mat, tanggal lahir, pekerjaan dan gaji. Selanjutnya buatlah overloading constructor
dari kelas tersebut.
4. Buatlah kelas baru dengan method main serta membuatlah 10 objek customer dari
kelas CustomerData.
BAB 6
Inheritance / Pewarisan
Inheritance (pewarisan) adalah salah satu ciri utama dari PBO dan merupakan fitur
yang sangat memudahkan bagi programmer untuk membuat dan mengatur program.
Sepertihalnya dalam kehidupan riil, sifat seoran anak secara umum mirip dengan sifat
orang tuanya. Demikian juga pada kasus pemrograman. Suatu class yang diturunkan
(inherited from) dari induknya (parent class) akan mewarisi semua atau sebagian sifat
(variable dan fungsi) dari class induknya. Dengan inheritance kita tidak perlu membuat
(mengimplementasikan) ulang suatu Class jika kita sudah memiliki Class lain yang seru-
pa. Inheritance dapat digambarkan pada contoh diagram di bawah ini.
27
BAB 6. INHERITANCE / PEWARISAN 28
membuat ketiga jenis sepeda tersebut kita cukup mengambil karakter dari sepeda secara
umum semisal semua sepeda pasti memiliki gear, peda, rem, dan lain sebagainya. Oleh
karena itu kita hanya perlu menurunkan sifat sepeda (bicycle) kemudian kita terapkan
pada Mountainbike, Roadbike dan Tandembike.
Untuk menggunakan inheritance kata kunci yang diperlukan adalah extends. Secara
umum sintax dari inheritance adalah seperti berikut
1 class SubClass extends SuperClass {
2 }
Class SubClass merupakan kelas turunan dari SuperClass, oleh karena itu properties
yang dimiliki oleh SuperClass seperti variabel dan method akan bisa juga dimiliki oleh
SubClass.
1. Single inheritance
Dimana suatu kelas hanya memiliki satu turunan
2. Multilevel inheritance
Dimana suatu kelas memiliki kelas turunan dan kelas turunan tersebut juga me-
miliki kelas turunan lain
3. Hierarchical inheritance
Dimana suatu kelas memiliki lebih dari satu kelas turunan
Kode di atas menunjukkan bahwa kelas Programmer merupakan kelas turunan dari kelas
Pegawai, sehingga kita bisa menggunakan variabel dari kelas Pegawai dan mengguna-
kannya ke dalam kelas Programmer. Pada baris ke-6 terlihat bahwa kelas programmer
menggunakan variabel gajiPokok dari kelas pegawai dan menjumlahkannya dengan vari-
abel yang ada pada kelas programmer.
Kode diatas menunjukkan bahwa variabel dari kelas Pegawai bisa dipakai oleh kelas-kelas
turunannya tanpa perlu kita membuat variabel sendiri di masing-masing kelas turunan-
nya.
Untuk melihat apakah kelas turunan yang paling bawah (class C) bisa mengakses properti
dari kelas A dan kelas B silahkan tulis kode dibawah ini dan jalankan.
1 public class TesInheritance {
2 public static void main(String[] args) {
3 A a = new A();
4 B b = new B();
5 C c = new C();
6 a.messageA();
7 b.messageA();
8 b.messageB();
BAB 6. INHERITANCE / PEWARISAN 31
9 c.messageA();
10 c.messageB();
11 c.messageC();
12 }
13 }
Pada kode TesInheritance terlihat bahwa objek dari kelas A hanya bisa menggunakan
method yang ada pada kelas A sendiri, akan tetapi objek dari kelas B bisa menggunakan
method dari kelas A dan halnyang sama juga ada pada kelas C dimana objek dari kelas
C memiliki akses ke method yang ada pada kelas A dan B. Dengan demikian berarti
bahwa induk kelas (Super class) tidak bisa mengakses variabel atau method dari anak
kelas (sub class), tetapi sub-class memiliki akses pada variabel atau method dari super
class selama variabel atau class tersebut tidak bersifat private.
Jika kita perhatikan kode program diatas, kita akan menemukan method gerak pada
kelas Hewan dan juga method gerak pada kelas Kucing, akan tetapi implementasi
yang diterapkan berbeda. Hewan bisa berjalan tetapi belum tentu bisa berlari namun
Kucing yang merupakan inheritance dari Hewan bisa berjalan sekaligus berlari.
1. Buatlah kelas dengan fungsi main untuk menampilkan hasil dari kode diatas.
2. Buatlah kelas Elang yang memiliki method gerak namum memiliki implementasi-
nya berbeda dari kedua kelas di atas.
BAB 6. INHERITANCE / PEWARISAN 32
6.5 Latihan
Buatlah kode program untuk mengimplementasikan inheritance berikut ini. Gunakan
method overriding pada masing-masing kelas turunan.
Encapsulation / Enkapsulasi
2. Menyediakan akses public setter dan getter untuk menampilkan atau memodifikasi
nilai variabel
33
BAB 7. ENCAPSULATION / ENKAPSULASI 34
13 }
14 public void setNim(String nim) {
15 this.nim = nim;
16 }
17 public int getUmur() {
18 return umur;
19 }
20 public void setUmur(int umur) {
21 this.umur = umur;
22 }
23 }
Variabel-variabel yang terdapa pada kelas Enkapsulasi di atas tidak bisa diakses oleh
kelas lain, meskipun kelas lain tersebut adalah kelas turunannya. Sehingga dalam hal
ini untuk memanipulasi data kita harus memanfaatkan method-method yang disediakan
oleh kelas tersebut. Berikut ini adalah contoh penggunaan method untuk memodifikasi
data suatu kelas
1 public class EnkapsulasiApp {
2 public static void main(String[] args) {
3 Enkapsulasi en = new Enkapsulasi();
4 en.setNama("Fulan bin Fulan");
5 en.setNim("L200111222");
6 en.setUmur(20);
7 System.out.println(en.getNama());
8 System.out.println(en.getNim());
9 System.out.println(en.getUmur());
10 }
11 }
Selain itu enkapsulasi juga bisa diterapkan pada kelas yang mempunyai kelas turunan.
Tujuan penggunaan dari kelas inheritance adalah agar kelas turunan tidak perlu memo-
difikasi data yang ada pada kelas induk atau super class melainkan yang dimodifikasi
adalah data dari kelas turunan itu sendiri.
1 public class Karyawan {
2 private String nama;
3 private String nik;
4 private String jabatan;
5 private double gaji;
6 public String getNama() {
BAB 7. ENCAPSULATION / ENKAPSULASI 35
7 return nama;
8 }
9 public void setNama(String nama) {
10 this.nama = nama;
11 }
12 public String getNik() {
13 return nik;
14 }
15 public void setNik(String nik) {
16 this.nik = nik;
17 }
18 public String getJabatan() {
19 return jabatan;
20 }
21 public void setJabatan(String jabatan) {
22 this.jabatan = jabatan;
23 }
24 public double getGaji() {
25 return gaji;
26 }
27 public void setGaji(double gaji) {
28 this.gaji = gaji;
29 }
30 }
Sekarang buatlah kelas Programmer yang merupakan turunan dari kelas Karyawan
seperti berikut
1 public class Programmer extends Karyawan{
2 int jamKerja=8;
3 public int jamKerja(){
4 return jamKerja;
5 }
6 }
7.2 Latihan
1. Buatlah Kelas dengan fungsi main dan 5 objek berbeda untuk menampilkan data
dari class Programmer
BAB 8
Polymorphism
Salah satu kekuatan dari pemrograman berorientasi objek selain inheritance dan en-
capsulation ada juga istilah polymorphism. Polymorphism (polimorpisme) merupakan
salah satu kemampuan pemrograman berorientasi objek untuk membuat berbagai jenis
bentuk dari suatu objek. Salah satu penggunaan polimorpisme yang paling sering dipakai
adalah ketika suatu induk kelas (Super class) melakukan referensi terhadap anak kelas
(sub-class).
Perlu diketahui bahwa salah satu cara untuk mengakses suatu objek adalah dengan mem-
buat reference variabel. Ketika suatu reference variabel diciptakan maka hal itu tidak
bisa dirubah menjadi bentuk yang lain. Reference variabel itu sendiri bisa dideklarasikan
sebagai atau interface.
Perhatikan contoh berikut
1 public interface Herbivora{}
2 public class Hewan{}
3 public class Kuda extends Hewan implements Herbivora{}
Penggalan kode di atas menunjukkan bahwa kelas Kuda merupakan suatu bentuk poli-
morpisme karena kelas tersebut memiliki multiple inheritance diantaranya :
36
BAB 8. POLYMORPHISM 37
Pada kelas SepedaAir terlihat bahwa disitu terdapat method run yang merupakan me-
thod overriding dari kelas Sepeda. Namun pada saat implementasinya objke dari kelas
Sepeda melakukan referensi ke kelas SepedaAir bukan ke kelas Sepeda itu sendiri,
sehingga hal ini disebut dengan upcasting.
Silahkan tulis dan jalankan kode berikut serta kerjakan latihan berikut ini
1 Publc clas Pet{
2 private String nama;
BAB 8. POLYMORPHISM 38
Latihan
1. Buatlak kelas Kucing dan Anjing kemudian dimana masing-masing kelas tersebut
melakukan overriding terhadap method perilaku(), dan tambahkan satu method
pada masing-masing kelas yang secara khusus hanya berlaku pada masing-masing
kelas tersebut. Selanjutnya buat kelas baru TestPolimorpisme untuk menampil-
kan hasilnya. Tampilan hasil
1 TOM
2 Menykai Ikan
3 Meeooww...Meeooww
4 BULL
5 Menyukai Daging dan Tulang
6 Guk..Guk..Guk..
8.2 Tugas
Buatlah class berdasarkan Class diagram berikut ini, terapkan teknik polimorpisme
dan tampilkan hasilnya dengan print screen
BAB 8. POLYMORPHISM 39
Abstract Class
3. Jika kita membuat abstract method maka kita harus membuatkan implementasi
dari method tersebut
40
BAB 9. ABSTRACT CLASS 41
2 int a;
3 int b;
4 int c;
5 public AbstrakClass (int a, int b, int c){
6 this.a = a;
7 this.b = b;
8 this.c = c;
9 }
10 public int kali (){
11 return a*b*c;
12 }
13 }
Kode program di atas merupakan sebuah abstract class yang memiliki konstruktor
dengan tiga parameter. Untuk membuktikan bahwa suatu abstract class tidak dapat
dibuat instance objeknya, silahkan tulis kode program di ini
1 public class ObjekAbstrakClass {
2 public static void main(String[] args) {
3 AbstrakClass ac = new AbstrakClass(2, 3, 4);
4 }
5 }
Jika kita menjalankan kode di atas maka bisa dipastikan terjadi error. Error yang mun-
cul disebabkan karena ada pembuatan objek dari kelas AbstrakClass. Sehingga untuk
menggunakan abstrak class agar bisa diimplentasikan kita perlu membuat kode program
yang merupakan turunan dari kelas abstract tersebut.
Perhatikan dan tulis ulang kode berikut
1 public class TurunanAbstrakClass extends AbstrakClass{
2 int x;
3
4 public TurunanAbstrakClass (int a, int b, int c){
5 super(a,b,c);
6 x = a+b+c;
7 }
8
9 public void printX(){
10 System.out.println(x);
11 }
12 }
BAB 9. ABSTRACT CLASS 42
Kode kelas abstrak di atas memiliki dua method abstrak yaitu luas dan keliling, dimana
method tersebut tidak memiliki detail implementasi tentang bagaimana menentukan
nilai luas dan keliling. Untuk mengimplementasikannya cara yang dilakukan adalah sama
seperti pada sub-bab sebelumnya, yaitu kita harus membuat suatu kelas yang merupakan
kelas turunan dari abstrak kelas. Dengan cara seperti ini kita bisa menetukan detail dari
method abstrak yang ada pada kelas abstrak. Misalkan dalam hal ini kita akan membuat
kelas Persegi. Tulis kode berikut ini dan analisa hasilnya.
1 public class Persegi extends MethodAbstrak{
BAB 9. ABSTRACT CLASS 43
2 int sisi = 5;
3 public int luas() {
4 return sisi*sisi;
5 }
6 public int keliling() {
7 return 4*sisi;
8 }
9 }
9.3 Latihan
1. Dengan menggunakan kelas MethodAbstrak buatlah kelas PersegiPanjang, Jaja-
ranGenjang, Lingkaran, dan SegiTiga. Selanjutnya implementasikan method luas
dan keliling pada masing-masing kelas tersebut.
9.4 Tugas
1. Buatlah abstract class untuk bangun ruang, dengan ketentuan memiliki method
abstrak volume, dan luasSelimut/luasPermukaan. Berikutnya buatlah kelas Balok,
Kubus, Bola, Kerucut, dan PrismaSegiTiga untuk mengimplementasikan method
abstrak tesebut.
BAB 10
Interface
Interface merupakan suatu mekanisme yang disediakan oleh java yang memungkinkan
berbagi konstanta atau menentukan bentuk method yang dapat digunakan oleh sejumlah
kelas. Sekilas interface mirip dengan abstract class, karena interface juga menentukan
method untuk kelas yang mereferensi namun detail dari method diserahkan atau diten-
tukan oleh masing-masing kelas tersebut. Sama halnya dengan abstrak kelas, interface
juga bisa memiliki konstanta, method defaul, static method dan juga perilaku yang bi-
sa diimplementasikan oleh kelas implennya. Akan tetapi interface memiliki beberapa
perbedaan dengan kelas pada umumnya seperti :
5. Interface tidak bisa diturunkan kepada kelas lain, melainkan interface hanya bisa
di implement-kan
44
BAB 10. INTERFACE 45
Secara default interface bersifat abstrak sehingga kita tidak perlu menuliskan kata kunci
abstrak ketika membuat interface, semua method pada interface juga bersifat abstrak
sehingga tidak perlu menuliskan kata kunci abstrak dan semua method bersifat public.
Contoh interface
1 interface Animal {
2 public void eat();
3 public void travel();
4 }
16 m.eat();
17 m.travel();
18 }
19 }
Kode program diatas merupakan implementasi dari interface Animal, dimana kelas ma-
malia mengimplementasikan semua method yang dimiliki oleh interface Animal.
10.2.1 Percobaan
1. Buat interface baru dengan nama “IntLampu.java”, tuliskan kode program seperti
berikut
1 public interface IntLampu {
2 public static final int LAMPU_HIDUP=1;
3 public static final int LAMPU_MATI=0;
4 public abstract void matikanLampu();
5 public abstract void hidupkanLampu();
6 }
10.3 Latihan
Modifikasi kelas Lampu di atas dengan menambahkan satu variabel static final
REDU P KAN LAM P U , dan tambahkan method untuk meredupkan lampu. Selan-
jutnya buat kelas dengan fungsi main untuk menjalankannya.
BAB 11
Nested Class
Nested class merupakan fasilitas yang disediakan oleh java untuk mengelompokkan
kelas secara virtual sehingga lebih mudah dibaca dan dimaintenance. Selain itu hal ini
juga memungkinkan outer class bisa mengakses private variabel dan method dari inner
class.
Contoh kode di atas menunjukkan bahwa di dalam suatu kelas sangat memungkinkan
untuk kita membuat kelas lain, dimana kelas-kelas tersebut memiliki kaitan fungsi atau
kegunaan.
Nested class sendiri dikategorikan menjadi dua bagian yaitu : Non-Static Nested class
dan Static Nested class. Struktur dari pengelompokan inner kelas dapat dilihat dari
gambar berikut ini
48
BAB 11. NESTED CLASS 49
Berikut adalah contoh penggunaan inner class dan cara melakukan akses terhadap me-
thod pada inner class. Tulis dan jalankan contoh kode program berikut.
1 class OuterDemo{
2 int num;
3
4 //inner class
5 private class InnerDemo{
6 public void print(){
7 System.out.println("Ini merupakan method inner class");
8 }
9 }
10
11 //Mengakses method inner class dari method outer class
12 void displayInner(){
13 InnerDemo inner = new InnerDemo();
14 inner.print();
15 }
16 }
Dari kode program sebelumnya terlihat bahwa OuterDemo merupakan kelas paling
luar yang di dalamnya memiliki inner class yaitu InnerDemo, dan satu variabel dengan
nama displayInner untuk mengakses variabel dari kelas InnerDemo. Mehod displayInner
merupakan method yang akan kita gunakan untuk mengakses method dari inner class,
disitu terlihat bahwa kita harus membuat objek atau instance dari inner class untuk
mengakses method di dalamnya.
Berikut ini adalah contoh program untuk mengakses private member dari inner class
1 class OuterDemo {
2 private int num= 175;
3 public class Inner_Demo{
4 public int getNum(){
5 System.out.println("Ini adalah nilai dari variabel private
outerDemo");
6 return num;
7 }
8 }
9 }
Membuat objek static nested class sedikit berbeda dengan membuat objek dari inner
class. Berikut adalah contoh membuat instance dari Static nested class.
1 public class Outer{
2 static class NestedDemo{
3 public void myMethod(){
4 System.out.println("Ini adalah method static nested class");
5 }
6 }
7
8 public static void main(String args[]){
9 Outer.NestedDemo nested=new Outer.NestedDemo();
10 nested.myMethod();
11 }
12 }
11.3 Latihan
1. Isikan nama dan nim kalian, kemudan buatlah method di dalam StaticNeste-
dClass untuk mengakses method printNama
3. Buatlah kelas dengan fungsi main untuk menampilkan hasil dari kode program
1 class NestedClass {
2 String nama="";
3 String nim="";
BAB 11. NESTED CLASS 52
4
5 public void printNama(){
6 System.out.println (nama +" : "+ nim);
7 }
8
9 static class StaticNestedClass {
10 static String jurusan="informatika";
11 }
12
13 class InnerClass {
14
15 }
16 }
BAB 12
Java Swing
Swing merupakan suatu cara untuk pembuatan aplikasi yang berbasis GUI (Graphical
User Interface) di Java. Sebenarnya terdapat dua cara untuk pembuatan aplikasi yang
berbasis GUI di Java selain menggunakan Swing, Cukup banyak paket di java untuk
melakukan pemrograman GUI, tetapi sebagai pengenalan anda cukup memahami paket
yang berada di javax.swing.
53
BAB 12. JAVA SWING 54
Berikut adalah beberapa contoh komponen swing dan penjelasan dari Swing
1. JComponent : Kelas induk untuk semua komponen Swing, tidak termasuk top-
level container checkbox class dalam package AWT
2. JButton : Tombol “push”. Korespondesi pada button class dalam package AWT
3. JCheckBox : Item yang dapat dipilih atau tidak oleh pengguna. Korespondensi
pada
6. JFrame : Turunan dan korepondensi pada frame class dalam package AWT tetapi
keduanya sedikit tidak cocok dalam kaitannya dengan menambahkan komponen
pada kontainer. Perlu mendapatkan content pane yang terbaru sebelum menam-
bah sebuah komponen.
8. JApplet : Turunan dan korepondensi ke Applet class dalam package AWT. Juga
sedikit tidak cocok dengan applet class dalam kaitannya dengan menambahkan
komponen pada container
10. JDialog : Turunan dan korespondensi pada dialog class dalam package AWT. Bi-
asanya digunakan untuk menginformasikan sesuatu kepada pengguna atau prompt
pengguna untuk input.
kontainer sebagai kontainer AWT, pertama-tama Anda telah mendapatkan content pa-
ne dari kontainer. Untuk melakukan hal tersebut, Anda akan menggunakan metode
getContentPane dari kontainer.
Perlu diperhatikan pada package java.awt masih saja diimpor karena layout manager
yang digunakan terdapat pada package tersebut. Juga, memberi judul pada frame dan
mengepack komponen di dalam frame dapat juga dilakukan untuk frame AWT.
Latihan
Tulis dan jalankan kode program berikut ini :
1 package java_swing;
2 import javax.swing.*;
3
4 public class Coba_GUI {
5 public static void main(String[] args) {
6 GUI g = new GUI();
7 }
8 }
9
10 class GUI extends JFrame {
11 final JTextField fnama = new JTextField(10);
12
13 JLabel lnama = new JLabel(" Nama Lengkap ");
14 JLabel ljeniskelamin = new JLabel(" Jenis Kelamin ");
15
16 JRadioButton rbPria = new JRadioButton(" Laki-Laki ");
17 JRadioButton rbWanita = new JRadioButton(" Perempuan ");
18
19
20 JLabel lagama = new JLabel(" Agama ");
21 String[] namaAgama =
{"Islam","Kristen","Katolik","Hindu","Budha"};
22 JComboBox cmbAgama = new JComboBox(namaAgama);
23
24 JLabel lhobby = new JLabel(" Hobby ");
25
26 JCheckBox cbSepakbola = new JCheckBox(" Sepak Bola ");
27 JCheckBox cbBasket = new JCheckBox(" Basket ");
28
BAB 12. JAVA SWING 56
Selain itu kita dapat menggabungkannya dengan AWT seperti pada contoh program
berikut
1 public class Login {
2
3 public static void main(String[] args) {
4 final JFrame frame = new JFrame("Login");
5 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
6 frame.setLocationRelativeTo(null);
7 frame.setSize(255, 150);
8 final JPanel panel = new JPanel();
9 frame.getContentPane().setLayout(new GridLayout());
10 final JLabel usertxt = new JLabel("Username :");
11 final JLabel passtxt = new JLabel("Password :");
12 final JTextField user = new JTextField(10);
13 final JPasswordField pass = new JPasswordField(10);
14 JButton blogin = new JButton("Login");
15 JButton bclose = new JButton("Cancel");
16 panel.add(usertxt);
17 panel.add(user);
18 panel.add(passtxt);
19 panel.add(pass);
20 panel.add(blogin);
21 panel.add(bclose);
22 frame.add(panel);
23 frame.setVisible(true);
24
25 blogin.addActionListener(new ActionListener() {
26
27 @Override
28 public void actionPerformed(ActionEvent arg0) {
29 String usr = user.getText();
30 String pas = pass.getText();
31 if (usr.equals("") && pas.equals("")) {
32 JOptionPane.showMessageDialog(null, "Maaf Username/password
tidak boleh kosong");
33 } else {
34 if (usr.equals("admin") && pas.equals("admin")) {
35 JOptionPane.showMessageDialog(null, "Berhasil login sebagai
: " + usr);
BAB 12. JAVA SWING 58
36 user.setText("");
37 pass.setText("");
38 frame.setTitle("Login");
39 frame.setVisible(true);
40 } else {
41 JOptionPane.showMessageDialog(null, "Maaf User/password Anda
Salah");
42 user.setText("");
43 pass.setText("");
44 }
45 }
46 }
47
48 });
49 bclose.addActionListener(new ActionListener() {
50
51 @Override
52 public void actionPerformed(ActionEvent arg0) {
53 frame.setVisible(false);
54 }
55 });
56 }
57 }
Pekerjaan Rumah
1. Buatlah Sebuah form dengan swing yang memiliki 3 buah tombol, dimana setiap
tombol akan merubah warna dari form ketika tombol tersebut diklik
3. Buatlah aplikasi untuk menghitung Luas bangun datar seperti Segi tiga, Persegi,
Persegi Panjang, Jajaran Genjang dan Layang-layang.