Anda di halaman 1dari 67

BKPM

(BUKU KERJA PRAKTIK MAHASISWA)

PEMROGRAMAN BERORIENTASI OBJEK

SEMESTER II

OLEH :

SYAMSUL ARIFIN

PROGRAM STUDI MANAJEMEN INFORMATIKA

JURUSAN TEKNOLOGI INFORMASI

POLITEKNIK NEGERI JEMBER

2018
KEMENTERIAN RISET, TEKNOLOGI DAN PERGURUAN TINGGI

POLITEKNIK NEGERI JEMBER

LEMBAR PENGESAHAN

BKPM

PEMROGRAMAN BERORIENTASI OBJEK

Mengetahui
Ka. Prodi Manajemen Informatika Penulis

Dwi Putro Sarwo Setyohadi, S.Kom, M.Kom. Syamsul Arifin, S.Kom, M.Cs.
NIP. 198005172008121002 NIP. 198106152006041002

Menyetujuai
Ka. Jur. Teknologi Informatika

Wahyu Kurnia Dewanto, S.Kom, MT.


NIP. 197104082001121003
Praktikum :1
Judul : Mengenal JAVA Netbeans
Waktu : 1x110 Menit

A. Tujuan Intruksional Khusus


Mahasiswa memahami ruang lingkup dan mengetahui fungsi-fungsi utama dalam
menggunakan Netbeans

B. Alat dan Bahan


 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori
Java dibuat dan diperkenalkan pertama kali oleh sebuah tim Sun Microsystems yang
dipimpin oleh Patrick Naughton dan James Gosling pada tahun 1991 dengan code name
Oak. Tahun 1995 Sun mengubah nama Oak tersebut menjadi Java, ide pertama kali
kenapa Java dibuat adalah karena adanya motivasi untuk membuat sebuah bahasa
pemrograman yang bersifat Portable dan Platform independent.

Netbeans adalah merek dagang yang hak atas kekayaan intelektualnya dimiliki oleh Sun
Microsystems Inc. Netbeans sebagai IDE ditujukan untuk memudahkan pemrograman
java, Netbeans mencakup compiler atau builder dan debugger internal. Hal ini sangat
memudahkan proses paska perancangan program. Proses deployment dan / atau tes
dapat juga dilakukan dari dalam NetBeans

D. Pelaksanaan Praktikum
 Jalankan Software Netbeans 6.5, tunggu beberapa saat sampai netbeans siap
digunakan, seperti gambar berikut :

 Jalankan menu File | New Project, sehingga dialog New Project muncul
 Pada Menu Categories = Java, Project = Java Application, klik tombol Next,
Sehingga New Java Application muncul

 Isikan Sesuai dengan gambar di atas, pastikan pilihan Create Main Class dan
Set as Main project untuk dicentang, klik tombol Finish untuk menyelesaikan
pembuatan Project baru.

 Tambahkan baris program berikut pada Method Public static void main
Public static void main(String[] args) {
// TODO code application logic here
System.out.println("Hello World ..!");
}
 Untuk mengetahui apakah program tersebut benar, lakukan Compile, klik kanan
tepat di atas node nama file poject (Project | HelloWorld | Sources Packages |
helloworld | java.main) pilih compile file.
 Jika pada baris akhir bagian jendela Output tertuliskan :
BUILD SUCCESSFUL (total time: 2 seconds)
Maka Program tersebut benar
 Untuk melihat hasil program tersebut, lakukan seperti langkah f tetapi pilih Run file

E. Latihan
 Buatlah sebuah program untuk menghitung luas segitiga dengan ketentuan : nilai
alas dan tinggi ditentukan dalam program tersebut.
 Buatlah sebuah program untuk mengitung lingkaran dengan ketentuan : nilai Phi dan
jari-jari ditentukan dalam program tersebut.

F. Tugas
1. Jelaskan perbedaan antara J2SE ( Standart Edition), J2EE (Enterprise Edition) juga
J2ME (Micro edition) ?
2. Jelaskan Perbedaan pembuatan project dengan menggunakan Java Application dan
Java Class Library ?
3. Apa yang dimaksud dengan Package dalam netbeans ?
4. Jelaskan perbedaan antara Compile file dan Build juga Run file ?
5. Jelaskan pengertian istilah-istilah berikut :
o Class
o Objek / instans
o State
o Behaviour
o Method
o Konstruktor
Praktikum :2
Judul : Pengenalan dan membuat Objek
Waktu : 1x110 Menit

A. Tujuan Intruksional Khusus


Mahasiswa memahami konsep dasar pemrograman berorientasi Objek menggunakan
Java dengan Netbeans

B. Alat dan Bahan


 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori

Class Manusia
(STATE)
Berat
Tinggi
Usia
(BEHAVIOUR)
Makan()
Minum()
Menua()

Class Wanita SITI BUDI Class Pria


(STATE) (STATE)
kelamin_wanita kelamin_pria
(BEHAVIOUR) (BEHAVIOUR)
Melahirkan() Mencangkul()
Menyusui() Menggali
sumur()

SITI & BUDI merupakan Instance /objek

D. Pelaksanaan Praktikum
 Buat Project baru berupa Java Class Library
 Selanjutnya buatlah sebuah file untuk class yang akan dibuat.dengan cara, klik
kanan tepat di atas node nama file poject (Project | New | Java Class), seperti pada
gambar di bawah :
 Pada dialog New Java Class, isikan nama kelas yang akan kita buat (misal : Buku),
package sesuai dengan yang diinginkan, akhiri dengan klik tombol Finish.

 Isi kan program class buku sehingga seperti di bawah ini :

 Jalankan program tersebut, jika benar akan menghasilkan seperti di bawah ini :

run:
judul:Pemrograman berorientasi Objek, Pengarang:IndraJani,S.Kom,MM
judul:Pemrograman Visual, Pengarang:Sudarmanto,ST,MT
BUILD SUCCESSFUL (total time: 1 second)
E. Latihan
 Buatlah sebuah project baru untuk Class Manusia
Dengan properti berat, tinggi dan usia, buat juga objek dari class manusia dan
definisikan nilai dari masing masing variable tersebut.

F. Tugas
1. Jelaskan tentang istilah-istilah berikut
o Enkapsulasi
o Pewarisan
o Polymorphism
2. Jelaskan mengenai Top-level Container, intermediate Container, Atomic
Component, Layout Manager ?
3. Berikan contoh untuk soal 2 ?
4. Jelaskan tentang AWT dan SWING komponen dan cara menggunakannya ?
o Apa perbedaan antara variabel dan object?
o Ada berapa macam tipe data primitif dalam Java?
Sebutkan dan jelaskan!
o Sebutkan tipe data reference dalam Java!
o Beri contoh deklarasi konstanta dalam Java!
o Sebutkan keyword dalam java!
o Kenapa deklarasi variabel berikut salah?
int8k;
char null;
Praktikum :3
Judul : Sintaks Bahasa dan Tipe Data
Waktu : 2 x 110 Menit

A. Tujuan Intruksional Khusus


Mahasiswa memahami Sintaks Bahasa Dan Tipe Data pada java serta dapat
menerapkannya

B. Alat dan Bahan


 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori
Variabel
Sintaks pendeklarasian variabel secara umum adalah sebagai berikut :
Tipe-data nama-variabel;
Contoh
int counter;

D. Pelaksanaan Praktikum
 Scope Variabel

class Scope1 {
static int a; //Deklarasi variabel dalam blok class

public static void main(String[] args) {


int x; // variabel x ini dikenal di seluruh method main()

x = 10;
a = 2; //variabel a juga dikenal di sini
System.out.println("Nilai a : " + a);

{ //awal dari blok baru


int y; /* variabel ini hanya dikenal di dalam blok code ini saja */

y = 5;
System.out.println("Nilai x : " + x); /* variabel x dikenal di sini
*/
System.out.println("Nilai a : " + a); /*variabel a juga dikenal di
sini */
{ //nested blok
int z;/* variabel ini hanya dikenal di dalam nested blok ini
saja */
z = 20;

// variabel x,y dan a dikenal di dalam nested blok ini


System.out.println("Nilai x + y + z + a : " + (x + y + z +
a));
} //akhir dari nested blok
//z = 11; // -> Error variabel z tidak lagi dikenal di sini
//variabel y masih dikenal di sini karena masih dalam
//blok
//code tempat ia dideklarasikan
System.out.println("Nilai y : " + y);

} //akhir dari blok baru

//y = 12; // -> Error: variabel y tidak dikenal di sini

//variabel x masih dikenal di sini karena masih dalam blok


//code tempat ia dideklarasikan
System.out.println("Nilai x : " + x);
}
}

 Tipe Data Referensi


class ProgSederhana {
int x = 0; // Pendeklarasian variabel dengan tipe data int

public static void main(String[] args) {


ProgSederhana var; //Pendeklarasian variabel dengan //tipe //data
class ProgSederhana
// var.x = 20 //Upss...Error, Anda belum meng-//instantiate
class ProgSederhana //sehingga anda
belum dapat mengakses objek ProgSederhana

var = new ProgSederhana2(); //Instantiate class ProgSederhana


//menjadi objek

var.x = 20; //setelah proses instantiate ini, anda dapat


//mengakses objek

//ProgSederhana melalui variabel var


System.out.println("Nilai x : " + var.x);

}
}

 Array Satu Dimensi


class SingleArray {
public static void main(String[] args) {
int [] x; // Cara 1
x = new int[3];
x[0] = 20 ;
x[1] = 10 ;
x[2] = 30;
System.out.println("Nilai x[0] : " + x[0]);
System.out.println("Nilai x[1] : " + x[1]);
System.out.println("Nilai x[2] : " + x[2]);

int [] y = new int[3]; // Cara 2


y[0] = 20 ;
y[1] = 10 ;
y[2] = 30;
System.out.println("Nilai y[0] : " + y[0]);
System.out.println("Nilai y[1] : " + y[1]);
System.out.println("Nilai y[2] : " + y[2]);
int[] z = {20,10,30}; // Cara 3 tdk menggunakan new
System.out.println("Nilai z[0] : " + z[0]);
System.out.println("Nilai z[1] : " + z[1]);
System.out.println("Nilai z[2] : " + z[2]);
}
}

 Array Multi Dimensi


class MultiArray1 {
public static void main(String[] args) {

int[][] arrx; // Cara 1 Array 2 Dimensi


arrx = new int[3][3];
arrx[0][0] = 1;
arrx[0][1] = 2;
arrx[0][2] = 3;
arrx[1][0] = 4;
arrx[1][1] = 5;
arrx[1][2] = 6;
arrx[2][0] = 7;
arrx[2][1] = 8;
arrx[2][2] = 9;

System.out.println("Nilai arrx[0] : " + arrx[0][0]);


System.out.println("Nilai arrx[0] : " + arrx[0][1]);
System.out.println("Nilai arrx[0] : " + arrx[0][2]);
System.out.println("Nilai arrx[1] : " + arrx[1][0]);
System.out.println("Nilai arrx[1] : " + arrx[1][1]);
System.out.println("Nilai arrx[1] : " + arrx[1][2]);
System.out.println("Nilai arrx[2] : " + arrx[2][0]);
System.out.println("Nilai arrx[2] : " + arrx[2][1]);
System.out.println("Nilai arrx[2] : " + arrx[2][2]);
int[][] arry = {{10,20,30},{40,50,60},{70,80,90}} ;
//Cara 2 Array 2 Dimensi dgn ukuran 3 * 3 = 9
System.out.println("Nilai arry[0] : " + arry[0][0]);
System.out.println("Nilai arry[0] : " + arry[0][1]);
System.out.println("Nilai arry[0] : " + arry[0][2]);
System.out.println("Nilai arry[1] : " + arry[1][0]);
System.out.println("Nilai arry[1] : " + arry[1][1]);
System.out.println("Nilai arry[1] : " + arry[1][2]);
System.out.println("Nilai arry[2] : " + arry[2][0]);
System.out.println("Nilai arry[2] : " + arry[2][1]);
System.out.println("Nilai arry[2] : " + arry[2][2]);
}
}

 Array Multi Dimensi 2


class MultiArray2 {
public static void main(String[] args) {
int[][][] arr3 = {{{10,20,30},{40,50,60}},
{{11,21,31},{41,51,61}},
{{12,22,32},{42,52,62}}}; // ukuran 3 * 6 //= 18
System.out.println("Nilai arr3[0] : " + arr3[0][0][0]);
System.out.println("Nilai arr3[0] : " + arr3[0][0][1]);
System.out.println("Nilai arr3[0] : " + arr3[0][0][2]);
System.out.println("Nilai arr3[0] : " + arr3[0][1][0]);
System.out.println("Nilai arr3[0] : " + arr3[0][1][1]);
System.out.println("Nilai arr3[0] : " + arr3[0][1][2]);
System.out.println("Nilai arr3[1] : " + arr3[1][0][0]);
System.out.println("Nilai arr3[1] : " + arr3[1][0][1]);
System.out.println("Nilai arr3[1] : " + arr3[1][0][2]);
System.out.println("Nilai arr3[1] : " + arr3[1][1][0]);
System.out.println("Nilai arr3[1] : " + arr3[1][1][1]);
System.out.println("Nilai arr3[1] : " + arr3[1][1][2]);

System.out.println("Nilai arr3[2] : " + arr3[2][0][0]);


System.out.println("Nilai arr3[2] : " + arr3[2][0][1]);
System.out.println("Nilai arr3[2] : " + arr3[2][0][2]);
System.out.println("Nilai arr3[2] : " + arr3[2][1][0]);
System.out.println("Nilai arr3[2] : " + arr3[2][1][1]);
System.out.println("Nilai arr3[2] : " + arr3[2][1][2]);
}
}

E. Tugas
 Apa perbedaan tipe data primitive dan tipe data referensi
 Buatlah program menghitung luas
o Segitiga
o Lingkaran
o Bujursangkar
o Empat persegipanjang
Praktikum :4
Judul : Operator
Waktu : 2 x 110 Menit

A. Tujuan Intruksional Khusus


Mahasiswa memahami menggunakan Operator-operator yang terdapat dalam java dan
dapat menerapkannya
B. Alat dan Bahan
 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori
Ada enam jenis kelompok operator dalam pemrograman Java:
1. Operator Artimatika;
2. Operator Penugasan;
3. Operator Pembanding;
4. Operator Logika;
5. Operator Bitwise;
6. dan Operator Ternary.
D. Pelaksanaan Praktikum
 Operator Penugasan
class Operator1 {
public static void main(String[] args) {
int var = 1;
int a,b,c;
a = b = c = 99;

int d,e,f;
f = 99;
e = f;
d = e;

System.out.println("Nilai var : " + var);


System.out.println("Nilai a : " + a);
System.out.println("Nilai b : " + b);
System.out.println("Nilai c : " + c);
System.out.println("Nilai f : " + f);
System.out.println("Nilai e : " + e);
System.out.println("Nilai d : " + d);

int z;
char Teks1 = 'a'; // dalam Unicode karakter 'a' direpresentasikan
// dengan angka 97
z = Teks1 * 10; // z = 97 * 10;
System.out.println("Nilai Teks1 : " + Teks1);
System.out.println("Nilai z : " + z);
}
}

 Operator matematik, penaikan dan penurunan


class Operator2{
public static void main(String[] args) {
int x = 10;
int y;

y = ++x;
System.out.println("Nilai x dari ++x : "+x);
System.out.println("Nilai y dari ++x : "+y);
x=10;
y = x++;
System.out.println("Nilai x dari x++ : "+x);
System.out.println("Nilai y dari x++ : "+y);
}
}

 Operator bitwise (manipulasi bit)

class Operator3{
public static void main(String[] args) {
int x,y;
x = ~10;
System.out.println("Nilai negasi x : "+x);
x = 170 & 34;
System.out.println("Nilai and : "+x);
x = 170 | 34;
System.out.println("Nilai or : "+x);
x = 170 ^ 34;
System.out.println("Nilai xor : "+x);
x = 1170;
y = x >> 1;
System.out.println("Nilai geser kanan : "+x);
x = -1170;
y = x >> 1;
System.out.println("Nilai geser kanan neg : "+x);
x = 1170;
y = x >>> 1;
System.out.println("Nilai geser kanan 1 bit 0 : "+x);
x = -1170;
y = x >>> 1;
System.out.println("Nilai geser kanan 1 bit 0 neg : "+x);
x = 1170;
y = x << 1;
System.out.println("Nilai geser kiri : "+x);
x = 1073742994;
y = x << 1;
System.out.println("Nilai geser kiri : "+x);
}
}

 Operator logika

class Operator4{
public static void main(String[] args) {
int x,y;
x = 5;
if(x!=0 && (x/2)>=5){
System.out.println("TRUE 1 : " + x);
System.out.println("TRUE 1 : ");
}else {
System.out.println("FALSE 1");
}
}
}

class Operator6{
public static void main(String[] args) {
int x,y;

x = 5;
if(x!=0 & (x/2)>=5) {
System.out.println("TRUE 2 : " + x);
System.out.println("TRUE 2 : ");
}else {
System.out.println("FALSE 2");
}

}
}

class Operator7{
public static void main(String[] args) {
int x,y;
x=10;
y=5;
if(x>y & x++ > 10) {
System.out.println("TRUE 3 : " + x);
System.out.println("TRUE 3 : " + y);
System.out.println("TRUE 3 : ");
}else {
System.out.println("FALSE 3");
}
}
}

class Operator8{
public static void main(String[] args) {
int x,y;
x=10;
y=5;
if(x>y & ++x>10) {
System.out.println("TRUE 3 x : " + x);
System.out.println("TRUE 3 y : " + y);
System.out.println("TRUE 3 : ");
}else {
System.out.println("FALSE 3");
}
}
}

 Operator prioritas

class Operator9{
public static void main(String[] args) {
int x,hasil;
x = 40;
boolean test1 = true;
hasil = test1?x/10:x*20;
System.out.println("Nilai x : "+ x);
System.out.println("Nilai Hasil : "+ hasil);
}
}
E. Tugas
 Bagaimana menukar nilai dari 2 variabel tanpa menggunakan variabel perantara
(bantu)
Praktikum :5
Judul : Pengenalan Kondisi if, switch, while, for , jump dll dlm Java
Waktu : 2 x 110 Menit

A. Tujuan Intruksional Khusus


Mahasiswa memahami penggunakan Kondisi if, switch, while, for , jump dll pada java
serta dapat menerapkannya.
B. Alat dan Bahan
 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori

 Percabangan IF
Percabangan ini hanya memiliki satu pilihan. Artinya, pilihan di dalam IF hanya
akan dikerjakan kalau kondisinya benar.

 Contoh :
D. Pelaksanaan Praktikum

class Operator8{
public static void main(String[] args) {
int x,y;
x=10;
y=5;
if(x>y & ++x>10) {
System.out.println("TRUE 3 x : " + x);
System.out.println("TRUE 3 y : " + y);
System.out.println("TRUE 3 : ");
}else {
System.out.println("FALSE 3");
}
}
}

class TestSeleksi4 {
static void main(String[] args) {
int e,f;
e = f = 6;
if(e>5) {
if(e==f)
System.out.println("if di dalam if Test Seleksi 3");
}else
System.out.println("pasangan if terluar Test Seleksi 3");
}
}
class TestSwitch1 {
public static void main(String[] args) {
int bulan = 4;
switch(bulan)
{
case 1:
System.out.println("pertama");
case 2:
System.out.println("kedua");
case 3:
System.out.println("kuartal 1");
break;
case 4:
System.out.println("keempat");
case 5:
case 6:
System.out.println("kuartal 2");
break;
case 7:
case 8:
case 9:
System.out.println("kuartal 3");
break;
default:
System.out.println("kuartal 4");
}
System.out.println("keluar dari switch");
}
}

class TestSwitch5 {
public static void main(String[] args) {
int bulan, year;
bulan = 1;
year = 2002;
switch(bulan) {
ase 1: switch(year) {
case 2002 : System.out.println("Bulan 1 tahun 2002");
break;
case 2003 : //...
}
case 2: //...
default: //default...
}
}
}

class TestIter1 {
public static void main(String[] args) {

int a = 9 ;
System.out.println("Sebelum while");
while(a>=10) {
System.out.println("Nilai a : "+a);
a--;
}
System.out.println("Setelah while");
}
}

class TestIter2 {
public static void main(String[] args) {

int b = 9 ;
System.out.println("Sebelum do");
do {
System.out.println("Nilai b : "+b);
b--;
} while (b>=10);
System.out.println("Setelah do");
}
}

class TestIter3 {
public static void main(String[] args) {
int c;
System.out.println("Sebelum for");
for(c=0;c<5;c++)
System.out.println("Nilai c: " + c);
System.out.println("Setelah for");
}
}

class TestIter4 {
public static void main(String[] args) {
int d,e;
System.out.println("Sebelum for");
for(d=0,e=6;d<=3 && e>=3;d++,e--) {
System.out.println("Nilai d : " + d);
System.out.println("Nilai e : " + e);
}
System.out.println("Setelah for");
}
}

class TestIter5 {
public static void main(String[] args) {
int g,h;
System.out.println("Sebelum for");
for(g=0,h=6;g<=3 && h>=3;g++,h--) {
System.out.println("Nilai g : " + g);
System.out.println("Nilai h : " + h);
}
System.out.println("Setelah for");

}
}
class TestIter6 {
public static void main(String[] args) {
int a = 9 ;
System.out.println("Sebelum while");
while(a>=0) {
System.out.println("Nilai a : "+a);
a--;
}
System.out.println("Setelah while");
}
}

class TestIter7 {
public static void main(String[] args) {

int b = 9 ;
System.out.println("Sebelum do");
do {
System.out.println("Nilai b : "+b);
b--;
} while (b>=0);
System.out.println("Setelah do");
}
}

class TestIter8 {
public static void main(String[] args) {
int a = 0 ;
System.out.println("Sebelum while");
while(a>0) {
System.out.println("Nilai a : "+a);
a--;
}
System.out.println("Setelah while");
}
}

class TestIter9 {
public static void main(String[] args) {

int b = 0 ;
System.out.println("Sebelum do");
do {
System.out.println("Nilai b : "+b);
b--;
} while (b>0);
System.out.println("Setelah do");
}
}

class TestBreak1 {
public static void main(String[] args) {
System.out.println("Sebelum for");
for(int a=0;a<10;a++) {
if(a==4) break;
System.out.println("Nilai a : "+ a);
}
System.out.println("Setelah for");
}
}

class TestBreak2 {
public static void main(String[] args) {
System.out.println("Sebelum for");
for(int b=1;b<3;b++) {
System.out.println("Perulangan ke "+ b);
for(int c=0;c<5;c++) {
if(c==2) break;
System.out.println("Nilai c : " + c);
}
}
System.out.println("Setelah for") ;
}
}

class TestBreak3a {
public static void main(String[] args) {
boolean status=true;
//boolean status=false;
label1: {
System.out.println("Di dalam blok code label1");
label2 : {
if(status) break label1;
System.out.println("Di dalam blok code label2");
}
System.out.println("Masih di dalam blok code label1");
}
System.out.println("Di luar blok code label1");
}
}

class TestBreak3b {
public static void main(String[] args) {
//boolean status=true;
boolean status=false;
label1: {
System.out.println("Di dalam blok code label1");
label2 : {
if(status) break label1;
System.out.println("Di dalam blok code label2");
}
System.out.println("Masih di dalam blok code label1");
}
System.out.println("Di luar blok code label1");
}
}

class TestBreak4 {
public static void main(String[] args) {
System.out.println("Sebelum for");
loop1: for(int x=1;x<3;x++) {
System.out.println("Perulangan ke " + x);
loop2: for(int y=0;y<5;y++) {
if(y==2) break loop1;
System.out.println("Nilai y : "+ y);
}
System.out.println("Dalam Loop1 ");
}
System.out.println("Setelah for");
}
}

class TestBreak5 {
public static void main(String[] args) {
loopA: for(int x =0;x<2;x++) {
System.out.println("Loop A Ke " + x);
}
loop1: for(int x=1;x<3;x++) {
System.out.println("Perulangan ke " + x);
loop2: for(int y=0;y<5;y++) {
// if (y==2) break loopA;
System.out.println("Nilai y : " + y);
}
}
System.out.println("Akhir program");
}
}

class TestContinue6 {
public static void main(String[] args) {
int x=10;
System.out.println("Sebelum while");
while(x-->1) {
if(x % 2 == 0) continue;
System.out.println("Nilai x : " + x);
}
System.out.println("Sesudah while");
}
}

class TestContinue7 {
public static void main(String[] args) {
int x=10,y;
label1: while(x-->0) {
y=0;
while(y++<10) {
if(y > x) {
System.out.println();
continue label1;
}
System.out.print(x*y + " ");
}
}
}}

class TestReturn{
public static void main(String args[]) {
boolean t = true;
System.out.println("Sebelum return");
if (t) return;
System.out.println("Setelah return");
}
}

E. Tugas
 Buatlah program untuk menghasilkan luaran sebagai berikut:
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *

 Buatlah program untuk menampilkan bilangan prima pada suatu range bilangan
Praktikum :6
Judul : Pengenalan Class , Method dan objek dlm Java
Waktu : 2 x 110 Menit

A. Tujuan Intruksional Khusus


Mahasiswa memahami menggunakan variable dan Method dalam class pada java serta
dapat menerapkannya.

B. Alat dan Bahan


 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori
 Object
o Object merupakan penggambaran computer dari segala benda di dunia atau kejadian.
o Sebuah object dapat mempunyai beberapa atribut dan method.
o Saat object diterjemahkan ke sebuah software, terdiri dari 2 bagian yaitu :
1. Private Data Structure, yang merupakan atribut dari object
2. Process,yang merupakan method atau operation dari object
o Contoh :
Object Person mempunyai atribut :

 firstName
 lastName
 height
 weight
o dan memliki beberapa method :
 setFirstName
 getFirstName
 setLastName
 getLastName
 dll
 Class
o Object yang memiliki persamaan data structure (atribut) dan method dikelompokkan
bersama menjadi sebah Class.
o Masing – masing class menggambarkan kumpulan object tersendiri. Masing – masing
object merupakan instant dari class.
o Masing – masing instant dari class memiliki nilai dari atribut sendiri tetapi memiliki
nama atibut dan methodyang sama dengan instant class yang lain.
o Nama atribut dalam sebuah class adalah unique.
D. Pelaksanaan Praktikum
 Buatlah sebuah project dengan class baru, dengan nama VolcanoRobot
 Tulislah Source Code berikut pada Code Editor class tersebut.

class VolcanoRobot {
String status;
int speed;
float temperature;
void checkTemperature(){
if (temperature > 660) {
Status = “returning bone”;
Speed = 5;
}
}
void showAtributes(){
System.out.println(“Status : “ +status);
System.out.println(“Speed : “ +speed);
System.out.println(“Temperature : “ +temperature);
}
public static void main(String[] arguments){
VolcanoRobot dante = new VolcanoRobot();
dante.status = “exploring”;
dante.speed = 2;
dante.temperature = 510;

dante.showAtributes();
System.out.println(“Increasing speed to 3”);
dante.speed = 3;
dante.showAtributes();
System.out.println(“Changing temperature to 670”);
dante.temperature = 670;
dante.showAtributes();
System.out.println(“Checking the temperature”);
dante.checkTemperature();
dante.showAtributes();
}
}

 Membuat Class di Java (Nama file : Person.java)


class Person {
private String firstName;
private String lastName;
private int height;
private double weight;
public void setFirstName(String firstName){
this.firstName = firstName;
}
public String getFirstName(){
return firstName;
}
}
 Membuat Instantance of Class in Java (Nama File : PersonTest.java)
public class PersonTest {
public static void main (String [] args){
Person p = new Person();
p.setFirstName(“Fatmawati”);
System.out.print(“FirstName: “+p.getFirstName());
}
}

E. Tugas

1. Kerjakan sesuai petunjuk di bawah ini :


a. Salin source program class Person Test pada dasar teori praktikum 1.
b. Tambahkan method – method lain yang diperlukan dalam class Person.
c. Implementasikan method – method yang Anda buat dalam class PersonTest.

2. (Project Part : Do it YourSelf )


a. Buat sebuah class Student
b. Atribute class Student terdiri dari :
 id
 name
 address
 theoryScore
 practiceScore
c. Method class Student terdiri dari :
 setId
 getId
 setName
 getName
 setAddress
 getAddress
 setTheoryScore
 getTheoryScore
 setPracticeScore
 getPracticeScore

3. (Project Part : Do it YourSelf )


a. Buat sebuah class StudentTest.
b. Implementasikan pembuatan object (instantance of class) Student dan penggunaan
method – method class Student dalam class StudentTest.
Praktikum :7
Judul : Constructor & Inputan dari Keyboard
Waktu : 2 x 110 Menit

A. Tujuan Intruksional Khusus


 Mahasiswa memahami constructor dan penggunaannya
 Mahasiswa dapat membuat program input dari keyboard.

B. Alat dan Bahan


 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori
 Constructor
o Constructor adalah method yang dipanggil pada saat pembuatan instant of class
(object).
o Jika dalam sebuah class tidak terdapat constructor maka secara otomatis Java
akan membuatkan sebuah default constructor.
o Code di dalam constructor berfungsi untuk memberikan nilai awal dari atribut
dalam sebuah object.
o Nama constructor harus persis sama dengan nama class dan tidak memiliki tipe
return value.
o Constructor juga bisa memiliki parameter yang digunakan untuk memberi nilai
awal atribut-atributnya.
o Contoh :
class Foo {
private int x;
public Foo(){
x = 1;
}
}
class Pizza {
private String name;
private int radius;
public Pizza(String n, int r){
name = n
radius = r;
}
}

o Constructor tidak bisa dipanggil secara langsung tetapi harus menggunakan new,
yaitu pada saat pembuatan instant of class.

Pizza myDinner = new Pizza(“American favourite”, 10);


 Input Data dari Keyboard
o Untuk menginputkan data dari keyboard, class yang digunakan adalah
BufferedReader.
o Untuk bisa mengakses class BufferedReader maka perlu mengimpor dari package
java.io dan menambahkan statemen throws IOException pada header method
main, penggunaannya adalah sbb :

import java.io.*;

class InputPizza {

public static void main (String [] args)throws IOException {


BufferedReader br = new BufferedReader
(new InputStreamReader(System.in));

System.out.print(“Nama Pizza : ”);


String nama = br.readLine();
System.out.print(“Radius Pizza : ”);
int rad = Integer.parseInt(br.readLine());
Pizza p = new Pizza(nama, rad);
}
}

D. Pelaksanaan Praktikum

 Kerjakan sesuai petunjuk di bawah ini :


o Tambahkan sebuah constructor berparameter dalam class Person.
o Tambahkan method idealWeight yang digunakan untuk menghitung berat ideal
dari seseorang.
o Tambahkan method isIdeal yang digunakan untuk mengecek apakah seseorang
telah memiliki berat ideal atau tidak.
o Buat class InputPersonTest dimana di dalamnya terdapat program input data
yang diperlukan untuk mengisi nilai atribut object class Person.
o Masukkan data hasil inputan tersebut ke object class person melalui constructor.
o Tampilkan data-data atribut object class Person beserta berat ideal dan berapa
kg dia harus mengurangi atau menambah berat badannya agar mencapai berat
ideal.

E. Tugas
 (Project Part : Do it YourSelf )
o Buat sebuah constructor berparameter untuk class Student.
o Tambahkan method average yang digunakan untuk menghitung nilai rata2 dari
nilai teori & praktikum dari seorang murid.
o Tambahkan method isPass yang digunakan untuk mengecek apakah seorang
Murid lulus atau tidak, dinyatakan lulus bila nilai teori dan praktikum di atas 55.
o Buat class InputStudentTest dimana didalamnya terdapat program input data yang
diperlukan untuk mengisi nilai atribut object class Student.
o Masukkan data hasil inputan tersebut ke object class Student melalui constructor.
o Tampilkan data-data atribut object class Student beserta nilai rata-rata dan
keterangan lulus atau tidak.
Praktikum :8
Judul : Overloading dan toString Method
Waktu : 2 x 110 Menit

A. Tujuan Intruksional Khusus


 Mahasiswa dapat mengerti overloading dan penggunaannya
 Mahasiswa dapat mengerti toString method dan penggunaannya

B. Alat dan Bahan


 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori
 Overloading
o Overloading adalah dua method atau lebih yang memiliki nama sama tetapi
berbeda tipe parameter atau jumlah parameter.
o Jika salah satu method dipanggil maka method yang memiliki parameter yang
sesuai yang akan dikerjakan.
o Selain pada method, overloading juga berlaku pada constructor.
 Method toString
o Method toString dapat dipanggil dengan hanya memanggil nama objectnya saja
tanpa harus menyertakan nama method ini.
o Biasanya digunakan untuk memberikan informasi dari sebuah object.

D. Pelaksanaan Praktikum

Class Book {
Public Book (String t, String a, int p){
Title = t;
Author = a;
Price = p;
Private String title;
Private Sting author;
Private String price;
}

Public Book (String t, String a){


Title = t;
Author = a;
}
Public void increasePrice(double inc){
Price = price + 1.0 * inc/100 * price;
}
Public void increasePrice(int inc){
Price = price + inc;
}
Public String toString(){
Return “Judul Buku :” + title+”/nPengarang:”+author+”/nHarga:
“+price;
}
}
Class BookTest {
Public static void main(String [] args){
Book b1 = new Book(“ABCD”,”Budi”);
Book b2 = new Book(“EFGH”,”Amir”,25000);
System.out.println(b1);
System.out.println(b2);

B1.increasePrice(2000);
B2.increasePrice(1.0);
System.out.println(b1);
System.out.println(b2);
}
}

E. Tugas

(Project Part : Do it YourSelf)


 Buatlah deklarasi dari class Account yang memiliki atribut dan method sesuai dengan
gambar di bawah ini :

Account

accountNumber

customerName

Balance

currentBalance()

processDeposit(x)

processDeposit(x,y)

processWithdraw(x)

toString()

 Atribut class Account :


o accountNumber : nomor rekening seorang nasabah
o customerName : nama nasabah
o balance : saldo
 Constructor class Account :
o Constructor dengan 2 parameter : no rekening & nama nasabah
o Constructor dengan 3 parameter : no rekening, nama nasabah, saldo
 Method class Account :
o CurrentBalance() : menghasilkan nilai saldo
o processDeposit(x) : melakukan proses penyetoran uang sebanyak x
o processDeposit(x,y) : melakukan proses penyetoran uang sebanyak x dengan
biaya administrasi sebanyak y.
o ProcessWithdraw(x) : melakukan proses pengambilan uang sebanyak x
o toString() : menghasilkan nilai accountNumber & customerName
 Buat class MyAccount yang mempunyai main method dengan tampilan sbb :

Menu : Menu : Menu :

1. Create Account (A) 1. Create Account (A) 1. Create Account (A)

2. Create Account (B) 2. Create Account (B) 2. Create Account (B)

3. Deposit (A) 3. Deposit (A) 3. Deposit (A)

4. Deposit (B) 4. Deposit (B) 4. Deposit (B)

5. Withdraw 5. Withdraw 5. Withdraw

6. Print 6. Print 6. Print

Choose : 1 Choose : 3 Choose : 5

**Creating Account** **Deposit** **Withdraw**

Account Number : 123 Balance  50000 Balance  70000

Customer Name : Adi Amount : 20000 Amount : 10000

 Menu No 2, 4, 6 Anda buat sendiri implementasinya sesuai dengan constructor


dan method yang telah Anda buat.
Praktikum :9
Judul : Inheritance
Waktu : 2 x 110 Menit

A. Tujuan Intruksional Khusus


 Mahasiswa dapat mengerti overloading dan penggunaannya
 Mahasiswa dapat mengerti toString method dan penggunaannya

B. Alat dan Bahan


 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori
 Inheritance
o Inheritance adalah salah satu fitur yang dimiliki oleh Java dimana kita bisa
mendefinisikan sebuah class baru berdasar pada class yang telah ada.
o Class baru ini akan mirip dengan class yang telah ada namun memiliki
karakteristik baru.
o Class yang digunakan sebagai dasar disebut parent class/superclass/base class.
o Class baru yang berdasar pada superclass disebut child class/subclass/derived
class.
o Dalam Java subclass hanya bisa memiliki satu superclass (single inheritance)
sedangkan superclass bisa memiliki satu subclass atau lebih.
o Untuk menyatakan bahwa sebuah subclass berdasar pada suatu superclass
digunakan statement extends.

o Keterangan dari program dibawah


Class Birthday adalah turunan dari class Card, hanya anggota class Card yang bersifat
public yang akan diturunkan pada class Birthday. Karena class Birthday tidak bisa
mengakses anggota private dari class Card maka pemberian nilai pada anggota private
bisa dilakukan lewat constructor class Card dengan menggunakan statement super.
Super selain digunakan untuk mengakses constructor superclass, bisa juga digunakan
untuk mengakses anggota superclass yang memiliki nama sama dengan anggota
subclass.Pada kedua class masing-masing terdapat method greeting() hal ini
menyebabkan greeting() milik class Card tidak terlihat pada class Birthday (method
overriding), sehingga untuk dapat mengakses greeting() yang berada di class Card
dapat digunakan statement super.greeting().
o Penggunaan di main method adalah sebagai berikut :
Card c = new Card(“Lelly”);
Birthday b = new Birthday(“Andien”, 23);
c.greeting();
b.greeting();

D. Pelaksanaan Praktikum
 Sebuah jasa persewaan VCD memiliki desain class-class seperti di bawah ini, class-
class tersebut merupakan desain dari programmer yang belum mengerti tentang
inheritance, desain ulang class-class tersebut dan gambarkan susunan class-class nya
sehingga mengikuti konsep inheritance !

Vcd Movie MusicVideo

title title title

length length length

getTitle() director artist

getLength() rating category

show() show() show()

 Penjelasan untuk atribut dan methodnya adalah sebagai berikut :


o title : judul vcd
o length : durasi vcd dalam menit
o director : nama sutradara film
o rating : rating film (1,2,dst)
o artist : nama penyanyi
o category : kategori (pop, rock, jazz, dll)
o show() : menampilkan informasi semua atribut.

 Buat class VcdRental yang berisi main method dengan input dan output sebagai
berikut

Menu : Menu :

1. Movie 1. Movie

2. VideoMusic 2. VideoMusic

3. Print Data 3. Print Data

Choose(0 for quit): 1 Choose(0 for quit): 2

Title : Jelangkung Title : Paradox

Director : Jose P Artis : Element

Rating : 4 Category : Pop

Duration : 100 Duration : 120

Menu :

1. Movie

2. VideoMusic

3. Print Data

Choose(0 for quit): 3

Title Dir/Art Duration Rating/Category

-------------------------------------------

Paradox Element 100 Pop

Jelangkung Jose P 120 4

E. Tugas
 Tambahkan data penyewa pada program tersebut
Praktikum : 10
Judul : Pewarisan, polimorfisme dan interface
Waktu : 2 x 110 Menit

A. Tujuan Intruksional Khusus


 Mahasiswa dapat mengembangkan program java dengan mengimplementasikan
konsep Pewarisan (superclass, subclass, keyword super, keyword final)
 Mahasiswa dapat mengembangkan program java dengan mengimplementasikan
konsep Polimorfisme
 Mahasiswa dapat mengembangkan program java dengan mengimplementasikan
konsep abstrac class, dan Interface

B. Alat dan Bahan


 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori
Suatu class dapat mewariskan sifat dari class yang sudah ada. Class ini dinamakan
subclass dan induk class dinamakan superclass. Kita juga akan membicarakan sifat khusus
dari Java dimana kita dapat secara otomatis memakai method yand tepat untuk setiap object
tanpa memperhatikan asal darisubclass object. Sifat ini dinamakan polimorfisme. Pada
akhirnya, kita akan mendiskusikan tentang interface yang membantu mengurangi penulisan
program.

Dalam Java, semua class, termasuk class yang membangun Java API, adalah subclasses
dari superclass Object. Contoh hirarki class diperlihatkan di bawah ini.

Beberapa class di atas class utama dalam hirarki class dikenal sebagai superclass.
Sementara beberapa class di bawah class pokok dalam hirarki class dikenal sebagai subclass
dari class tersebut.
Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu
sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari
semua subclasses. Jadi, Anda dapat menuliskan kode method hanya sekali dan mereka dapat
digunakan oleh semua subclass. Subclass hanya butuh mengimplementasikan perbedaannya
sendiri dan induknya.
Interface adalah jenis khusus dari blok yang hanya berisi method signature(atau constant
). Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh.
Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari
class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki
class, untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwa interface-
interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method
interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object
yang melewati pemanggil method interface.Sekarang, class induk Person dan subclass
Student dari contoh sebelumnya, kita tambahkan subclass lain dari Person yaitu Employee.
Di bawah ini adalah hierarkinya, Dalam Java, kita dapat membuat referensi yang
merupakan tipe dari superclass ke sebuah object dari subclass tersebut.

Kemampuan dari referensi untuk mengubah sifat menurut object apa yang dijadikan
acuan dinamakan polimorfisme. Polimorfisme menyediakan multiobject dari subclasses yang
berbeda untuk diperlakukan sebagai object dari superclass tunggal, secara otomatis menunjuk
method yang tepat untuk menggunakannya ke particular object berdasar subclass yang
termasuk di dalamnya.
Contoh lain yang menunjukkan properti polimorfisme adalah ketika kita mencoba
melalui referensi ke method. Misalkan kita punya method statis printInformation yang
mengakibatkan object Person sebagai referensi, kita dapat me-referensi dari tipe Employee
dan tipe Student ke method ini selama itu masih subclass dari class Person.
Abstract class dalam java digunakan untuk mendeklarasikan karakteristik umum dari
subclass. Abstract class tidak bisa diinstansiasi sama halnya dengan kelas interface. abstract
class hanya bisa digunakan sebagai
super class, tapi juga bisa diturunkan dari class abstract lainnya.
Untuk mendeklarasikan sebuah abstract class digunakan keyword abstract,
[abstract] class [class_name].
Sebuah abstract class pada dasarnya tidak hauh beda dengan class lainnya, yakni juga
berisi method yang menggambarkan carakteristik dari kelas abstract tersebut, bedanya yakni
sebuah abstract class bisa berisi method
tanpa diimplementasikan artinya sebuah method tanpa body, methid seperti ini disebut
method abstract. untuk pendeklarasiannya digunakan
keyword abstract: [abstract] modifier class [class_name]
D. Pelaksanaan Praktikum
 Mendefinisikan Subclass dan Superclass :
public class Person {
protected String name;
protected String address;
/**
* Default constructor
*/
public Person(){
System.out.println("Inside Person:Constructor");
name = "";
address = "";
}
/**
* Constructor dengan dua parameter
*/
public Person( String name, String address) {
this.name = name;
this.address = address;
}
/**
* Method accessor
*/
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public void setName(String name) {
this.name = name;
}
public void setAddress(String add) {
this.address = add;
}
}

public class Student extends Person{


public Student()
{
//super( "SomeName", "SomeAddress");
//super();
//super.name = "name";
System.out.println("Inside Student:Constructor");
}
public static void main( String[] args) {
Student anna = new Student();
}
}
 Hasil Percobaan 1 Output Definisi Superclass dan Subclass :

 Polimorphisme :

public class Person {


protected String name;
protected String address;
/**
* Default constructor
*/
public Person(){
System.out.println("Inside Person:Constructor");
name = "";
address = "";
}
/**
* Constructor dengan dua parameter
*/
public Person( String name, String address) {
this.name = name;
this.address = address;
}
/**
* Method accessor
*/
public String getName() {
System.out.println("Person Name : " +name);
return name;
}
public String getAddress() {
return address;
}
public void setName(String name) {
this.name = name;
}
public void setAddress(String add) {
this.address = add;
}
}
public class Student extends Person{
public Student()
{
//super( "SomeName", "SomeAddress");
//super();
//super.name = "name";
System.out.println("Inside Student:Constructor");
}
public String getName() {
System.out.println("Student Name : " +name);
return name;
}
public static void main( String[] args) {
Student anna = new Student();
}
}

public class Employee extends Person{


public String getName() {
System.out.println("Employee Name:" +name);
return name;
}
public static void main(String[] args)
{
Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();
ref = studentObject; //Person menunjuk kepada object Student
String temp = ref.getName(); //getName dari Student class
dipanggil
System.out.println(temp);
ref = employeeObject; //Person menunjuk kepada object Employee
temp = ref.getName(); //getName dari Employee class dipanggil
System.out.println(temp);
}
}
 Menampilkan Abstract Class:
abstract class Shape {

public String color;


//constractor default, constraktor yang tidak memiliki argumen dan isi
public Shape() {
}
//sama halnya dengan kelas biasa abstract class juga bisa berisi method
//seperti yang ada pada kelas biasa
public void setColor(String c) {
color = c;
}
public String getColor() {
return color;
}
//sebuah abstract method yang tidak memiliki body
//method ini akan diinisialisasi nantinya pada subclass yang mewarisi
kelass abstract Shape ini
//semua abstract method yang ada pada class abstract harus
diimplementasikan
//semua oleh subclass
abstract public double area();
}

//keyword extends adalah keyword yang digunakan oleh subclass


//ketika melakukan pewarisan terhada super class

public class Point extends Shape {

static int x, y;
public Point() {
x = 0;
y = 0;
}
public double area() {
return 0;
}
public double perimeter() {
return 0;
}
public static void print() {
System.out.println("point: " + x + "," + y);
}
public static void main(String args[]) {
Point p = new Point();
p.print();
}
}

 Output

point: 0, 0
Praktikum : 11
Judul : AWT dan SWING
Waktu : 2 x 110 Menit

A. Tujuan Intruksional Khusus


 Memahami persamaan dan perbedaan antara AWT dan Swing
 Perbedaan antara komponen dan kontainer.
 Mendesain aplikasi GUI menggunakan AWT.
 Mendesain aplikasi GUI menggunakan Swing.
 Menjelaskan tentang flow layout, border layout, dan grid layout dalam komponen
GUI
 Membuat tampilan yang komplek dalam mendesain aplikasi GUI.

B. Alat dan Bahan


 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori

Tanpa mempelajari tentang grapichal user interface (GUI) API, Anda masih tetap bisa
membuat suatu program. Tetapi, program Anda akan kelihatan tidak menarik dan tidak
nyaman digunakan bagi para user. Memiliki GUI yang baik dapat memberi efek pada
penggunaan aplikasi. Java menyediakan banyak tool seperti Abstract Windowing Toolkit dan
Swing untuk mengembangkan aplikasi GUI yang interaktif.
The Java Foundation Class (JFC), merupakan bagian penting dari Java SDK, yang
termasuk dalam koleksi dari API dimana dapat mempermudah pengembangan aplikasi JAVA
GUI. JFC termasuk diantara 5 bagian utama dari API yaitu AWT dan Swing. Tiga bagian
yang lainnya dari API adalah Java2D, Accessibility, dan Drag and Drop. Semua itu
membantu developer dalam mendesain dan mengimplementasikan aplikasi dengan visualisasi
yang lebih baik.
AWT dan Swing menyediakan komponen GUI yang dapat digunakan dalam membuat
aplikasi Java dan applet. Anda akan mempelajari applet pada bab berikutnya. Tidak seperti
beberapa komponen AWT yang menggunakan native code, keseluruhan Swing ditulis
menggunakan bahasa pemrograman Java. Swing menyediakan implementasi platform-
independent dimana aplikasi yang dikembangkan dengan platform yang berbeda dapat
memiliki tampilan yang sama. Begitu juga dengan AWT menjamin tampilan look and feel
pada aplikasi yang dijalankan pada dua mesin yang berbeda menjadi terlihat sama. Swing
API dibangun dari beberapa API yang mengimplementasikan beberapa jenis bagian dari
AWT. Kesimpulannya, komponen AWT dapat digunakan bersama dengan komponen Swing.
D. Pelaksanaan Praktikum

 Menampilkan Frame

import java.awt.Frame;
public class SampleFrame extends Frame{
public SampleFrame() {
}
public static void main(String args[]) {
SampleFrame sf = new SampleFrame();
sf.setSize(300, 300); //Coba hilangkan baris ini
sf.setVisible(true); //Coba hilangkan baris ini
}

 Menampilkan Panel :

import java.awt.Frame;
public class GraphicPanel extends Panel {
public GraphicPanel() {
setBackground(Color.black);
}
public void paint(Graphics g) {
g.setColor(new Color(0,255,0)); //green
g.setFont(new Font("Helvetica",Font.PLAIN,16));
g.drawString("Hello GUI World!", 30, 100);
g.setColor(new Color(1.0f,0,0)); //red
g.fillRect(30, 100, 150, 10);
}
public static void main(String args[]) {
Frame f = new Frame("Testing Graphics Panel");
GraphicPanel gp = new GraphicPanel();
f.add(gp);
f.setSize(600, 300);
f.setVisible(true);
}
}
 Menampilkan Frame Control :
import java.awt.*;
public class FrameWControls extends Frame{
public FrameWControls() {
}
public static void main(String args[]) {
FrameWControls fwc = new FrameWControls();
fwc.setLayout(new FlowLayout()); //more on this later
fwc.setSize(600, 600);
fwc.add(new Button("Test Me!"));
fwc.add(new Label("Labe"));
fwc.add(new TextField());
CheckboxGroup cbg = new CheckboxGroup();
fwc.add(new Checkbox("chk1", cbg, true));
fwc.add(new Checkbox("chk2", cbg, false));
fwc.add(new Checkbox("chk3", cbg, false));
List list = new List(3, false);
list.add("MTV");
list.add("V");
fwc.add(list);
Choice chooser = new Choice();
chooser.add("Avril");
chooser.add("Monica");
chooser.add("Britney");
fwc.add(chooser);
fwc.add(new Scrollbar());
fwc.setVisible(true);
}
}

 Menampilkan Flow Layout Demo:


import java.awt.*;
public class FlowLayoutDemo extends Frame{
public FlowLayoutDemo() {
}
public static void main(String args[]) {
FlowLayoutDemo fld = new FlowLayoutDemo();
fld.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 10));
fld.add(new Button("ONE"));
fld.add(new Button("TWO"));
fld.add(new Button("THREE"));
fld.setSize(100, 100);
fld.setVisible(true);
}
}
 Menampilkan Border Layout Demo:

import java.awt.*;
public class BorderLayoutDemo extends Frame{
public BorderLayoutDemo() {
}
public static void main(String args[]) {
BorderLayoutDemo bld = new BorderLayoutDemo();
bld.setLayout(new BorderLayout(10, 10)); //may remove
bld.add(new Button("NORTH"), BorderLayout.NORTH);
bld.add(new Button("SOUTH"), BorderLayout.SOUTH);
bld.add(new Button("EAST"), BorderLayout.EAST);
bld.add(new Button("WEST"), BorderLayout.WEST);
bld.add(new Button("CENTER"), BorderLayout.CENTER);
bld.setSize(200, 200);
bld.setVisible(true);
}
}

 Menampilkan Grid Layout Demo:

import java.awt.*;
public class GridLayoutDemo extends Frame {
public GridLayoutDemo() {
}
public static void main(String args[]) {
GridLayoutDemo gld = new GridLayoutDemo();
gld.setLayout(new GridLayout(2, 3, 4, 4));
gld.add(new Button("ONE"));
gld.add(new Button("TWO"));
gld.add(new Button("THREE"));
gld.add(new Button("FOUR"));
gld.add(new Button("FIVE"));
gld.setSize(200, 200);
gld.setVisible(true);
}
}

 Menampilkan Complex Layout:

import java.awt.*;
public class ComplexLayout extends Frame{
public ComplexLayout() {
}
public static void main(String args[]) {
ComplexLayout cl = new ComplexLayout();
Panel panelNorth = new Panel();
Panel panelCenter = new Panel();
Panel panelSouth = new Panel();
panelNorth.add(new Button("ONE"));
panelNorth.add(new Button("TWO"));
panelNorth.add(new Button("THREE"));
panelCenter.setLayout(new GridLayout(4,4));
panelCenter.add(new TextField("1st"));
panelCenter.add(new TextField("2nd"));
panelCenter.add(new TextField("3rd"));
panelCenter.add(new TextField("4th"));
panelSouth.setLayout(new BorderLayout());
panelSouth.add(new Checkbox("Choose me!"),
BorderLayout.CENTER);
panelSouth.add(new Checkbox("I'm here!"),
BorderLayout.EAST);
panelSouth.add(new Checkbox("Pick me!"),
BorderLayout.WEST);
cl.add(panelNorth, BorderLayout.NORTH);
cl.add(panelCenter, BorderLayout.CENTER);
cl.add(panelSouth, BorderLayout.SOUTH);
cl.setSize(300,300);
cl.setVisible(true);
}
}
 Menampilkan Swing Demo:

import java.awt.*;
import javax.swing.*;
public class SwingDemo {
JFrame frame;
JPanel panel;
JTextField textField;
JButton button;
Container contentPane;
public SwingDemo() {
}
void launchFrame() {
frame = new JFrame("My First Swing Application");
panel = new JPanel();
textField = new JTextField("Default text");
button = new JButton("Click me!");
contentPane = frame.getContentPane();
panel.add(textField);
panel.add(button);
contentPane.add(panel, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
public static void main(String args[]) {
SwingDemo sd = new SwingDemo();
sd.launchFrame();
}
}
 Menampilkan JOption Demo:
import javax.swing.*;
import java.awt.*;
public class JOptionPaneDemo {
JOptionPane optionPane;
public JOptionPaneDemo() {
}
void launchFrame() {
optionPane = new JOptionPane();
String name = optionPane.showInputDialog("Hi, what's
yourname?");
optionPane.showMessageDialog(null,"Nice to meet you, " + name
+ ".", "Greeting...",optionPane.PLAIN_MESSAGE);
System.exit(0);
}
public static void main(String args[]) {
new JOptionPaneDemo().launchFrame();
}
}
Praktikum : 12
Judul : GUI Event Handling
Waktu : 2 x 110 Menit

A. Tujuan Intruksional Khusus


 Menerangkan komponen-komponen delegation event model
 Mengerti bagaimana delegation event model bekerja
 Menciptakan aplikasi GUI yang berinteraksi dengan user
 Mendiskusikan manfaat dari class-class adapter
 Mendiskusikan keuntungan-keuntungan dari menggunakan inner dan anonymous
class

B. Alat dan Bahan


 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori
Pada modul ini, Anda akan belajar bagaimana mengendalikan events triggered ketika
user berinteraksi dengan aplikasi GUI Anda. Setelah menyelesaikan modul ini, Anda akan
dapat mengembangkan aplikasi GUI yang dapat merespon interaksi user.
Delegasi event model menguraikan bagaimana program Anda dapat merespon interaksi dari
user. Untuk memahami model, mari kita pelajari pertama-tama melalui tiga komponen
utamanya.
o Event Source
The event source mengacu pada komponen GUI yang meng-generate event. Sebagai
contoh, jika user menekan tombol, event source dalam hal ini adalah tombol.
o Event Listener/Handler
The event listener menerima berita dari event-event dan proses-proses interaksi user.
Ketika tombol ditekan, listener akan mengendalikan dengan menampilkan sebuah
informasi yang berguna untuk user.
o Event Object
Ketika sebuah event terjadi (misal, ketika user berinteraksi dengan komponen GUI),
sebuah object event diciptakan. Object berisi semua informasi yang perlu tentang event
yang telah terjadi. Informasi meliputi tipe dari event yang telah terjadi, seperti ketika
mouse telah di-klik. Ada beberapa class event untuk kategori yang berbeda dari user
action. Sebuah event object mempunyai tipe data mengenai salah satu class ini.
D. Pelaksanaan Praktikum
 PraktikumMouse Event Demo :
import java.awt.*;
import java.awt.event.*;
public class MouseEventsDemo extends Frame implements
MouseListener, MouseMotionListener {
TextField tf;
public MouseEventsDemo(String title){
super(title);
tf = new TextField(60);
addMouseListener(this);
}
public void launchFrame() {
/* Menambah komponen pada frame */
add(tf, BorderLayout.SOUTH);
setSize(300,300);
setVisible(true);
}
public void mouseClicked(MouseEvent me) {
String msg = "Mouse clicked.";
tf.setText(msg);
}
public void mouseEntered(MouseEvent me) {
String msg = "Mouse entered component.";
tf.setText(msg);
}
public void mouseExited(MouseEvent me) {
String msg = "Mouse exited component.";
tf.setText(msg);
}
public void mousePressed(MouseEvent me) {
String msg = "Mouse pressed.";
tf.setText(msg);
}
public void mouseReleased(MouseEvent me) {
String msg = "Mouse released.";
tf.setText(msg);
}
public void mouseDragged(MouseEvent me) {
String msg = "Mouse dragged at " + me.getX() + "," + me.getY();
tf.setText(msg);
}
public void mouseMoved(MouseEvent me) {
String msg = "Mouse moved at " + me.getX() + "," +
me.getY();
tf.setText(msg);
}
public static void main(String args[]) {
MouseEventsDemo med = new MouseEventsDemo("Mouse Events
Demo");
med.launchFrame();
}
}
 Close Frame :

import java.awt.*;
import java.awt.event.*;
class CloseFrame extends Frame implements WindowListener {
Label label;
CloseFrame(String title) {
super(title);
label = new Label("Close the frame.");
this.addWindowListener(this);
}
void launchFrame() {
setSize(300,300);
setVisible(true);
}
public void windowActivated(WindowEvent e) {
}
public void windowClosed(WindowEvent e) {
}
public void windowClosing(WindowEvent e) {
setVisible(false);
System.exit(0);
}
public void windowDeactivated(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowIconified(WindowEvent e) {
}
public void windowOpened(WindowEvent e) {
}
public static void main(String args[]) {
CloseFrame cf = new CloseFrame("Close Window Example");
cf.launchFrame();
}
}

 Close Frame dengan Command Listener tertentu :

import java.awt.*;
import java.awt.event.*;
class CloseFrame extends Frame{
Label label;
CFListener w = new CFListener(this);
CloseFrame(String title) {
super(title);
label = new Label("Close the frame.");
this.addWindowListener(w);
}
void launchFrame() {
setSize(300,300);
setVisible(true);
}
public static void main(String args[]) {
CloseFrame cf = new CloseFrame("Close Window Example");
cf.launchFrame();
}
}
class CFListener extends WindowAdapter{
CloseFrame ref;
CFListener( CloseFrame ref ){
this.ref = ref;
}
public void windowClosing(WindowEvent e) {
ref.dispose();
System.exit(1);
}
}
 Close Frame dengan Inner Class:

import java.awt.*;
import java.awt.event.*;
class CloseFrame extends Frame{
Label label;
CloseFrame(String title) {
super(title);
label = new Label("Close the frame.");
this.addWindowListener(new CFListener());
}
void launchFrame() {
setSize(300,300);
setVisible(true);
}
class CFListener extends WindowAdapter {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(1);
}
}
public static void main(String args[]) {
CloseFrame cf = new CloseFrame("Close Window
Example");
cf.launchFrame();
}
}

 Anonymous Inner class:

import java.awt.*;
import java.awt.event.*;
class CloseFrame extends Frame{
Label label;
CloseFrame(String title) {
super(title);
label = new Label("Close the frame.");
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
dispose();
System.exit(1);
}
});
}
void launchFrame() {
setSize(300,300);
setVisible(true);
}
public static void main(String args[]) {
CloseFrame cf = new CloseFrame("Close Window Example");
cf.launchFrame();
}
}
Praktikum : 13
Judul : Splash screen aplikasi dan Class Koneksi
Waktu : 2 x 110 Menit

A. Tujuan Intruksional Khusus


 Mahasiswa dapat mengembangkan sebuah Splash Screen untuk sebuah aplikasi
dengan menggunakan komponen-komponen Swing
 Mahasiswa dapat menghubungkan sebuah database (MySql) dengan interface java

B. Alat dan Bahan


 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori
 Jwindow berfungsi untuk membuat window yang akan menjadi latar belakang logo,
Komponen ini terdapat dalam package javax.swing. sehingga package tersebut harus
dikenalkan ke dalam program
 Jlabel berfungsi untuk membuat label yang berguna untuk menampilkan teks
 JprogressBar berfungsi untuk membuat baris progress yang dapat digunakan untuk
menunjukan progress dari sebuah loading, pada penerapannya biasanya digunakan
komponen Timer.
 Dimension berfungsi untuk mengambil ukuran layar monitor, baik panjang maupun
lebarnya.komponen tersebut juga terdapat pada package javax.swing

Membuat program yang terhubung dengan database diperlukan sebuah class


koneksi, class tersebut berisi driver dan url dimana database berada di media
penyimpanan, format driver disesuaikan dengan jenis RDBMS yang dipakai, untuk
database tertentu paket java sudah menyediakan salahsatu nya adalah MySql, berikut
contoh format umum penggunaan driver :

Class.forName(nama_driver);

 Contoh driver MySQL


Class.forName("com.mysql.jdbc.Driver");

 Sedangkan format URL, adalah lokasi dimana database disimpan, format


penulisannya sebagai berikut :
DriverManager.getConnetion(url,user,password);
 Contoh penggunaan:
DriverManager.getConnection("jdbc:mysql://localhost/pelajar","root","passwo
rd");

D. Pelaksanaan Praktikum
 Splash Screen Aplikasi
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.LineBorder;
//deklarasi class

public class SIP extends JWindow {


private Dimension
dimensi=Toolkit.getDefaultToolkit().getScreenSize();
private JLabel lblLogo=new JLabel(new
ImageIcon("Gambar/sip.jpg"));
private JProgressBar barisProgres = new JProgressBar();
private int time=0;
private Timer timer;
//deklarasi konstruktor
public SIP () {
//menyiapkan variabel warna
Color Warna = Color.blue;
//mengatur baris progress
barisProgres.setValue(0);
barisProgres.setPreferredSize(new Dimension(100,15));
barisProgres.setBackground(Color.white);
barisProgres.setForeground(Color.red);
barisProgres.setStringPainted(true);
//mengatur warna garis pinggir
barisProgres.setBorder(new LineBorder(Warna,1));
lblLogo.setBorder(new LineBorder(Warna,1));
//meletakkan objek ke kontainer
getContentPane().add(lblLogo,BorderLayout.NORTH);
getContentPane().add(barisProgres,BorderLayout.CENTER);
//mengatur lama window logo tampil pada layar monitor
timer = new Timer(50,new ActionListener(){
public void actionPerformed(ActionEvent evt){
time++;
barisProgres.setValue(time);
if(barisProgres.getPercentComplete()==1.0){
timer.stop();
setVisible(false);
//menjalankan menu utama
// new Menu_Utama();
}
}
});

timer.start();
//menempatkan objek ke memori sebelum ditampilkan
pack();
//mengatur lokasi window tepat di tengah layar monitor
setLocation(dimensi.width/2-getWidth()/2,dimensi.height/2-
getHeight()/2);
//menempaktkan window ke layar monitor\
show();
}
//deklarasi metode utama
public static void main(String args[]){
new SIP();
}
}

 Class Koneksi

import java.sql.*;
public class koneksi {
public koneksi(){
}
public Connection bukaKoneksi()throws SQLException{
Connection con=null;
try{
Class.forName("com.mysql.jdbc.Driver");
con =
DriverManager.getConnection("jdbc:mysql://localhost/pelajar",
"root", "password");
return con;
}
catch(SQLException se){
System.out.println("No Connection open");
return null;
}
catch(Exception ex){
System.out.println("Cound not open connection");
return null;
}}
}

E. Tugas
 Usulkan sebuah ide aplikasi sederhana yang didalamnya terdapat pengolahan data
 Buatlah Splash Screen dan class koneksi dari Aplikasi yang direncanakan
Praktikum : 14
Judul : Antarmuka & Manipulasi data pada database
Waktu : 2 x 110 Menit

A. Tujuan Intruksional Khusus


 Mahasiswa dapat membuat antar muka aplikasi menggunakan komponen swing
 Mahasiswa dapat mengatur letak masing masing komponen swing terhadap
Container
 Mahasiswa dapat menghubungkan aplikasi java dengan database mysql
 Mahasiswa dapat membuat program untuk menambahkan data pada database
MySQl melalui aplikasi java
 Mahasiswa dapat membuat program untuk menghapus data pada database MySQl
melalui aplikasi java
 Mahasiswa dapat membuat program untuk memperbaharui data pada database
MySQl melalui aplikasi java

B. Alat dan Bahan


 BKPM
 Komputer dengan Netbeans
 Buku Referensi Pemrograman Visual dengan Netbeans
 Buku Referensi Pemrograman Berorientasi Objek
 LCD
 ATK

C. Teori
 Graphical Object
o Container (tempat), obyek yang dapat menampung komponen grafis dan tempat
yang lebih kecil, Contoh: frames, panels
o Component, obyek grafis yang berfungsi untuk menampilkan data, menerima
masukan, atau menunjukkan suatu kondisi. Contoh: buttons, labels, text fields
o Event, obyek yang merepresentasikan suatu kejadian. Contoh: gerakan mouse,
penekanan tombol
o Listener, suatu obyek yang menunggu suatu kejadian khusus dan akan bereaksi
(melakukan sesuatu) jika kejadian tersebut terjadi
Salah satu komponen Swing yang paling sering kita gunakan dalm membuat
sebuah aplikasi (terutama aplikasi database), adalah JTable milik Swing.
Komponen yang sangat penting ini, memiliki kemampuan yang luas. baik dari segi
tampilan/interface ataupun dari segi data yang ada didalammnya.
Jtable hanya berfungsi sebagai Viewer data. artinya data yang sebenarnya
tidak disimpan didalam JTable melainkan dalam TableModel. jadi salah klo mengira
data yang kita inputkan kedalam JTable disimpan di Jtable.
dengan begitu untuk merubah, menambah, mengambil nilai yang ada di dalam JTable
yang diperlukan adalah mengubah TableModel nya saja.

D. Pelaksanaan Praktikum
 Form Input
import javax.swing.*;
import java.awt.event.*;
public class Siswa extends JFrame implements ActionListener {
private JPanel jpSiswa = new JPanel();
private JLabel lblNis = new JLabel("Nis:"),lblNama = new
JLabel("Nama:"),
lblPassword = new JLabel("Password:"),lblAlamat = new
JLabel("Alamat:"),
lblEmail = new JLabel("Email:"),lblJenisKelamin = new
JLabel("JenisKelamin:");
private JTextField txtNis = new JTextField(),txtNama = new
JTextField(),txtPassword
= new JTextField(),txtAlamat = new JTextField(),txtEmail =
new JTextField();
private JComboBox cboJenisKelamin = new JComboBox();
private JButton btnTambah = new JButton("Tambah"),btnUbah = new
JButton("Ubah"),
btnHapus = new JButton("Hapus"),btnBersih = new
JButton("Bersih");

Siswa (){
super("Entri Data MHS");
setSize(500,300);
jpSiswa.setLayout(null);

//mengatur letak objek pada container


lblNis.setBounds(15, 20, 100, 25);
lblNama.setBounds(15, 55, 100, 25);
lblPassword.setBounds(15, 90, 100, 25);
lblAlamat.setBounds(15, 125, 100, 25);
lblEmail.setBounds(15, 160, 100, 25);
lblJenisKelamin.setBounds(15, 195, 100, 25);

txtNis.setBounds(115, 20, 100, 25);


txtNama.setBounds(115, 55, 100, 25);
txtPassword.setBounds(115, 90, 100, 25);
txtAlamat.setBounds(115, 125, 150, 25);
txtEmail.setBounds(115, 160, 100, 25);
cboJenisKelamin.setBounds(115, 195, 50, 25);

btnTambah.setBounds(340, 20, 85, 25);


btnUbah.setBounds(340, 55, 85, 25);
btnHapus.setBounds(340, 90, 85, 25);
btnBersih.setBounds(340, 125, 85, 25);

//mengatur/meletakkan objek pada objek panel


jpSiswa.add(lblNis);
jpSiswa.add(lblNama);
jpSiswa.add(lblPassword);
jpSiswa.add(lblAlamat);
jpSiswa.add(lblEmail);
jpSiswa.add(lblJenisKelamin);
jpSiswa.add(txtNis);
jpSiswa.add(txtNama);
jpSiswa.add(txtPassword);
jpSiswa.add(txtAlamat);
jpSiswa.add(txtEmail);
jpSiswa.add(cboJenisKelamin);

jpSiswa.add(btnTambah);
jpSiswa.add(btnUbah);
jpSiswa.add(btnHapus);
jpSiswa.add(btnBersih);

//mengisi combo Jenis kelamin


cboJenisKelamin.addItem("L");
cboJenisKelamin.addItem("P");

//mengatur objek agar dapat berinteraksi dengan user


btnTambah.addActionListener(this);
btnUbah.addActionListener(this);
btnHapus.addActionListener(this);
btnBersih.addActionListener(this);

//menambahkan objek JPanel pada container frame


getContentPane().add(jpSiswa);

setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent ae) {
Object obj = ae.getSource();
if (obj ==btnTambah){
Tambah();
}
if (obj == btnUbah){
Ubah();
}
if (obj == btnHapus){
Hapus();
}
Bersih();
}
void Bersih(){
}
void Tambah(){
}
void Ubah(){
}
void Hapus(){
}
public static void main (String[] args){
new Siswa();
}
}
 Gunakan program java yang telah dibuat sebelumnya (class Siswa) tambahkan code
seperti dibawah ini sehingga menghasilkan keluaran yang semestinya
import java.sql.*;
. . . .
. . . .

void Bersih(){
txtNis.setText("");
txtNama.setText("");
txtPassword.setText("");
txtAlamat.setText("");
txtEmail.setText("");
cboJenisKelamin.setSelectedIndex(0);
}
void Tambah(){
try{
Koneksi ObjKoneksi = new Koneksi();
Connection con = ObjKoneksi.bukaKoneksi();
Statement st = con.createStatement();
String sql = "insert into
siswa(nis,nama,password,alamat,email," +
"jeniskelamin) values
('"+txtNis.getText()+"','"+txtNama.getText()

+"','"+txtPassword.getText()+"','"+txtAlamat.getText()+"'," +

"'"+txtEmail.getText()+"','"+cboJenisKelamin.getSelectedItem()+"')";
int row = st.executeUpdate(sql);

if (row ==1){
JOptionPane.showMessageDialog(null,"Data sudah
ditambahkan ke" +
"
database","infomasi",JOptionPane.INFORMATION_MESSAGE);

con.close();
}
}
catch(SQLException e){
JOptionPane.showMessageDialog(null,"Data tidak ditambahkan
ke" +
"
database","infomasi",JOptionPane.INFORMATION_MESSAGE);
}
}

 Tampil data

import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.table.AbstractTableModel;
/**
*
* @author root
*/
public class ResultSetTableModel extends AbstractTableModel{
private ResultSet rs;
public ResultSetTableModel(ResultSet rs) {
this.rs = rs;
}
public int getColumnCount() {
try {
if(rs == null)
return 0;
else
return rs.getMetaData().getColumnCount();
}catch(SQLException e) {
System.out.println("resultset generating error while
getting column count");
System.out.println(e.getMessage());
return 0;
}
}
public int getRowCount() {
try {
if(rs == null)
return 0;
else {
rs.last();
return rs.getRow();
}
}catch(SQLException e) {
System.out.println("resultset generating error while
getting rows count");
System.out.println(e.getMessage());
return 0;
}
}
public Object getValueAt(int rowIndex, int columnIndex) {
if(rowIndex<0 || rowIndex > getRowCount() ||
columnIndex < 0 || columnIndex > getColumnCount())
return null;
try {
if(rs == null)
return null;
else {
rs.absolute(rowIndex+1);
return rs.getObject(columnIndex+1);
}
}catch(SQLException e) {
System.out.println("resultset generating error while
fetching rows");
System.out.println(e.getMessage());
return null;
}
}
@Override
public String getColumnName(int columnIndex) {
try {
return rs.getMetaData().getColumnName(columnIndex+1);
}catch (SQLException e) {
System.out.println("resultset generating error while
fetching column name");
System.out.println(e.getMessage());
}
return super.getColumnName(columnIndex);
}
}
 Class digunakan untuk mendukung class siswa, tambahkan code berikut pada class
siswa
public class Siswa extends JFrame implements ActionListener {
private JPanel jpSiswa = new JPanel();
. . . .
. . . .

String[]
strJdl={"No","Nis","Nama","Password","Alamat","Email","Jenis
Kelamin"};

//Deklarasi untuk Tabel


JTable tabel = new JTable();
JScrollPane skrTabel = new JScrollPane();

Siswa (){
//pengaturan Tabel
skrTabel.getViewport().add(tabel);
tabel.setEnabled(true);
skrTabel.setBounds(15, 250, 470, 115);

//menambahkan tabel pada panel


jpSiswa.add(skrTabel);

//menambahkan objek JPanel pada container frame


getContentPane().add(jpSiswa);
//menampilkan tabel siswa ke komponen tabel
TampilTabel();

}
void Tambah(){
. . . .
. . . .

}
catch(SQLException e){
JOptionPane.showMessageDialog(null,"Data tidak ditambahkan
ke" +
"
database","infomasi",JOptionPane.INFORMATION_MESSAGE);
}
TampilTabel();
}
void Ubah(){
. . . .
. . . .
catch(SQLException e){
JOptionPane.showMessageDialog(null,"Data tidak
diUbah","infomasi",JOptionPane.
INFORMATION_MESSAGE);
}
TampilTabel();
}
void Hapus(){
. . . .
. . . .
catch(SQLException e){
JOptionPane.showMessageDialog(null,"Data tidak
dihapus","infomasi",JOptionPane.
INFORMATION_MESSAGE);
}
TampilTabel();
}
void TampilTabel(){
try {
Koneksi ObjKoneksi = new Koneksi();
Connection con = ObjKoneksi.bukaKoneksi();
Statement st = con.createStatement();
String sql = "SELECT * FROM siswa";
ResultSet set = st.executeQuery(sql);
//menampilkan data ke Tabel
ResultSetTableModel model = new
ResultSetTableModel(set);
tabel.setModel(model);

while(set.next()){
txtNis.setText(Integer.toString(set.getInt("nis")));
txtNama.setText(set.getString("nama"));
txtPassword.setText(set.getString("password"));
txtAlamat.setText(set.getString("alamat"));
txtEmail.setText(set.getString("email"));

cboJenisKelamin.addItem(set.getString("jeniskelamin"));
}
}
catch(SQLException e) {
System.out.println("gagal query");
}
}
 Keluaran dari program tersebut adalah :
E. Tugas
 Lanjutkan menyelesaikan aplikasi yang direncanakan hingga selesai

Anda mungkin juga menyukai