Anda di halaman 1dari 85

MODUL

PRAKTIKUM PEMROGRAMAN OBJEK

Modul 1 : Inheritance dan Polimorfisme


Modul 2 : GUI Swing
Modul 3 : Java Database

Disusun Oleh :
Maksy Sendiang,SST.,MIT
Nip.197405232002121004

Stanley Dodie,SH.,MH
Nip.198311172019031004

PROGRAM STUDI DIV - TEKNIK INFORMATIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MANADO
TAHUN 2020
LEMBAR PENGESAHAN
MODUL DALAM MATA KULIAH PRAKTIKUM PEMROGRAMAN OBJEK

Modul 1 : Inheritance dan Polimorfisme


Modul 2 : GUI Swing
Modul 3 : Java Database

Oleh :
Maksy Sendiang,SST.,MIT
Nip.197405232002121004

Stanley Dodie,SH.,MH
Nip.198311172019031004

Manado, 05 Desember 2020

Diverifikasi / divalidasi
Ketua Jurusan Sekretaris Jurusan Koordinator Program Studi D4
Teknik Elektro, Teknik Elektro, Teknik Informatika

Fanny Doringin,ST.,MT Sony Kasenda,ST.,MT Harson Kapoh,ST.,MT


NIP 196704301992031003 NIP 196804161995121001 NIP 197101011999031004

i
KATA PENGANTAR

Puji dan syukur patut dinaikkan kepada yang Maha Besar Tuhan atas anugerah dan
kasihNYA sehingga penyusunan e-modul ini boleh terselesaikan dengan baik. E-Modul ini
disusun dengan maksud untuk menjadi salah satu bahan ajar kegiatan perkuliahan mata
kuliah Praktikum Pemrograman Objek di Politeknik Negeri khususnya Program Studi
DIV Teknik Informatika.

Pada kesempatan ini perkenankan penulis mengucapkan terima kasih kepada pihak yang
telah membantu sehingga penulisan e-modul ini dapat terselesaikan dengan baik. Ucapan
terima kasih disampaikan kepada :
1. Dra.Mareyke Alelo,MBA; Pembantu direktur Bidang Akademik
2. Dr.Hedy.D. Rumambi,SE.,MM ; Kepala Pusat Penjaminan Mutu dan Buku Ajar
Politeknik Negeri Manado
3. Fanny Doringin,ST.,MT; Ketua Jurusan Teknik Elektro
4. Rekan – rekan dosen di Jurusan Teknik Elektro

Akhirnya semoga kehadiran e-modul ini akan memberikan nilai tambah dalam upaya
meningkatkan mutu kegiatan akademik di Politeknik Negeri Manado. Saran dari para
pembaca untuk kesempurnaan buku ajar sangat diharapkan dan mari kita terus berkarya di
bidang pendidikan untuk kejayaan tanah air tercinta.

Desember, 2020
Penulis

DAFTAR ISI
PETA KEDUDUKAN MODUL........................................................................................vi
ii
BAB I PENDAHULUAN..................................................................................................1
Deskripsi Mata Kuliah dan Modul.....................................................................................1
Analisis Kebutuhan Modul.................................................................................................1
Capaian Pembelajaran Modul............................................................................................2
BAB II PEMBELAJARAN MODUL 1 : INHERITANCE DAN POLIMORFISME.5
Kegiatan Belajar 1 : Inheritance........................................................................................5
Tujuan Pembelajaran..........................................................................................................5
Uraian Materi.....................................................................................................................5
Inheritance (Pewarisan)......................................................................................................5
Tipe Inheritance di Java.....................................................................................................7
Multilevel Inheritance.......................................................................................................8
Hierarchical Inheritance....................................................................................................8
Agregasi............................................................................................................................10
Keyword Super.................................................................................................................12
Kegiatan Belajar 2 : Polimorfisme..................................................................................24
Tujuan Pembelajaran........................................................................................................24
Uraian Materi...................................................................................................................24
Overloading Method.........................................................................................................24
Overriding Method...........................................................................................................26
Polimorfisme....................................................................................................................29
Upcasting..........................................................................................................................29
Run-time Polimorfisme....................................................................................................29
Tugas................................................................................................................................30
Lembar Kerja Praktikum..................................................................................................30
BAB III PEMBELAJARAN MODUL 2 : GUI SWING..............................................32
Kegiatan Belajar 1 : Java Swing......................................................................................32
Tujuan Pembelajaran........................................................................................................32
Uraian Materi...................................................................................................................32
Pengantar JAVA GUI.......................................................................................................32
Komponen Dasar User Interface dengan Swing..............................................................34
Penggunaan top level container........................................................................................35
Java JButton.....................................................................................................................37
Java Label.........................................................................................................................38

iii
Java JTextField.................................................................................................................40
Java JTextArea.................................................................................................................42
Java JPasswordField.........................................................................................................43
Java JCheckBox...............................................................................................................44
Java JRadioButton............................................................................................................45
Membuat GUI di Netbeans...............................................................................................46
Tugas................................................................................................................................48
Lembar Kerja Praktikum..................................................................................................48
Kegiatan Belajar 2 : Event Handling...............................................................................50
Tujuan Pembelajaran........................................................................................................50
Uraian Materi...................................................................................................................50
Delegation Event Model...................................................................................................50
Class – Class Event..........................................................................................................51
Event Listener...................................................................................................................52
Petunjuk Menggunakan Aplikasi GUI Handling.............................................................53
Tugas................................................................................................................................54
Lembar Kerja Praktikum..................................................................................................54
BAB IV PEMBELAJARAN MODUL 3 : JAVA DATABASE.....................................57
Kegiatan Belajar 1 : JDBC..............................................................................................57
Tujuan Pembelajaran........................................................................................................57
Uraian Materi...................................................................................................................57
Pengertian JDBC..............................................................................................................57
JDBC Driver.....................................................................................................................58
Koneksi JDBC..................................................................................................................60
Kegiatan Belajar 2 : JDBC..............................................................................................62
Tujuan Pembelajaran........................................................................................................62
Uraian Materi...................................................................................................................62
Java Database Connectivity dengan Oracle.....................................................................62
Java Database Connectivity dengan MySQL...................................................................64
Java Database Connectivity dengan Ms.Access...............................................................65
DriverManager Class, Connection Interface dan Statement Interface.............................66
ResutlSet Interface...........................................................................................................68
PreparedStatement interface.............................................................................................69

iv
Tugas................................................................................................................................71
Lembar Kerja Praktikum..................................................................................................71
BAB V EVALUASI............................................................................................................72

PETA KEDUDUKAN MODUL


Pada Mata Kuliah : PRAKTIKUM PEMROGRAMAN OBJEK

Tipe v
Inheritance
Inheritance

Modul 1 Single dan


Lingkungan Multilevel
Agregasi

Keyword
Super

Polimorfisme
Modul 2
Overloading
Method

Javax Swing Overriding


Method

Event Handling

Upcasting

JDBC
Runtime
Polimorfisme
Java App
Database

Java
GUI,komponen,
container

Ciri,penggunaan
event,aplikasi di
netbeans

vi
BAB I PENDAHULUAN

Deskripsi Mata Kuliah dan Modul


Mata kuliah ini mengajarkan teknik pemrograman menggunakan metode berorientasi
objek. Metode berorientasi objek (OOP) memodelkan sistem yang ada atas objek - objek
baik real maupun abstrak. Objek pada dasarnya adalah instantiasi/contoh dari sebuah class
dan class sendiri adalah template dari sebuah objek. Konsep - konsep penting OOP yang
meliputi enkapsulasi, inheritance dan polimorfisme diajarkan baik teori maupun praktikum
dalam mata kuliah ini. Kontent java database diberikan penekanan khusus dengan maksud
agar para mahasiswa dapat membangun aplikasi java berbasis database. Untuk praktikum
sendiri digunakan bahasa JAVA sebagai salah satu bahasa pemrograman yang mendukung
konsep berorientasi objek.
Hasil belajar yang akan diperoleh mahasiswa setelah mempelajari modul ini adalah
memiliki kemampuan dalam mengembangkan aplikasi berorientasi objek dengan
menggunakan bahasa pemrograman Java. Hal ini sejalan dengan capaian pembelajaran
Program Studi DIII Teknik Komputer yaitu dihasilkannya lulusan yang kompeten
dibidang pengembangan perangkat lunak

Analisis Kebutuhan Modul


Unsur capaian kompetensi
Kompetensi spesifik mata kuliah Judul Modul
Topi spesifik
Perte
k di Kompet
muan Kompeten Kompeten Ketrampilan
RPS ensi Pengetahuan
si Antara si Utama & sikap
Dasar
Pengertian Praktikum
9 9 dan jenis inheritance
inheritance
Agregation, Praktikum
Inheritance overloading agregasi,
10 10 & dan overriding overloading Inheritance dan
Polimorfis method dan overiding Polimorfisme
me method
Compile time Praktikum
Polimorfisme polimorfisme
11 11
dan Run Time
Polimorfisme
Java Pengantar Java Swing
Swing & java
Praktikum java
Event GUI,kompone
GUI, GUI
12 12 Handling n dasar UI,
Komponen,
top level
Netbeans GUI
container,
Netbeans GUI
13 13 Java GUI Delegation Praktikum

1
Unsur capaian kompetensi
Kompetensi spesifik mata kuliah Judul Modul
Topi spesifik
Perte
k di Kompet
muan Kompeten Kompeten Ketrampilan
RPS ensi Pengetahuan
si Antara si Utama & sikap
Dasar
EM, Class
Delegation
Event, Event
EM, praktikum
Listener,
Class Event,
Petunjuk
Praktikum
menggunakan
Event Listener
GUI
JDBC, JDBC Praktikum java
14 14 JDBC
Driver Connectivity
JDBC API,
Praktikum java JAVA Databse
Java app Java Java Database
15 15 database
database Database Class dan
CRUD
Interface

Capaian Pembelajaran Modul


Modul 1 : Inheritance dan Polimorfisme
Konsep berorientasi objek memiliki karekteristik dan terminologi yang perlu dipahami
dan dipraktekkan sebagai kunci keberhasilan membangun sistem yang lebih besar. Konsep
Inheritance dan Polimorfisme memegang peranan penting dalam menciptakan apa yang
disebut dengan Reusable Code. Konsep ini akan sangat membantu dalam membangun dan
merawat sistem karena memberikan kemudahan dan pendefinisian yang jelas.
Diakhir pembelajaran ini diharapkan :
 Mahasiswa mampu menggunakan konsep berorientasi objek meliputi
class,object,method,constructor
 Mahasiswa mampu menggunakan inheritance di java
 Mahasiswa mampu menggunakan polimorfisme dijava

Model II : Konsep Berorientasi Objek


Java GUI menjamin aplikasi yang dibangun akan bersifat user – friendly sehingga
menjamin efisiensi dan efektifitasnya. Pemahaman atas Java GUI diawali dengan
memahami package javax.Swing yang berisikan berbagai class untuk membangun aplikasi
GUI, pemahaman atas container dan java layout. Komponen GUI ditata dalam layout
sesuai peruntukannya. Agar aplikasi java GUI bersifat dinamis dan responsif maka
penggunaan event handling diberikan pada komponen GUI seperti Button, Jcombo, List
Button dan lainnya dengan memahami konsep event dan event listener.
Diakhir pembelajaran ini diharapkan :
 Mahasiswa mampu menggunakan JAVA GUI
2
 Mahasiswa memahami terminologi Java GUI
 Mahasiswa mampu membuat interface yang user-friendly
 Mahasiswa mampu menggunakan event handling

Modul III : Java Database


Java Database menitikberatkan pada penggunaan JDBC API dalam membangun
aplikasi Java yang terhubung ke database. JDBC API membutuhkan database driver yang
sesuai dengan vendor database yang digunakan agar koneksi dengan database tertentu
dapat tercipta. Pemahaman terhadap class, interface yang diperlukan diberikan penekanan
sehingga diharapkan mahasiswa akan mambu membangun aplikasi database berbasis
teknologi java
Diakhir pembelajaran ini diharapkan :
 Mahasiswa mampu menggunakan JAVA database connectivity (JDBC) API
 Mahasiswa memahami java database driver dari masing masing database vendor
 Mahasiswa mampu menggunakan database interface untuk membangun aplikasi
java database
 Mahasiswa mampu mendemonstrasikan pemngembangan aplikasi database CRUD

Petunjuk Penggunaan Modul


Untuk keberhasilan dalam proses pembelajaran menggunakan modul ini, maka langkah –
langkah yang harus dilakukan :
1. Pelajari modul sesuai urutannya
2. Sebelum tatap muka baca modul, dan tandai bagian yang butuh penjelasan pengajar
secara lebih mendetail
3. Kerjakan semua kegiatan praktikum yang diberikan termasuk tugas yang ada
disetiap modul
4. Minta feedback pengajar atas soal yang dikerjakan
5. Perbaiki pekerjaan,praktikum dan soal yang diberikan komentar oleh pengajar
6. Lakukan latihan secara berulang – ulang
Fasilitas yang dibutuhkan untuk kebutuhan pembelajaran ini meliputi :
1. PC atau Laptop dengan spesifikasi memory minimal 2GB
2. Koneksi internet
3. Java SDK

3
4. Netbeans

BAB II PEMBELAJARAN MODUL 1 : INHERITANCE DAN POLIMORFISME

4
Kegiatan Belajar 1 : Inheritance
Tujuan Pembelajaran
1. Praktikan memahami konsep Inheritance
2. Praktikan dapat menggunakan inheritance dalam pengembangan aplikasi
berbasis objek

Uraian Materi
Inheritance (Pewarisan)
Pewarisan di Java adalah mekanisme di mana satu objek memperoleh semua
properti dan perilaku objek induk. Ini adalah bagian penting dari sistem pemrograman
Berorientasi Objek. Ide di balik pewarisan di Java adalah bahwa kita dapat membuat kelas
baru yang dibangun di atas kelas yang sudah ada. Saat Anda mewarisi dari kelas yang ada,
Anda dapat menggunakan kembali method dan fields dari kelas induk. Selain itu, Anda
juga dapat menambahkan method dan fields baru di kelas Anda saat ini. Pewarisan
mewakili hubungan IS-A yang juga dikenal sebagai hubungan induk-anak.
Inheritance merupakan proses pewarisan data dan method dari suatu class yang
telah ada kepada suatu class baru. Class yang mewariskan disebut dengan superclass /
parent class / base class, sedangkan class yang mewarisi (class yang baru) disebut dengan
subclass / child class / derived class. Akan tetapi subclass tidak dapat mewarisi anggota
private dari superclass-nya.
Dengan inheritance, class yang baru (subclass) akan mirip dengan class yang lama
(superclass), namun memiliki karakteristik yang baru. Dalam Java, subclass hanya bisa
memiliki satu superclass (single inheritance) sedangkan superclass bisa memiliki satu
sublass atau lebih. Setidaknya ada dua alasan mengapa menggunakan inheritance dalam
pemrograman berorientasi objek, yaitu untuk method overiding dan code reusebility.
Untuk menerapkan inheritance, digunakan statement “extends”.

namaSubclass extends namaSuperclass

..................... //definisi class

Kata kunci extends menunjukkan bahwa Anda membuat kelas baru yang berasal dari kelas
yang sudah ada. Arti "meluas" adalah meningkatkan fungsionalitas. Dalam terminologi
5
Java, kelas yang diturunkan disebut induk atau superkelas, dan kelas baru disebut anak
atau subkelas. Bila digambarkan dalam Unified Modelling Language maka simbol
inheritance adalah seperti berikut ini :

Seperti yang ditampilkan pada gambar di atas, Programmer adalah subclass dan Employee
adalah superclass. Hubungan antara kedua kelas adalah Programmer IS-A Employee.
Artinya Programmer adalah tipe Employee.
class Employee
{
float salary=40000;
}

class Programmer extends Employee


{
int bonus=10000;
public static void main(String args[])
{
Programmer p=new Programmer();
System.out.println("Programmer salary is:"+p.salary);
System.out.println("Bonus of Programmer
is:"+p.bonus);
}
}

Tipe Inheritance di Java


Berdasarkan kelas, ada tiga jenis pewarisan di java yaitu tunggal, bertingkat, dan
hierarki. Dalam pemrograman java, pewarisan ganda (multiple inheritance) dapat
dilakukan dengan menggunakan interface.

6
Ketika sebuah kelas mewarisi kelas lain, itu dikenal sebagai pewarisan tunggal. Dalam
contoh yang diberikan di bawah ini, kelas Dog mewarisi kelas Animal, jadi ada satu
pewarisan.
class Animal
{
void eat(){System.out.println("eating...");}
}

class Dog extends Animal


{
void bark(){System.out.println("barking...");}
}

class TestInheritance
{
public static void main(String args[])
{
Dog d=new Dog();
d.bark();
d.eat();
}
}

Multilevel Inheritance
Ketika ada rantai pewarisan, itu dikenal sebagai pewarisan bertingkat. Seperti yang
Anda lihat pada contoh yang diberikan di bawah ini, kelas BabyDog mewarisi kelas Dog
yang mewarisi kelas Animal, jadi ada warisan bertingkat.
7
class Animal
{
void eat()
{
System.out.println("eating...");
}
}

class Dog extends Animal


{
void bark()
{
System.out.println("barking...");
}
}

class BabyDog extends Dog


{
void weep()
{
System.out.println("weeping...");
}
}

class TestInheritance2
{
public static void main(String args[])
{
BabyDog d=new BabyDog();
d.weep();
d.bark();
d.eat();
}
}

Hierarchical Inheritance
Ketika dua atau lebih kelas mewarisi satu kelas, itu dikenal sebagai pewarisan
hierarkis. Dalam contoh yang diberikan di bawah ini, kelas Dog dan Cat mewarisi kelas
Animal, jadi ada pewarisan hierarkis.
class Animal
{
void eat()
{
System.out.println("eating...");
}
}

class Dog extends Animal


{
8
void bark()
{
System.out.println("barking...");
}
}

class Cat extends Animal


{
void meow()
{
System.out.println("meowing...");
}
}

class TestInheritance3
{
public static void main(String args[])
{
Cat c=new Cat();
c.meow();
c.eat();
}
}

Untuk mengurangi kerumitan dan menyederhanakan bahasa, multiple inheritance


tidak didukung di java. Pertimbangkan skenario di mana A, B, dan C adalah tiga kelas.
Kelas C mewarisi kelas A dan B. Jika kelas A dan B memiliki metode yang sama dan kita
memanggilnya dari objek kelas anak, maka akan ada ambiguitas untuk memanggil metode
kelas A atau B. Karena compile-time error lebih baik daripada run-time error, Java
menampilkan compile-time error jika kita mewarisi 2 kelas. Jadi, apakah kita memiliki
metode yang sama atau berbeda, akan ada kesalahan waktu kompilasi.
class A
{
void msg()
{
System.out.println("Hello");
}
}
class B
{
void msg()
{
System.out.println("Welcome");
}
}

class C extends A,B


9
{

public static void main(String args[])


{
C obj=new C();
obj.msg();
}
}

Agregasi
Jika kelas memiliki referensi entitas, itu dikenal sebagai Agregasi. Agregasi
merepresentasikan hubungan HAS-A. Perhatikan kondisi ini , Objek Employee berisi
banyak informasi seperti id, nama, emailId dll. Berisi satu lagi objek bernama address,
yang berisi informasi tersendiri seperti city, stete, country, pos code dll seperti yang
diberikan di bawah ini.
class Employee

int id;

String name;

Address address;//Address is a class

...

Dalam kasus seperti itu, Employee memiliki referensi entitas yaitu address, jadi
hubungannya adalah Employee HAS-A Address. Contoh lain dari agregasi dapat dilihat
pada gambar berikut ini :

Dalam contoh ini, kita membuat referensi kelas Operation di kelas Circle.
10
class Operation
{
int square(int n)
{
return n*n;
}
}

class Circle{
Operation op;//aggregation
double pi=3.14;

double area(int radius)


{
op=new Operation();
int rsquare=op.square(radius);//code reusability
return pi*rsquare;
}

public static void main(String args[])


{
Circle c=new Circle();
double result=c.area(5);
System.out.println(result);
}
}

Perhatikan pula contoh berikut untuk hubungan Employee HAS-A address

public class Emp


{
int id;
String name;
Address address;

public Emp(int id, String name,Address address)


{
this.id = id;
this.name = name;
this.address=address;
}

void display()
{
System.out.println(id+" "+name);
System.out.println(address.city+" "+address.state+"
"+address.country);
}

public static void main(String[] args)


{
11
Address address1=new
Address("Manado","SULUT","Indonesia");
Address address2=new Address("Dili","Leste","Timor
Leste");

Emp e=new Emp(111,"Ferdinand",address1);


Emp e2=new Emp(112,"Harson",address2);

e.display();
e2.display();

}
}

public class Address


{
String city,state,country;
public Address(String city, String state, String
country)
{
this.city = city;
this.state = state;
this.country = country;
}

Keyword Super
Kata kunci super di Java adalah variabel referensi yang digunakan untuk merujuk
langsung objek kelas induk. Setiap kali kita membuat instance subclass, instance kelas
induk dibuat secara implisit yang dirujuk oleh variabel referensi super. Keyword Super
dapat digunakan untuk
1. Menunjuk pada instance variabel dari parent class
Kita dapat menggunakan kata kunci super untuk mengakses instance variable dari
kelas induk. Ini digunakan jika kelas induk dan kelas anak memiliki field yang sama.
Lihat contoh berikut

class Animal
{
String color="white";
}
class Dog extends Animal
{

12
String color="black";
void printColor()
{
System.out.println(color);
System.out.println(super.color);
}
}

class TestSuper1
{
public static void main(String args[])
{
Dog d=new Dog();
d.printColor();
}
}

Dalam contoh di atas, Animal dan Dog kedua kelas memiliki properti color yang
sama. Jika kita mencetak properti color, itu akan mencetak color kelas saat ini secara
default. Untuk mengakses properti induk, kita perlu menggunakan kata kunci super.

2. Memanggil method dari parent class


Kata kunci super juga dapat digunakan untuk memanggil method kelas induk. Ini
harus digunakan jika subclass berisi method yang sama dengan kelas induk. Dengan
kata lain, ini digunakan jika method dioverriding. Perhatikan contoh berikut ini
class Animal
{
void eat()
{
System.out.println("eating...");
}
}
class Dog extends Animal
{
void eat()
{
System.out.println("eating bread...");
}
void bark()
{
System.out.println("barking...");
}
void work()
{
super.eat();
bark();
13
}
}
class TestSuper2
{
public static void main(String args[])
{
Dog d=new Dog();
d.work();

}
}

Dalam contoh di atas, Animal dan Dog kedua kelas memiliki method eat () jika kita
memanggil metode eat () dari kelas Dog, itu akan memanggil metode eat () kelas Dog
secara default karena prioritas diberikan ke lokal. Untuk memanggil method kelas
induk, kita perlu menggunakan kata kunci super.

3. Memanggil constructor dari parent class. Perhatikan contoh berikut


class Animal
{
Animal()
{
System.out.println("animal is created");
}
}
class Dog extends Animal
{
Dog()
{
super();
System.out.println("dog is created");
}
}

class TestSuper3
{
public static void main(String args[])
{
Dog d=new Dog();
}
}

Berikut ini adalah contoh penggunaan sebenarnya dari kata kunci super. Di sini,
kelas Emp mewarisi kelas Person sehingga semua properti Person akan diwarisi ke Emp
secara default. Untuk menginisialisasi semua properti, kita menggunakan konstruktor kelas

14
induk dari kelas anak. Dengan cara seperti itu, kita menggunakan kembali konstruktor
kelas induk.
class Person
{
int id;
String name;
Person(int id,String name)
{
this.id=id;
this.name=name;

}
}

class Emp extends Person


{
float salary;
Emp(int id,String name,float salary)
{
super(id,name);//reusing parent constructor
this.salary=salary;
}
void display()
{
System.out.println(id+" "+name+" "+salary);
}
}

class TestSuper5
{
public static void main(String[] args)
{
Emp e1=new Emp(1,"Maksy Sendiang",45000);
e1.display();
}
}

Keyword This
Ada banyak penggunaan keyword this. Di java, this adalah variabel referensi yang
mengacu pada objek saat ini. Kata kunci “this” sangat berguna untuk menunjukkan suatu
member dalam class-nya sendiri. Kata kunci “this” dapat digunakan untuk data member,
untuk method, dan untuk konstruktor.

15
Adapun penggunaan Keyword this adalah sebagai berikut :

1. Menunjuk pada current instance variable, perhatikan contoh berikut

class Student
{
int rollno;
String name;
float fee;
Student(int rollno,String name,float fee)
{
this.rollno=rollno;
this.name=name;
this.fee=fee;
}
void display()
{
System.out.println(rollno+" "+name+" "+fee);
}
}

class TestThis2
{
public static void main(String args[])
{
Student s1=new Student(111,"ankit",5000f);
Student s2=new Student(112,"sumit",6000f);
s1.display();
s2.display();
}
}
2. Menginvoke current class method

Kita dapat memanggil current class method dengan menggunakan kata kunci this.
Jika kita tidak menggunakan kata kunci this, compilersecara otomatis menambahkan
kata kunci ini saat menjalankan metode. Mari kita lihat contohnya
class A
{
void m()
{
System.out.println("hello m");
}
void n()
{
16
System.out.println("hello n");
//m();//same as this.m()
this.m();
}
}

class TestThis4
{
public static void main(String args[])
{
A a=new A();
a.n();
}
}

3. Menginvoke current class constructor

Penggunaan this pada konstruktor dapat digunakan untuk memanggil konstruktor kelas
saat ini. Ini digunakan untuk menggunakan kembali konstruktor.
class A
{
A()
{
System.out.println("hello a");
}
A(int x)
{
this();
System.out.println(x);
}
}

class TestThis5
{
public static void main(String args[])
{
A a=new A(10);
}
}

class A
{
A()
{
this(5);
System.out.println("hello a");
}
A(int x)
17
{
System.out.println(x);
}
}

class TestThis6
{
public static void main(String args[])
{
A a=new A();
}
}

Konstruktor this () dapat digunakan untuk menggunakan kembali konstruktor dari


konstruktor. Ini mempertahankan hubungan antara konstruktor yaitu digunakan untuk
rangkaian konstruktor. Kita lihat contoh yang diberikan di bawah ini yang menampilkan
penggunaan sebenarnya dari kata kunci ini.
class Student
{
int rollno;
String name,course;
float fee;
Student(int rollno,String name,String course)
{
this.rollno=rollno;
this.name=name;
this.course=course;
}
Student(int rollno,String name,String course,float
fee)
{
this(rollno,name,course);//reusing constructor
this.fee=fee;
}
void display()
{
System.out.println(rollno+" "+name+"
"+course+" "+fee);
}
}

class TestThis7
{
public static void main(String args[])
{
Student s1=new Student(111,"James","java");
Student s2=new
Student(112,"Frangki","java",6000f);
18
s1.display();
s2.display();
}
}

Tugas
1. Buatlah superclass dengan nama Hewan yang memiliki method .setNama ( ),
setSuara ( ) dan setBerat( ). Method – method ini masing – masing akan mengeset
nilai nama dengan “tidak bernama” dan setSuara ( ) dengan “tidak bersuara” serta
setBerat ( ) = 0 sebagai nilai defaultnya.
2. Buatlah 2 class turunan masing masing dengan nama Kucing dan Singa. Class –
class ini akan memberikan memberikan value pada masing – masing method
superclassnya.
3. Buatlah main method untuk memanggil class dan method baik pada superclass
maupun subclass

Lembar Kerja Praktikum


 Alat dan Bahan
o Personal Computer (PC) / Laptop
o Text Editor dan Java IDE (Netbeans)
o Internet
 Petunjuk Keselamatan Kerja
o Pastikan tegangan listrik yang digunakan stabil
o Pastikan temperatur ruangan sesuai standart keselamatan kerja
o Pastikan lingkungan tempat kerja bersih, dengan lalu lintas udara yang terjamin
Langkah Kerja

o Perhatikan UML diagram berikut ini

19
o Buka Netbeans dan buatlah package baru bernama inheritance di dalam Source
Packages.

o Isi nama package dengan inheritance

o Berikutnya buatlah class-class baru berdasarkan diagram di atas.

File: inheritance/BangunDatar.java
package inheritance;
public class BangunDatar
20
{
float luas(){
System.out.println("Menghitung laus bangun datar");
return 0;
}

float keliling(){
System.out.println("Menghitung keliling bangun datar");
return 0;
}

File: inheritance/Persegi.java
package inheritance;
public class Persegi extends BangunDatar
{
float sisi;
}

File: inheritance/Lingkaran.java
package inheritance;
public class Lingkaran extends BangunDatar{

// jari-jari lingkaran
float r;
}

File: inheritance/PersegiPanjang.java
package inheritance;
public class PersegiPanjang extends BangunDatar {
float panjang;
float lebar;
}

File: inheritance/Segitiga.java
package inheritance;

public class Segitiga extends BangunDatar {

float alas;
float tinggi;

File: inheritance/Main.java
package inheritance;

public class Main {


public static void main(String[] args) {

// membuat objek bangun datar


BangunDatar bangunDatar = new BangunDatar();

21
// membuat objek persegi dan mengisi nilai properti
Persegi persegi = new Persegi();
persegi.sisi = 2;

// membuat objek Lingkaran dan mengisi nilai properti


Lingkaran lingkaran = new Lingkaran();
lingkaran.r = 22;

// membuat objek Persegi Panjang dan mengisi nilai


properti
PersegiPanjang persegiPanjang = new PersegiPanjang();
persegiPanjang.panjang = 8;
persegiPanjang.lebar = 4;

// membuat objek Segitiga dan mengisi nilai properti


Segitiga mSegitiga = new Segitiga();
mSegitiga.alas = 12;
mSegitiga.tinggi = 8;

// memanggil method luas dan keliling


bangunDatar.luas();
bangunDatar.keliling();

persegi.luas();
persegi.keliling();

lingkaran.luas();
lingkaran.keliling();

persegiPanjang.luas();
persegiPanjang.keliling();

mSegitiga.luas();
mSegitiga.keliling();
}
}
o Jalankan class Main.java
o Buat overriding method di class persegi.java dengan menambah anotasi @Override di
atas nama method atau sebelum pembuatan method.
Package inheritance;
class Persegi extends BangunDatar {
float sisi;

@Override
float luas(){
float luas = sisi * sisi;
System.out.println("Luas Persegi: " + luas);
return luas;
}

@Override
float keliling(){
22
float keliling = 4 * sisi;
System.out.println("Keliling Persegi: " + keliling);
return keliling;
}
}
o Buat overriding method untuk class lainnya

package inheritance;
public class Lingkaran extends BangunDatar{

// jari-jari lingkaran
float r;

@Override
float luas(){
float luas = (float) (Math.PI * r * r);
System.out.println("Luas lingkaran: " + luas);
return luas;
}

@Override
float keliling(){
float keliling = (float) (2 * Math.PI * r);
System.out.println("Keliling Lingkaran: " + keliling);
return keliling;
}

package inheritance;
public class PersegiPanjang extends BangunDatar {
float panjang;
float lebar;

@Override
float luas(){
float luas = panjang * lebar;
System.out.println("Luas Persegi Panjang:" + luas);
return luas;
}

@Override
float keliling(){
float kll = 2*panjang + 2*lebar;
System.out.println("Keliling Persegi Panjang: " + kll);
return kll;
}
}
o Simpan dan jalankan program

23
Kegiatan Belajar 2 : Polimorfisme
Tujuan Pembelajaran
1. Praktikan memahami konsep polimorfisme
2. Praktikan dapat menggunakan polimorfisme dalam pengembangan aplikasi
berbasis objek

Uraian Materi
Overloading Method
Jika kelas memiliki beberapa metode yang memiliki nama yang sama tetapi
berbeda dalam parameter, maka itu dikenal sebagai Metode Overloading.Jika kita harus
melakukan hanya satu operasi, memiliki nama metode yang sama akan meningkatkan
keterbacaan program. Misalkan kita harus melakukan penambahan bilangan yang
diberikan tetapi bisa ada sejumlah argumen, jika kita menulis metode seperti a (int, int)
untuk dua parameter, dan b (int, int, int) untuk tiga parameter maka itu mungkin sulit bagi
kita dan programmer lain untuk memahami perilaku metode karena namanya berbeda.
Untuk itulah diperlukan apa yang disebut dengan overloading method.
Overloading method meningkatkan keterbacaan program dan setidaknya ada dua
cara untuk melakukan overloading method yaitu
1. Dengan mengubah jumlah argumen dari method
Dalam contoh berikut ini, kita membuat dua metode, metode add () melakukan
penambahan dua angka dan metode add kedua melakukan penambahan tiga angka. Kita
membuat metode statis sehingga tidak perlu membuat instance untuk memanggil metode
class Adder
{
static int add(int a,int b)
{
return a+b;
}
static int add(int a,int b,int c)
{
return a+b+c;
}
}

class TestOverloading1
{
public static void main(String[] args)
{
System.out.println(Adder.add(11,11));
System.out.println(Adder.add(11,11,11));
}
24
}

2. Mengubah data type.


Pada contoh berikut kita membuat dua metode yang berbeda dalam tipe datanya. Metode
penambahan pertama menerima dua argumen integer dan metode penambahan kedua
menerima dua argumen bertipe double.
class Adder
{
static int add(int a, int b)
{
return a+b;
}
static double add(double a, double b)
{
return a+b;
}
}
class TestOverloading2
{
public static void main(String[] args)
{
System.out.println(Adder.add(11,11));
System.out.println(Adder.add(12.3,12.6));
}
}

Di java, overloading metode tidak dimungkinkan dengan mengubah tipe return type karena
menyebabkan ambiguitas. Mari kita lihat bagaimana ambiguitas dapat terjadi:
class Adder
{
static int add(int a,int b)
{
return a+b;
}
static double add(int a,int b)
{
return a+b;
}
}
class TestOverloading3
{
public static void main(String[] args)
{
System.out.println(Adder.add(11,11));//ambiguity
}
}

Kita dapat memiliki sejumlah main method di java class dengan metode overloading.

25
Tetapi JVM memanggil metode main () yang menerima array String sebagai argumen saja.
Lihat contoh berikut :
class TestOverloading4
{
public static void main(String[] args)
{
System.out.println("main with String[]");
}
public static void main(String args)
{
System.out.println("main with String");
}
public static void main()
{
System.out.println("main without args");
}
}

Output dari program diatas adalah main with String[ ].

Overriding Method
Jika subclass (kelas anak) memiliki metode yang sama seperti yang dideklarasikan di
kelas induk, itu dikenal sebagai overriding method di Java. Dengan kata lain, subclass
menyediakan implementasi spesifik dari metode yang telah dideklarasikan oleh salah satu
class induknya. Metode overriding digunakan untuk menyediakan implementasi spesifik
dari metode yang sudah disediakan oleh superclass-nya dan metode overriding digunakan
untuk runtime polimorfisme.
Beberapa aturan untuk overriding method adalah :
1. Method harus memiliki nama yang sama seperti pada class induknya
2. Method harus memiliki parameter yang sama seperti pada class induknya
3. Harus ada hubungan IS-A
Contoh berikut mendemonstrasikan overriding method :
class Vehicle
{
void run()
{
System.out.println("Vehicle is running");
}
}

class Bike2 extends Vehicle


{
void run()
{
26
System.out.println("Bike is running safely");
}

public static void main(String args[])


{
Bike2 obj = new Bike2();
obj.run();
}

Class diagram berikut ini dapat digunakan untuk menggunakan untuk menggambarkan
pentingnya overriding method

class Bank
{
int getRateOfInterest()
{
return 0;
}
}

class SBI extends Bank


{
int getRateOfInterest()
{
return 8;
}
}

class ICICI extends Bank


{
int getRateOfInterest()
{
return 7;
}
}
class AXIS extends Bank
{
int getRateOfInterest()
27
{
return 9;
}
}
//Test class to create objects and call the methods
class Test2
{
public static void main(String args[])
{
SBI s=new SBI();
ICICI i=new ICICI();
AXIS a=new AXIS();
System.out.println("SBI Rate of Interest:
"+s.getRateOfInterest());
System.out.println("ICICI Rate of Interest:
"+i.getRateOfInterest());
System.out.println("AXIS Rate of Interest:
"+a.getRateOfInterest());
}
}

Di java kita tidak bisa menerapkan overriding method untuk static method dan main
method.

Polimorfisme
Polimorfisme di Jawa adalah konsep yang dengannya kita dapat melakukan satu
tindakan dengan cara berbeda. Polimorfisme berasal dari 2 kata Yunani: poli dan morf.
Kata "poli" berarti banyak dan "morf" berarti bentuk. Jadi polimorfisme berarti banyak
bentuk. Ada dua jenis polimorfisme di Jawa: compile-time polymorphism dan running-
time polymorphism. Kita dapat melakukan polimorfisme di java dengan metode
overloading dan metode overriding. Contoh dari compile-time polymorphism adalah saat
kita mengoverload static method di java.

Upcasting
Jika variabel referensi kelas Induk mengacu pada objek kelas Anak, maka itu dikenal
sebagai upcasting. Contoh :
class A{}
class B extends A{}

A a=new B();//upcasting i upcasting.

28
Untuk upcasting, kita bisa menggunakan variabel referensi tipe kelas atau tipe
interface. Sebagai contoh:
interface I{}
class A{}
class B extends A implements I{}

Run-time Polimorfisme
Run-time polimorfisme atau dynamic method dispatch adalah proses di mana
panggilan ke overriding metode diselesaikan pada run-time daripada compile-time. Dalam
proses ini, overriding method dipanggil melalui variabel referensi superclass. Penentuan
metode pemanggilan didasarkan pada objek yang dirujuk oleh variabel referensi.
Dalam contoh berikuti ini, ki membuat dua kelas Bike dan Splendor. Kelas
Splendor memperluas kelas Bike danta mengganti metode run () -nya. Kita memanggil
metode run dengan variabel referensi dari kelas Parent. Karena mengacu pada objek
subclass dan metode subclass menggantikan metode kelas Induk, metode subclass
dipanggil saat runtime. Karena pemanggilan metode ditentukan oleh JVM, bukan
kompiler, maka hal ini dikenal sebagai polimorfisme runtime.
class Bike
{
void run()
{
System.out.println("running");
}
}

class Splendor extends Bike


{
void run()
{
System.out.println("running safely with 60km");
}

public static void main(String args[])


{
Bike b = new Splendor();//upcasting
b.run();
}
}

29
Tugas
Buatlah contoh implementasi run-time polimorfisme. Gunakan Internet resource jika
dibutuhkan

Lembar Kerja Praktikum


• Alat dan Bahan
o Personal Computer (PC) / Laptop
o Text Editor dan Java IDE (Netbeans)
o Internet
• Petunjuk Keselamatan Kerja
o Pastikan tegangan listrik yang digunakan stabil
o Pastikan temperatur ruangan sesuai standart keselamatan kerja
o Pastikan lingkungan tempat kerja bersih, dengan lalu lintas udara yang terjamin
 Langkah Kerja
1. Buatlah superclass dengan name Shape dengan method draw ( ), countArea( ),
countCircumstances( ). Silakan tambahkan method yang lain jika dibutuhkan
2. Buatlah class Rectangle, Circle dan Triangle. Class ini memiliki method yang
mengoverriding method pada super class
3. Buatlah main method dan terapkan prinsip polimorfisme untuk melakukan
pemanggilan

30
BAB III PEMBELAJARAN MODUL 2 : GUI SWING

Kegiatan Belajar 1 : Java Swing


Tujuan Pembelajaran
1. Memahami dan menguasai pembuatan dan pengaplikasian Graphical User
2. Memahami swing dan komponen komponennya

Uraian Materi
Pengantar JAVA GUI
Pada modul kali ini kita akan mempelajari antarmuka grafis yang dikenal dengan
nama Graphical User Interface (GUI). GUI merupakan antar muka grafis yang
memfasilitasi interaksi antara pengguna dengan program aplikasi. Salah satu komponen
dalam bahasa pemrograman Java untuk membangun GUI adalah Swing. Komponen ini
didefinisikan di dalam paket javax.swing. Swing diturunkan dari Abstract Windowing
Toolkit dalam paket java.awt. Hirarki dari komponen Swing adalah sebagai berikut

31
Java Swing adalah bagian dari Java Foundation Classes (JFC) yang digunakan untuk
membuat aplikasi berbasis Window. Java Swing dibangun di atas API AWT (Abstract
Windowing Toolkit) dan seluruhnya ditulis dalam java. Tidak seperti AWT, Java Swing
menyediakan komponen yang tidak bergantung platform dan ringan.Paket javax.swing
menyediakan kelas untuk java swing API seperti JButton, JTextField, JTextArea,
JRadioButton, JCheckbox, JMenu, JColorChooser dll.
Perbedaan antara java awt dan java swing adalah seperti pada gambar berikut :

32
JComponent adalah superclass dari semua komponen Swing. Sebagian besar
fungsionalitas komponen diturunkan dari superclass ini. Beberapa komponen utama dalam
GUI adalah:
1. Containers: merupakan wadah yang berfungsi untuk menempatkan komponen-
komponen lain di dalamnya.
2. Canvas.: merupakan komponen GUI yang berfungsi untuk menampilkan gambar
atau untuk membuat program grafis. Dengan canvas, kita bisa menggambar
berbagai bentuk seperti lingkaran, segitiga, dll.
3. User Interface (UI) components: contohnya adalah buttons, list, simple popup
menus, check boxes, text fields, dan elemen lain
4. Komponen pembentuk window: seperti frames, menu bars, windows, dan dialog
boxes.
Method – method utama dari component class dan deskripsinya dapa tdilihat pada gambar
berikut :

Komponen Dasar User Interface dengan Swing


Komponen dasar user interface dengan Swing terdiri atas :
1. Top Level Container; Top Level Container merupakan container dasar tempat
diletakkannya komponen-komponen lain (JFrame, JDIalog, & Applet).
import javax.swing.*;
class FramePertamaku extends JFrame { public
FramePertamaku() {
setTitle( "Frame Pertama ); setSize( 300 , 200 );
}
}
public class Frameku {
public static void main (String args[ ] )
{ FramePertamaku coba = new FramePertamaku();
coba.show();
}
33
}

2. Intermediate Container; Intermediate Container merupakan komponen yang


menjadi perantara dimana komponen lainnya diletakkan (JPanel, JScrollPanel,
JTabbedPane, JToolbar, JSplitPane)
3. Atomic Component; Atomic Component merupakan komponen yang memiliki
fungsi spesifik dan mendapat interaksi dari user (JButton, JLabel, JTextArea).
import javax.swing.*;
import java.awt.*; import java.awt.event.*;
public class TeksField {
public static void main(String[ ] args) {
JFrame frame = new JFrame("Membuat TeksField
JLabel label = new JLabel("Nama :");
JTextField textField = new JTextField(20);
frame.getContentPane().setLayout(new FlowLayout());
frame.getContentPane().add(label);
frame.getContentPane().add(textField);
frame.pack(); frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
4. Layout Manager; Layout Manager merupakan komponen yang mengatur posisi dari
container (BorderLayout, BoxLayout, FlowLayout, GridbagLayout, GridLayout).
5. Even Hadling; Even Hadling merupakan komponen yang menangani event yang
dilakukan oleh user (klik mouse, ketik keyboard, perbesar frame).

Penggunaan top level container


 Komponen GUI ditampilkan sebagai bagian dari container hierarchy.
1. Aplikasi GUI berbasis Swing paling tidak memiliki satu containment hierarchy
dengan JFrame sebagai rootnya.
2. Jika sebuah aplikasi memiliki satu window utama dan dua dialog artinya aplikasi
tersebut memiliki tiga containment hierarchy dan juga tiga top level container.
3. Satu containment hierarchy memiliki JFrame sebagai root, dan dua yang lian
memiliki JDialog sebagai root
 Setiap komponen GUI hanya dapat dimuat pada satu top level container.
 Dapat menambahkan menu bar pada top level container.
Perhatikan penggunaan javax.swing berikut ini yang menmpilkan sebuah frame
import javax.swing.*;
public class FrameBeraksi {
public static void main (String[] args) {

34
JFrame frame = new JFrame(“Frame Beraksi”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel emptyLabel = new JLabel(“Frame Beraksi”);
frame.getContentPane().add(emptyLabel);
frame.setSize(400,200);
frame.setVisible(true);
}
}
Seperti yang terlihat pada contoh contoh diatas bahwa untuk membuat frame dapat
dilakukan dengan salah stu dari dua cara yang ada yaitu :
1. Membuat Objek dari class Frame
import javax.swing.*;
public class FirstSwingExample
{
public static void main(String[] args)
{
JFrame f=new JFrame();//creating instance of JFrame
JButton b=new JButton("click");//creating instance of
JButton
b.setBounds(130,100,100, 40);//x axis, y axis, width,
height
f.add(b);//adding button in JFrame
f.setSize(400,500);//400 width and 500 height
f.setLayout(null);//using no layout managers
f.setVisible(true);//making the frame visible
}
}

import javax.swing.*;
public class Simple
{
JFrame f;
Simple()
{
f=new JFrame();//creating instance of JFrame
JButton b=new JButton("click");//creating instance of
JButton
b.setBounds(130,100,100, 40);
f.add(b);//adding button in JFrame
f.setSize(400,500);//400 width and 500 height
f.setLayout(null);//using no layout managers
f.setVisible(true);//making the frame visible
}
public static void main(String[] args)
{
new Simple();
}
}

35
2. Mengextend class frame (inheritance)
import javax.swing.*;
public class Simple2 extends JFrame
{//inheriting JFrame
JFrame f;
Simple2()
{
JButton b=new JButton("click");//create button
b.setBounds(130,100,100, 40);
add(b);//adding button on frame
setSize(400,500);
setLayout(null);
setVisible(true);
}
public static void main(String[] args)
{
new Simple2();
}
}

Java JButton
Kelas JButton digunakan untuk membuat tombol berlabel yang memiliki
implementasi independen platform. Aplikasi menghasilkan beberapa tindakan saat tombol
ditekan. Konstruktor dan method yang umum digunakan dari class ini adalah seperti pada
gambar berikut :

36
Perhatikan contoh penggunaan button dengan actionlistener berikut ini
import java.awt.event.*;
import javax.swing.*;
public class ButtonExample
{
public static void main(String[] args)
{
JFrame f=new JFrame("Button Example");
final JTextField tf=new JTextField();
tf.setBounds(50,50, 150,20);
JButton b=new JButton("Click Here");
b.setBounds(50,100,95,30);
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
tf.setText("Welcome to Polimdo.");
}
});
f.add(b);f.add(tf);
f.setSize(400,400);
f.setLayout(null);
f.setVisible(true);
}
}

Contoh penggunaan button dengan gambar


import javax.swing.*;
public class ButtonExample
{
ButtonExample()
{
JFrame f=new JFrame("Button Example");
JButton b=new JButton(new ImageIcon("D:\\icon.png"));
b.setBounds(100,100,100, 40);
f.add(b);
f.setSize(300,400);
f.setLayout(null);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
new ButtonExample();
}
}

Java Label
Objek kelas JLabel adalah komponen untuk menempatkan teks dalam sebuah wadah.
Ini digunakan untuk menampilkan satu baris teks. Teks dapat diubah oleh aplikasi tetapi
37
pengguna tidak dapat mengeditnya secara langsung. Jlabel mewarisi kelas JComponent.
Konstruktor dan method yang umum digunakan dari class ini adalah seperti pada gambar
berikut :

Perhatikan contoh penggunaan Jlabel dibawah ini


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class LabelExample extends JFrame implements
ActionListener
{
JTextField tf; JLabel l; JButton b;
LabelExample()
{
tf=new JTextField();
tf.setBounds(50,50, 150,20);
l=new JLabel();
l.setBounds(50,100, 250,20);
b=new JButton("Find IP");
b.setBounds(50,150,95,30);
b.addActionListener(this);
add(b);add(tf);add(l);
setSize(400,400);
setLayout(null);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{

38
try
{
String host=tf.getText();
String
ip=java.net.InetAddress.getByName(host).getHostAddress();
l.setText("IP of "+host+" is: "+ip);
}
catch(Exception ex)
{
System.out.println(ex);
}
}
public static void main(String[] args)
{
new LabelExample();
}
}

Java JTextField
Objek dari kelas JTextField adalah komponen teks yang memungkinkan pengeditan
teks baris tunggal. JTextField mewarisi kelas JTextComponent. Konstruktor dan method
yang umum dari kelas ini adalah seperti pada gambar berikut :

39
Contoh penggunaan JTextField adalah seperti pada listing code berikut ini :
import javax.swing.*;
import java.awt.event.*;
public class TextFieldExample implements ActionListener{
JTextField tf1,tf2,tf3;
JButton b1,b2;
TextFieldExample(){
JFrame f= new JFrame();
tf1=new JTextField();tf1.setBounds(50,50,150,20);
tf2=new JTextField(); tf2.setBounds(50,100,150,20);
tf3=new JTextField();tf3.setBounds(50,150,150,20);
tf3.setEditable(false); b1=new JButton("+");
b1.setBounds(50,200,50,50);b2=new JButton("-");
b2.setBounds(120,200,50,50);b1.addActionListener(this
);
b2.addActionListener(this);f.add(tf1);f.add(tf2);f.ad
d(tf3);f.add(b1);f.add(b2);
f.setSize(300,300);f.setLayout(null);f.setVisible(tru
e);
}
public void actionPerformed(ActionEvent e) {
String s1=tf1.getText(); String s2=tf2.getText();

40
int a=Integer.parseInt(s1); int
b=Integer.parseInt(s2);
int c=0;
if(e.getSource()==b1){
c=a+b;
}else if(e.getSource()==b2){
c=a-b;
}
String result=String.valueOf(c); tf3.setText(result);
}
public static void main(String[] args) {
new TextFieldExample();
} }

Java JTextArea
Objek dari kelas JTextArea adalah area multi baris yang menampilkan teks. Ini
memungkinkan pengeditan teks beberapa baris. Konstruktor dan method yang umum dari
kelas ini adalah seperti pada gambar berikut :

import javax.swing.*;
import java.awt.event.*;
public class TextAreaExample implements ActionListener{
JLabel l1,l2;
JTextArea area;
JButton b;
TextAreaExample() {
JFrame f= new JFrame(); l1=new JLabel();

41
l1.setBounds(50,25,100,30); l2=new JLabel();
l2.setBounds(160,25,100,30); area=new JTextArea();
area.setBounds(20,75,250,200); b=new JButton("Count
Words");
b.setBounds(100,300,120,30); b.addActionListener(this);
f.add(l1);f.add(l2);f.add(area);f.add(b);
f.setSize(450,450); f.setLayout(null);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e){
String text=area.getText();
String words[]=text.split("\\s");
l1.setText("Words: "+words.length);
l2.setText("Characters: "+text.length());
}
public static void main(String[] args) {
new TextAreaExample();
}}

Java JPasswordField
Objek dari kelas JPasswordField adalah komponen teks yang dikhususkan untuk
mengiput password dan memungkinkan pengeditan satu baris teks. Konstruktor dan
method yang umum digunakan seperti pada gambar berikut :

import javax.swing.*;
import java.awt.event.*;
public class PasswordFieldExample {
public static void main(String[] args) {
JFrame f=new JFrame("Password Field Example");
final JLabel label = new
JLabel();label.setBounds(20,150, 200,50);
final JPasswordField value = new JPasswordField();
value.setBounds(100,75,100,30); JLabel l1=new
JLabel("Username:");
l1.setBounds(20,20, 80,30); JLabel l2=new
JLabel("Password:");
l2.setBounds(20,75, 80,30);JButton b = new
JButton("Login");
b.setBounds(100,120, 80,30);
final JTextField text = new JTextField();
text.setBounds(100,20, 100,30);
42
f.add(value); f.add(l1); f.add(label);
f.add(l2); f.add(b); f.add(text);
f.setSize(300,300); f.setLayout(null);
f.setVisible(true);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String data = "Username " +
text.getText();
data += ", Password: "
+ new String(value.getPassword());
label.setText(data);
}
});
}
}
Java JCheckBox
Kelas JCheckBox digunakan untuk membuat kotak centang. Ini digunakan untuk
mengaktifkan opsi (true) atau off (false). Mengklik pada Kotak Centang mengubah
statusnya dari "on" menjadi "off" atau dari "off" menjadi "on". Konstruktor dan method
yang umum seperti pada gambar berikut :

import javax.swing.*;
import java.awt.event.*;
public class CheckBoxExample extends JFrame implements
ActionListener{
JLabel l;
JCheckBox cb1,cb2,cb3;
JButton b;
CheckBoxExample(){
l=new JLabel("Food Ordering System");
l.setBounds(50,50,300,20); cb1=new JCheckBox("Pizza @
100");
cb1.setBounds(100,100,150,20); cb2=new
JCheckBox("Burger @ 30");
cb2.setBounds(100,150,150,20); cb3=new JCheckBox("Tea
@ 10");
43
cb3.setBounds(100,200,150,20); b=new
JButton("Order");
b.setBounds(100,250,80,30);
b.addActionListener(this);
add(l);add(cb1);add(cb2);add(cb3);add(b);
setSize(400,400);
setLayout(null); setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
float amount=0;
String msg="";
if(cb1.isSelected()){
amount+=100; msg="Pizza: 100\n";
}
if(cb2.isSelected()){
amount+=30; msg+="Burger: 30\n";
}
if(cb3.isSelected()){
amount+=10; msg+="Tea: 10\n";
}
msg+="-----------------\n";
JOptionPane.showMessageDialog(this,msg+"Total: "+amount);
}
public static void main(String[] args) {
new CheckBoxExample();
}
}

Java JRadioButton
Kelas JRadioButton digunakan untuk membuat tombol radio. Ini digunakan untuk
memilih satu opsi dari beberapa opsi. Kelas JRadioButton harus ditambahkan di
ButtonGroup untuk memilih satu tombol radio saja. Konstruktor dan method yang umum
digunakan adalah

44
import javax.swing.*;
import java.awt.event.*;
class RadioButtonExample extends JFrame implements
ActionListener
{
JRadioButton rb1,rb2;
JButton b;
RadioButtonExample()
{
rb1=new JRadioButton("Male");
rb1.setBounds(100,50,100,30);
rb2=new JRadioButton("Female");
rb2.setBounds(100,100,100,30);
ButtonGroup bg=new ButtonGroup();
bg.add(rb1);bg.add(rb2);
b=new JButton("click"); b.setBounds(100,150,80,30);
b.addActionListener(this); add(rb1);add(rb2);add(b);
setSize(300,300); setLayout(null); setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(rb1.isSelected()){
JOptionPane.showMessageDialog(this,"You are Male.");
}
if(rb2.isSelected()){
JOptionPane.showMessageDialog(this,"You are Female.");
}
}
public static void main(String args[]){
new RadioButtonExample();
}
}

Membuat GUI di Netbeans


Untuk membuat GUI diNetbeans ikuti langkah langkah berikut ini :
1. Buat project baru dengan nama ‘Kalkulator’
2. Buat Frame untuk meletakkan komponen-komponen GUI. Dengan cara klik kanan
pada package, pilih NEW – JFrame Form

45
3. Selanjutnya proses pengaturan tata letak komponen pada frame yang sudah dibuat.
Komponen- komponen yang bisa diletakkan di frame atau container secara umum
ada dalam palette

Semua komponen yang kita letakkan dalam frame memiliki nama sendiri-sendiri
yang unik, secara default NetBeans akan memberi nama masing-masing komponen yang
bisa dilihat dibagian NAVIGATOR

46
4. Ubah properties masing-masing komponen sesuai yang diinginkan. Properties di sini
adalah segala sifat yang melekat dari sebuah obyek komponen, misalnya warna
background, jenis font, ukuran font dsb. Untuk mengubah properties dari suatu
komponen, caranya dengan klik kanan pada komponen yang akan diubah
propertiesnya, lalu pilih ‘Properties’. Selanjutnya akan muncul beberapa properties
dari komponen yang bisa diubah. Sebagai contoh akan diubah properties TEXT dari
komponen jLabel1 menjadi ‘Bilangan 1’
5. Buat Event; Setelah tata letak komponen dan pengaturan propertiesnya sudah
dilakukan berikutnya adalah memberikan event pada komponennya. Sebagai contoh,
misalnya kita ingin setelah user mengisikan angka dan kotak isian bilangan 1 dan 2
kemudian akan muncul hasil penjumlahannya ketika si user mengklik tombol +.
Sesuai skenario ini, kita akan tambahkan sebuah event pada tombol + ini yaitu
menampilkan hasil penjumlahan bilangan yang dipicu ketika tombol tersebut diklik.
6. Tampilkan frame via main class

Tugas
Dengan menggunakan netbeans buatlah program GUI dengan tampilan dan output akhir
seperti window berikut ini :

47
Lembar Kerja Praktikum
 Alat dan Bahan
o Personal Computer (PC) / Laptop
o Text Editor dan Java IDE (Netbeans)
o Internet
 Petunjuk Keselamatan Kerja
o Pastikan tegangan listrik yang digunakan stabil
o Pastikan temperatur ruangan sesuai standart keselamatan kerja
o Pastikan lingkungan tempat kerja bersih, dengan lalu lintas udara yang terjamin

Langkah Kerja

o Buat class dengan nama Pangkat dan import package untuk bekerja dengan java
Swing
o Pada instance variabel deklarasikan variabel – variabel sebagai berikut

JFrame frame;
JLabel lbAngka, lbPangkat, lbHasil;
JTextField txAngka, txPangkat, txHasil;
JPanel panel1, panel2;
JButton btHitung, btReset;
o Buat constructor dan tambahkan sintaks berikut ini

frame = new JFrame();


frame.setTitle("Pangkat");
frame.setSize(400,250);
frame.getContentPane().setLayout(new GridLayout(2,1));

lbAngka = new JLabel("Masukkan Angka :");


lbPangkat = new JLabel("Masukkan Pangkat :");
lbHasil = new JLabel("Hasil :");

txAngka = new JTextField("");


txPangkat = new JTextField("");
txHasil = new JTextField("");

btHitung = new JButton("Hitung");


btReset = new JButton("Reset");

panel1 = new JPanel();


panel1.setLayout(new GridLayout(3,2));
panel1.add(lbAngka);
panel1.add(txAngka);
panel1.add(lbPangkat);
panel1.add(txPangkat);
panel1.add(lbHasil);
panel1.add(txHasil);
48
panel2 = new JPanel();
panel2.setLayout(new FlowLayout());
panel2.add(btHitung);
panel2.add(btReset);

frame.getContentPane().add(panel1);
frame.getContentPane().add(panel2);

frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
o Buat main method dan buat buat objek dari class Pangkat
o Simpan, compile dan jalankan program

Kegiatan Belajar 2 : Event Handling


Tujuan Pembelajaran
1. Menerangkan komponen-komponen delegation event model
2. Mengerti bagaimana delegation event model bekerja
3. Menciptakan aplikasi GUI yang berinteraksi dengan user
4. Mendiskusikan manfaat dari class-class adapter
5. Mendiskusikan keuntungan-keuntungan dari menggunakan inner dan anonymous

Uraian Materi
Delegation Event Model
Delegasi event model menguraikan bagaimana program Anda dapat merespon
interaksi dari user. Untuk memahami model, pertama-tama mari kita pelajari melalui tiga
komponen utamanya.
1. Event Source
Event source mengacu pada komponen GUI yang meng-generate event. Sebagai
contoh, jika user menekan tombol, event source dalam hal ini adalah tombol.
2. Event Listener/Handler
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.
3. Event Object
Ketika sebuah event terjadi (misal, ketika user berinteraksi dengan komponen
GUI), sebuah object event diciptakan. Object berisi semua informasi yang perlu

49
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 dari class ini.

Pada awalnya, sebuah listener seharusnya diregistrasikan dengan sebuah source


sehingga dapat menerima informasi tentang event-event yang terjadi pada source
tersebut. Hanya listener yang sudah teregistrasi yang dapat menerima pemberitahuan
event-event. Ketika telah teregistrasi, sebuah listener hanya tinggal menunggu sampai
event terjadi.Ketika sesuatu terjadi dengan event source, sebuah event object akan
menguraikan event yang diciptakan. Event kemudian ditembak oleh source pada listener
yang teregistrasi. Saat listener menerima sebuah event object (pemberitahuan) dari
source, dia akan bekerja. Menerjemahkan pemberitahuan dan memproses event yang
terjadi.

Class – Class Event


Sebuah event object mempunyai sebuah class event sebagai tipe data acuannya.
50
Akar dari hirarki class event adalah class EventObject, yang dapat ditemukan pada paket
java.util. Immediate subclass dari class EventObject adalah class AWTEvent. Class
AWTEvent didefinisikan pada paket java.awt. Itu merupakan akar dari semua AWT-
based events. Berikut ini beberapa dari class-class AWT event.

Class Event Deskripsi


ComponentEvent Extends AWTEvent. Dijalankan ketika sebuah komponen
dipindahkan, di-resize, dibuat visible atau hidden.
InputEvent Extends ComponentEvent. Abstrak root class event untuk semua
komponen-level input class-class event.
ActionEvent Extends AWTEvent. Dijalankan ketika sebuah tombol ditekan, melakukan
double-klik daftar item, atau memilih sebuah menu.
ItemEvent Extends AWTEvent. Dijalankan ketika sebuah item dipilih atau di-
deselect oleh user, seperti sebuah list atau checkbox.
KeyEvent Extends InputEvent. Dijalankan ketika sebuah key ditekan, dilepas atau
diketikkan.
MouseEvent Extends InputEvent. Dijalankan ketika sebuah tombol mouse ditekan,
dilepas, atau di-klik (tekan dan lepas), atau ketika sebuah kursor mouse
masuk atau keluar dari bagian visible dari komponen.
TextEvent Extends AWTEvent. Dijalankan ketika nilai dari text field atau text area
dirubah.
WindowEvent Extends ComponentEvent. Dijalankan sebuah object Window dibuka,
ditutup, diaktifkan, nonaktifkan, iconified, deiconified, atau ketika focus
ditransfer kedalam atau keluar window.

Event Listener
Event listeners adalah class yang mengimplementasikan interfaces <Type>Listener. Tabel
di bawah menunjukkan beberapa listener interfaces yang biasanya digunakan.

Event Listeners Deskripsi


ActionListener Bereaksi atas perubahan mouse atau atau keyboard.
MouseListener Bereaksi atas pergerakan mouse.
MouseMotionListene Interface MouseMotionListener mendukung MouseListener.
r Menyediakan method-method yang akan memantau pergerakan
mouse,seperti drag dan pemindahan mouse.
WindowListener Bereaksi atas perubahan window.

Interface ActionListener hanya terdiri dari satu method.

Method ActionListener
public void actionPerformed(ActionEvent e)
Mengendalikan ActionEvent e yang terjadi.

51
Berikut ini adalah method-method MouseListener yang seharusnya digunakan dalam
penerapan class.

Method-method MouseListener
public void mouseClicked(MouseEvent e)
Dipanggil pada saat tombol mouse di click (seperti tekan dan lepas).
public void mouseEntered(MouseEvent e)
Dipanggil pada saat kursor mouse memasuki area komponen.
public void mouseExited(MouseEvent e)
Dipanggil pada saat kursor mouse meninggalkan area komponen.
public void mousePressed(MouseEvent e)
Dipanggil pada saat tombol mouse ditekan di atas komponen
public void mouseReleased(MouseEvent e)
Dipanggil pada saat tombol mouse dilepas di atas komponen

Petunjuk Menggunakan Aplikasi GUI Handling


Berikut ini langkah-langkah yang Anda butuhkan untuk mengingat ketika ingin membuat
aplikasi GUI dengan event handling.
1. Buatlah sebuah class yang menguraikan dan membuat suatu tampilan dari aplikasi
GUI Anda.
2. Buatlah sebuah class yang menerapkan interface listener yang sesuai. Class ini boleh
mengacu pada class yang sama seperti pada langkah awal.
3. Dalam menerapkan class, gunakan semua method-method dengan interface listener
yang sesuai. Uraikan masing-masing method bagaimana Anda ingin mengendalikan
event-event. Anda dapat memberikan implementasi kosong untuk method yang tidak
ingin Anda gunakan.
4. Daftarkan object listener, instansiatiate dari class listener pada langkah 2, dengan
source component menggunakan method add<Type>Listener.
Perhatikan contoh Mouse Event berikut ini
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);
}

52
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();
}
}

Tugas
Lengkapi GUI pada materi sebelumnya dengan memberikan Event pada masing – masing
tombol yang ada sehingga aplikasi sesuai dengan peruntukannya.

Lembar Kerja Praktikum


 Alat dan Bahan
o Personal Computer (PC) / Laptop
o Text Editor dan Java IDE (Netbeans)
o Internet
 Petunjuk Keselamatan Kerja
o Pastikan tegangan listrik yang digunakan stabil

53
o Pastikan temperatur ruangan sesuai standart keselamatan kerja
o Pastikan lingkungan tempat kerja bersih, dengan lalu lintas udara yang terjamin

 Langkah Kerja
o Buatlah class dengan nama EventHandling dan import package javax.swing,.*,
java.awt.* dan java.awt.event.*
o Pada instance variabel tambahkan beberapa komponen seperti berikut
private JButton b1, b2;
private JTextField t1, t2;
private JPanel panel1,panel2;
private JLabel l1, l2;
private JFrame f;
private double a, b, c;
private String konv1 = "Suhu dalam Celcius adalah..."; private
String konv2 = "Suhu dalam Fahrenheit adalah...";
o Pada constroctor inisialisasi komponen – komponen diatas, sebagai berikut
f = new JFrame("Konversi Suhu");
b1 = new JButton("Konversi ke Fahrenheit");
b2 = new JButton("Konversi ke Celcius");
l1 = new JLabel("Suhu dalam Celcius");
l2 = new JLabel("Suhu dalam Fahrenheit");
t1 = new JTextField(10); t2 = new JTextField(10);
o Buat method dengan nama hitungSuhu( ) dan tambahkan sintaks berikut pada
body method
panel1 = new JPanel();
panel2 = new JPanel();
b1.addActionListener(new FahrenheitHandler());
b2.addActionListener(new CelciusHandler());
panel1.add(l1);
panel1.add(t1);
panel1.add(b1);
panel2.add(l2);
panel2.add(t2);
panel2.add(b2);
JTabbedPane tab = new JTabbedPane();
tab.add(panel1,"Celcius ke Fahrenheit");
tab.add(panel2,"Fahrenheit ke Celcius");
f.getContentPane().add(tab, BorderLayout.NORTH);

54
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(600,100); f.setVisible(true);
o Buat private class masing – masing dengan nama FahrenheitHandler dan
CelciusHandler dengan body sebagai berikut
private class FahrenheitHandler implements
ActionListener{ public void actionPerformed(ActionEvent e)
{
Try
{
a = Double.parseDouble(t1.getText());
b = a*1.8+32;
JOptionPane.showConfirmDialog(null,konv2+b,"Hasil",
JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE)
; }
catch(Exception j)
{
JOptionPane.showConfirmDialog(null,"Masukkan Angka!","Error",
JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE); }
}
}

private class CelciusHandler implements ActionListener


{
public void actionPerformed(ActionEvent e)
{
try
{
a = Double.parseDouble(t2.getText());
b = (a-32)/1.8;
JOptionPane.showConfirmDialog(null,konv1+b,"Hasil",
JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_ME
SSAGE);
}
catch(Exception j)
{
JOptionPane.showConfirmDialog(null,"Masukkan
Angka!","Error",
JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_ME
SSAGE);
} } }

55
o Buat main method dan jalankan program
public static void main(String[] args)
{ EventHandling eh = new EventHandling();
eh.hitungSuhu(); }

BAB IV PEMBELAJARAN MODUL 3 : JAVA DATABASE

Kegiatan Belajar 1 : JDBC


Tujuan Pembelajaran
1. Memahami dan menguasai Java Database Connectivity
2. Memahami swing dan komponen komponennya

Uraian Materi
Pengertian JDBC
JDBC adalah singkatan dari Java Database Connectivity. JDBC adalah Java API
untuk menghubungkan dan menjalankan query dengan database. JDBC adalah bagian
dari JavaSE (Java Standard Edition). JDBC API menggunakan driver JDBC untuk
terhubung dengan database. Ada empat jenis driver JDBC:
 JDBC-ODBC Bridge Driver,
 Native Driver,
 Network Protocol Driver, and
 Thin Driver
Kita dapat menggunakan JDBC API untuk mengakses data tabular yang disimpan dalam
database relasional apa pun. Dengan bantuan JDBC API, kita dapat menyimpan,
memperbarui, menghapus, dan mengambil data dari database. Ini seperti Open Database
Connectivity (ODBC) yang disediakan oleh Microsoft.

56
Java.sql package memiliki class dan interface untuk JDBC API yang meliputi ;
Driver interface, Connection interface,Statement interface, PreparedStatement interface,
CallableStatement interface, ResultSet interface, ResultSetMetaData interface,
DatabaseMetaData interface dan RowSet interface. Java class yang ada di JDBC Api
diantaranya adalah DriverManager class ,Blob class, Clob class dan Types class.
Sebelum JDBC, ODBC API adalah API database untuk menghubungkan dan
mengeksekusi query dengan database. Tapi, API ODBC menggunakan driver ODBC
yang ditulis dalam bahasa C (yaitu tergantung platform dan tidak aman). Itulah mengapa
Java telah mendefinisikan API-nya sendiri (JDBC API) yang menggunakan driver JDBC
(ditulis dalam bahasa Java). Kita dapat menggunakan JDBC API untuk menangani
database menggunakan program Java dan dapat melakukan aktivitas berikut:
1. Menghubungkan ke database
2. Menjalankan queri dan mengupdate database
3. Menampilkan hasil yang diterima dari database.

JDBC Driver
Driver JDBC adalah perangkat lunak yang memungkinkan aplikasi java
berinteraksi dengan database. Ada 4 jenis driver JDBC
1. JDBC-ODBC bridge driver; menggunakan ODBC driver untuk koneksi dengan
database. JDBC-ODBC bridge driver mengubah pemanggilan method method JDBC
menjadi pemanggilan fungsi ODBC. Lihat gambar berikut ini

Oracle tidak mendukung JDBC-ODBC Bridge dari Java 8. Oracle merekomendasikan


agar kita menggunakan driver JDBC yang disediakan oleh vendor database bukan

57
JDBC-ODBC Bridge. Keuntungan dari JDBC-ODBC bridge driver adalah :
 Mudah digunakan
 Mudah dikoneksikan dengan database
Sedangkan kerugian JDBC-ODBC bridge driver adalah
 Kinerja menurun karena panggilan metode JDBC diubah menjadi panggilan
fungsi ODBC.
 Driver ODBC perlu diinstal di mesin client.
2. Native-API driver ; menggunakan pustaka sisi klien dari database. Driver mengubah
panggilan metode JDBC menjadi panggilan asli dari API database. Itu tidak
seluruhnya ditulis di java.

Keuntungan dari Native-API driver adalah bahwa performancenya lebih baik


dibandingkan JDBC-ODBC bridge driver. Sedangkan kerugiannya adalah perlu diinstall
pada setiap client dan vendor client library perlu ditambahkan pada setiap client.
3. Network Protocol driver (fully java driver); menggunakan middleware (server
aplikasi) yang mengubah panggilan JDBC secara langsung atau tidak langsung ke
dalam protokol database yang spesifik untuk vendor tertentu . Ini sepenuhnya ditulis
dengan java.

58
Keuntungan dari driver ini adalah tidak membutuhkan client side library karena
middleware yang dapat melakukan banyak tugas seperti audit, load balancing, logging dll.
Sedangkan kerugiannya adalah :
 Dukungan jaringan diperlukan pada mesin klien.
 Membutuhkan pengkodean khusus database untuk dilakukan di middle tier.
 Pemeliharaan Network Protocol driver menjadi mahal karena memerlukan
pengkodean khusus database untuk dilakukan di middle tier.
4. Thin driver (fully java driver); mengubah panggilan JDBC langsung ke protokol
database yang khusus bagi vendor tertentu. Itulah mengapa dikenal sebagai thin
driver. Ini sepenuhnya ditulis dalam bahasa Jawa.

Keuntungan dari thin driver adalah performance lebih baik dibandingkan driver yang lain
dan tidak membutuhkan software lain baik disisi client maupun server. Sedangkan
kerugiannya adalah driver ini tergantung pada database.

Koneksi JDBC
Ada 5 langkah untuk menghubungkan aplikasi java dengan database menggunakan JDBC.
Langkah-langkahnya adalah sebagai berikut:

59
 Register the Driver class; method forName ( ) dari kelas Class digunakan untuk
mendaftarkan kelas driver. Metode ini digunakan untuk memuat kelas driver secara
dinamis. Sintaks dari method ini adalah
public static void forName(String className)throws
ClassNotFoundException
Berikut adalah contoh program java untuk memuat Oracle driver ketika
membangun konektifitas database
Class.forName("oracle.jdbc.driver.OracleDriver");
 Create connection object; method getConnection() dari DriverManager class
digunakan untuk membangun koneksi dengan database. Sintaks dari method ini
adalah :
1) public static Connection getConnection(String
url)throws SQLException
2) public static Connection getConnection(String
url,String name,String password) throws SQLException
Contoh untuk koneksi dengan Oracle adalah :
Connection con=DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe","system","password
");
 Create statement; method createStatement() dari interface Connection digunakan
untuk membuat create statement. Objek yang terbentuk bertanggung jawab untuk
mengeksekusi query pada database. Sintaks dari method createStatement() adalah :
public Statement createStatement()throws SQLException
Contoh dari create statement objek
Statement stmt=con.createStatement();
 Execute queries; method executeQuery() dari interface Statement digunakan untuk
mengeksekusi database queri. Method ini mengembalikan object of ResultSet yang
dapat digunakan untuk mendapatkan record dari tabel. Sintaks untuk method
executeQuery() adalah :
public ResultSet executeQuery(String sql)throws
SQLException
Contoh sintaks untuk mengeksekusi query adalah
ResultSet rs=stmt.executeQuery("select * from emp");

60
while(rs.next()){
System.out.println(rs.getInt(1)+" "+rs.getString(2));
}
 Close connection; dengan menutup connection object statement and ResultSet
akan ditutup secara otomatis. Method close() dari interface Connection digunakan
untuk menutup koneksi. Sintaks dari method close () adalah public void
close()throws SQLException
Contoh con.close()

Kegiatan Belajar 2 : JDBC


Tujuan Pembelajaran
1. Memahami dan menguasai Java Database Connectivity dengan Oracle
2. Memahami dan menguasai Java Database Connectivity dengan MySQL
3. Memahami dan menguasai Java Database Connectivity dengan Access

Uraian Materi
Java Database Connectivity dengan Oracle
Untuk menghubungkan aplikasi java dengan database oracle, kita perlu mengikuti 5
langkah berikut. Dalam contoh ini, digunakan Oracle 10g sebagai database.
1. Kelas driver: Kelas driver untuk database oracle adalah
oracle.jdbc.driver.OracleDriver.
2. URL Koneksi: URL koneksi untuk database oracle10G adalah jdbc: oracle:
thin: @localhost: 1521: xe di mana jdbc adalah API, oracle adalah
database, thin adalah driver, localhost adalah nama server tempat oracle berjalan,
dapat juga menggunakan alamat IP, 1521 adalah nomor port dan XE adalah nama
layanan Oracle.
3. Username: username default untuk database oracle adalah sistem.
4. Password: password yang diberikan oleh pengguna pada saat menginstal database
oracle.
Sebelum membangun koneksi buatlah tabel dengan menggunakan sintaks berikut
ini create table emp(id number(10),name varchar2(40),age
number(3));
Sintaks berikut ini adalah contoh untuk menghubungkan aplikasi java dengan database
61
Oracle

import java.sql.*;
class OracleCon
{
public static void main(String args[])
{
try
{
//langkah 1 load the driver class
Class.forName("oracle.jdbc.driver.OracleDriver");

//langkah 2 buat the connection object


Connection con=DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe","system","ora
cle");

//langkah 3 buat the statement object


Statement stmt=con.createStatement();

//langkah 4 execute query


ResultSet rs=stmt.executeQuery("select * from
emp");
while(rs.next())
System.out.println(rs.getInt(1)+"
"+rs.getString(2)+" "+rs.getString(3));

//langkah 5 close the connection object


con.close();

}
catch(Exception e)
{
System.out.println(e);
}

}
}

Sintaks diatas akan menampilkan semua record yang ada di tabel emp. Untuk
menghubungkan aplikasi java dengan database oracle maka ojdbc14.jar perlu diload ke
sistem. Ada dua cara untuk meload ojdbc14.jar file yaitu :
1. Mengcopikan ojdbc14.jar file ke folder jre/lib/ext
62
2. Mengatur classpath
Untuk mengatur classpath dapat dilakukan secara temporer maupun permanen. Secara
temporer dengan menggunakan commamd prompt dan masukkan C:>set
classpath=c:\folder\ojdbc14.jar;.; dimana folder adalah lokasi dimana ojdbc14.jar
berada. Penyetingan path secara permanen dilakukan dengan menambahkan path dimana
file ojdbc14.jar berada ke classpath dari sistem.

Java Database Connectivity dengan MySQL


Langkah – langkahnya adalah sebagai berikut :
1. Kelas driver: Kelas driver untuk database Mysql adalah
com.mysql.jdbc.Driver..
2. URL Koneksi: URL koneksi untuk database oracle10G adalah
jdbc:mysql://localhost:3306/sonoo di mana jdbc adalah API, mysql
adalah database, localhost adalah nama server tempat mysql berjalan, dapat juga
menggunakan alamat IP, 3306 adalah nomor port dan sonoo adalah nama database
3. Username: username default untuk database mysql adalah root.
4. Password: password yang diberikan oleh pengguna pada saat menginstal database
mysql.
Buatlah tabel di mysl menggunakan sintaks create database sonoo;
use sonoo;
create table emp(id int(10),name varchar(40),age int(3));
Sintaks berikut ini adalah contoh untuk menghubungkan aplikasi java dengan database
MySQL
import java.sql.*;
class MysqlCon
{
public static void main(String args[])
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/
sonoo","root","");
//here sonoo is database name, root is
username and password
Statement stmt=con.createStatement();

63
ResultSet rs=stmt.executeQuery("select * from
emp");
while(rs.next())
System.out.println(rs.getInt(1)+"
"+rs.getString(2)+" "+rs.getString(3));
con.close();
}
catch(Exception e)
{
System.out.println(e);
}
}
}
Untuk menghubungkan aplikasi java dengan database MySQL maka
mysqlconnector.jar perlu diload ke sistem dengan mengikuti cara seperti diatas.

Java Database Connectivity dengan Ms.Access


Ada dua cara menghubungkan aplikasi java ke Ms.Access yaitu dengan Data Souirce
Name (DSN) dan tanpa DSN. Sintaks berikut adalah contoh Access tanpa DSN
import java.sql.*;
class Test
{
public static void main(String ar[])
{
try
{
String database="student.mdb";//Here database
exists in the current directory
String url="jdbc:odbc:Driver={Microsoft Access
Driver (*.mdb)};
DBQ=" + database +
";DriverID=22;READONLY=true";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c=DriverManager.getConnection(url);
Statement st=c.createStatement();
ResultSet rs=st.executeQuery("select * from
login");
while(rs.next())
{
System.out.println(rs.getString(1));
}

}
catch(Exception ee)
{
System.out.println(ee);
}

64
}
}

Contoh Access dengan DSN :


import java.sql.*;
class Test
{
public static void main(String ar[])
{
try
{
String url="jdbc:odbc:mydsn";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c=DriverManager.getConnection(url);
Statement st=c.createStatement();
ResultSet rs=st.executeQuery("select * from login");

while(rs.next())
{
System.out.println(rs.getString(1));
}

}
catch(Exception ee)
{
System.out.println(ee);
}

}
}

DriverManager Class, Connection Interface dan Statement Interface


Kelas DriverManager bertindak sebagai antarmuka antara pengguna dan driver.
Kelas DriverManager menyimpan daftar kelas Driver yang telah terdaftar dengan
memanggil metode DriverManager.registerDriver ( ). Method – method dari
DriverManager adalah :
1. public static void registerDriver(Driver driver): digunakan untuk mendaftarkan driver
ke DriverManager
2. public static void deregisterDriver(Driver driver):merupakan kebalikan dari method
diatas
3. public static Connection getConnection(String url): digunakan untuk membangun
65
koneksi dengan url tertentu
4. public static Connection getConnection(String url,String userName,String password):
digunakan untuk membangun koneksi dengan url tertentu,username dan password.
Interface Connection adalah sesi antara aplikasi java application dan database.
Connection interface meliputi factory of Statement, PreparedStatement, dan
DatabaseMetaData yaitu object dari Connection yang dapat digunakan untuk mendapatkan
object Statement and DatabaseMetaData. Interface Connection menyediakan methods
untuk maangemen transaksi seperti commit(), rollback() etc. Method yang umum
digunakan pada Connection Interface meliputi :
1) public Statement createStatement(): membuat statement object yang dapat
digunakan untuk mengeksekusi SQL queries.
2) public Statement createStatement(int resultSetType,int resultSetConcurrency):
membuat Statement object yang akan menghasilkan ResultSet objects
3) public void setAutoCommit(boolean status): digunakan untuk mengeset commit
status. Secara default bernilai true.
4) public void commit(): menyimpan perubahan yang dilakukan sebelum
commit/rollback permanent.
5) public void rollback():
6) public void close(): menutup koneksi and membebaskan resource JDBC secara
langsung

Statement Interface digunakan untuk mengeksekusi database query. Method di


Staement Interface yang umum digunakan adalah :
1) public ResultSet executeQuery(String sql): digunakan untuk mengeksekusi
SELECT queryMethod ini mengembalikan object ResultSet.
2) public int executeUpdate(String sql): digunakan untuk mengeksekusi query
tertentu, berupa create, drop, insert, update, delete etc.
3) public boolean execute(String sql): digunakan untuk mengeksekusi queries that
may return multiple results.
4) public int[] executeBatch():digunakan untuk mengeksekusi batch of commands.
Berikut adalah contoh penggunaan Statement Interface
import java.sql.*;
class FetchRecord
{

66
public static void main(String args[])throws Exception
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:
1521:xe","system","oracle");
Statement stmt=con.createStatement();

//stmt.executeUpdate("insert into emp765


values(33,'Irfan',50000)");
//int result=stmt.executeUpdate("update emp765 set
name='Vimal',salary=10000 where id=33");
int result=stmt.executeUpdate("delete from emp765
where id=1");
System.out.println(result+" records affected");
con.close();
}
}

ResutlSet Interface
Object ResultSet menjaga cursor untuk menunjuk pada baris data disatu tabel.
Awalnya, cursor kursor berada sebelum baris pertama. Dengan memparse.
TYPE_SCROLL_INSENSITIVE atau TYPE_SCROLL_SENSITIVE ke method
createStatement(int,int) maka kita dapat membuat objek ini berpindah posisi.
Sintaksnya dalah
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
Beberapa method yang penting pada ResultSet adalah
1. public boolean next(): digunakan uintuk memindahkan cursor pada baris
berikutnya.
2. public boolean previous(): digunakan untuk memindahkan kursor satu baris
sebelumnya
3. public boolean first():digunakan untuk memindahkna cursor ke baris pertama dari
satu result set objek
4. public boolean last(): digunakan untuk memindahkna cursor ke baris terakhir dari
satu result set objek
5. public boolean absolute(int row): digunakan untuk memindahkan cursor ke
baris tertentu dari ResultSet object.

67
6. public boolean relative(int row): digunakan untuk memindahkan cursor ke
baris yagn posisinya relative terhadap result set.ResultSet object, dapat berupa
positive or negative.
7. public int getInt(int columnIndex): digunakan untuk mengembalikan data column
index tertentu dari satu baris
Contoh penggunaan ResultSet interface untuk mengembalikan data pada baris ketiga dari
tabel emp adalah sebagai berikut :

import java.sql.*;
class FetchRecord
{
public static void main(String args[])throws Exception
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:
1521:xe","system","oracle");
Statement
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,Resu
ltSet.CONCUR_UPDATABLE);
ResultSet rs=stmt.executeQuery("select * from
emp765");

//getting the record of 3rd row


rs.absolute(3);
System.out.println(rs.getString(1)+"
"+rs.getString(2)+" "+rs.getString(3));
con.close();
}
}

PreparedStatement interface
PreparedStatement interface adalah subinterface dari Statement dan digunakan untuk
mengeksekusi parameterized query. Contoh dari parameterize query adalah sebagai berikut
String sql="insert into emp values(?,?,?)"; Penggunaan
PreparedStatement interface akan mempercepat performance dari satu aplikasi karena
dengan menggunakan PreparedStatement interface query hanya akan dicompile satu kali.
Berikut ini adalah contoh penggunaan PreparedStatement interface dalam menginsert data ;
import java.sql.*;
class InsertPrepared
{
public static void main(String args[])

68
{
try
{

Class.forName("oracle.jdbc.driver.OracleDriver");

Connection
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:
1521:xe","system","oracle");
PreparedStatement
stmt=con.prepareStatement("insert into Emp values(?,?)");
stmt.setInt(1,101);//1 specifies the first
parameter in the query
stmt.setString(2,"Jemi Rangan");
int i=stmt.executeUpdate();
System.out.println(i+" records inserted");

con.close();
}
catch(Exception e)
{
System.out.println(e);
}

}
}

Penggunaan PreparedStatement interface untuk mengupdate data :

PreparedStatement stmt=con.prepareStatement("update emp set


name=? where id=?");
stmt.setString(1,"Sonoo");//1 specifies the first parameter
in the query i.e. name
stmt.setInt(2,101);
int i=stmt.executeUpdate();
System.out.println(i+" records updated");

Penggunaan PreparedStatement interface untuk menghapus data :

PreparedStatement stmt=con.prepareStatement("delete from


emp where id=?");
stmt.setInt(1,101);
int i=stmt.executeUpdate();
System.out.println(i+" records deleted");

Penggunaan PreparedStatement interface untuk menampilkan data :

PreparedStatement stmt=con.prepareStatement("select * from


emp");
ResultSet rs=stmt.executeQuery();
69
while(rs.next()){
System.out.println(rs.getInt(1)+" "+rs.getString(2));

Tugas
Buatlah CRUD dari entity buku menggunakan JDBC dan database driver sesuai pilihan
anda !

Lembar Kerja Praktikum


 Alat dan Bahan
o Personal Computer (PC) / Laptop
o Text Editor dan Java IDE (Netbeans)
o Internet
 Petunjuk Keselamatan Kerja
o Pastikan tegangan listrik yang digunakan stabil
o Pastikan temperatur ruangan sesuai standart keselamatan kerja
o Pastikan lingkungan tempat kerja bersih, dengan lalu lintas udara yang terjamin
 Langkah Kerja
1. Import package untuk bekerja dengan jdbc
2. Buat class dengan nama RS. Class hanya mempunyai main method
3. Buatlah koneksi database menggunakan database anda apakah oracle, MySQL
ataupun MS.Access
4. Dengan menggunakan PreparedStatement dan class BufferedReader lengkapi
main method sehingga aplikasi dapat menginsert data sesuai inputan data
5. Buat logika sehingga proses hanya akan berhenti bila user memilih “N”

70
BAB V EVALUASI

Evaluasi Modul Pembelajaran secara umum dimaksudkan untuk mengetahui tingkat


efektifitas penyajian materi dan metode-metode pengajaran yang telah dipergunakan dalam
proses pembelajaran. Evaluasi dapat di lakukan untuk mengukur sejauh mana kegiatan
pembelajaran telah mencapai suatu tujuan yang ditetapkan, dengan memberi soal/tes
kepada peserta didik, atau evaluasi dapat juga dilakukan dengan memberikan kuisener
dengan instrumen tertentu. Evaluasi yang kedua ini lebih dimasudkan untuk perbaikan
proses pembelajaran yang memanfaatkan modul walau tanpa adanya tatap muka di kelas.
Evaluasi pada kesempatan ini dilakukan hanya dengan pengisian kuisener oleh
pengguna yang terdiri dari Mahasiswa dan Dosen pengajar paralel. Kuisener diisi diakhir
pembelajaran setiap modul. Hasil evaluasi diharapkan untuk perbaikan modul, mencari
dan menemukan faktor-faktor penyebab keberhasilan dan ketidak berhasilan peserta didik.
Berikut kuisener untuk pengguna Modul :

Evaluasi Efektivitas Proses Pembelajaran


(Untuk Dosen dan Mahasiswa)

Modul 1 : Inheritance dan Polimorfisme


Mata Kuliah : Praktikum Pemrograman Objek
Evaluator : ………………………………...
Hari/Tanggal : ………………………………...

A. Petunjuk
Berilah penilaian untuk setiap instrumen, menurut kriteria yang sesuai yang sesuai dengan
memberikan tanda cek (√) pada kolom nomor pernyataan
Kriteria Penilaian:
1 : Sangat Kurang
71
2 : Kurang Baik/Kurang Sesuai/Kurang Benar/Kurang Jelas (sesuai pernyataan)
3 : Cukup
4 : Baik/Sesuai/Benar/Jelas (sesuai pernyataan)
5 : Sangat Baik/Sangat Sesuai/Sangat Benar/Sangat Jelas (sesuai pernyataan)

B. Instrumen

Instrumen Nomor Pernyataan


No
1 2 3 4 5
Aspek Isi dan Pembelajaran
A.
(diisi mahasiswa dan Dosen Kelas paralel/Pakar)
Kesesuaian Kompetensi yang di cantumkan di form
1 Analisis Kebutuhan Modul dengan materi pembelajaran di
modul.

2 Ketepatan dalam penjelasan materi teori


3 Ketepatan dalam penjelasan materi praktek
4 Keruntutan isi/uraian materi
Kesesuain dan keseimbangan proporsi
5
contoh/ilustrasi/visualisasi dengan materi yang disajikan
6 Kejelasan petunjuk pengerjaan soal latihan/tes
7 Kejelasan dan kesesuaian bahasa yang digunakan
8 Tingkat kesulitan soal/tes
Kemenarikan penyajian isi materi dalam memotivasi
9
pengguna
10 Adaptasi dengan perkembangan teknologi yang serumpun
B Aspek kemampuan Kognitif, Psikomotor dan Afektif (MODUL 1)
(diisi khusus hanya mahasiswa setelah selesai pembelajaran Modul 1)
Seberapa tingkat pemahaman, penguasaan mahasiswa setelah pembelajaran modul 1
untuk ranah sbb :
1. - Kognitif (pengetahuan)
1 K Penguasaan tentang pengertian inheritance

2 Memahami jenis dan ruang lingkup inheritance


3 Memahami cara pendeklarasian inheritance di jva
4 Memahami perbedaan inheritance dengan interface
5 Memahami overloading dan overringing method
Memahami manfaat inheritance dan polimofisme dalam
6
pengembangan aplikasi real
7 Memahami interface
2. – Ranah Psikomotorik (Ketrampilan)
1 Deklarasi inheritance

2 Membuat, single, multilevel dan hybrid inheritance

72
Instrumen Nomor Pernyataan
No
1 2 3 4 5

3 Mendemonstrasikan penggunaan overloading dan


overriding method
4 Mendemonstrasikan penggunaan Polimorfisme
Mendemonstrasikan penggunaan compile time dan runtime
5
polimorfisme
- Ranah Afektif (Prilaku)
Rasa percaya diri ketika ketika sedang mengerjakan praktek
1
di lab
2 Kooperatif ketika melakukan aktifitas kelompok
3 Menyelesaikan tugas/tes formatif tepat waktu
4 Aktif dalam proses pembelajaran elearning
5 Menghargai karya sesama mahasiswa
6 Menerima feedback dengan senang hati
7 Tidak putus asa atas kendala yang dihadapi
8 Proaktif mencari tahu materi dan tugas yang diberikan
9 Proaktif mencari resource terbaru melalui berbagai media

C. Catatan/komentar/kritik/saran :

.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................

Modul 2 : Java Swing


Mata Kuliah : Praktikum Pemrograman Objek
Evaluator : ………………………………...
Hari/Tanggal : ………………………………...

A. Petunjuk

73
Berilah penilaian untuk setiap instrumen, menurut kriteria yang sesuai yang sesuai dengan
memberikan tanda cek (√) pada kolom nomor pernyataan
Kriteria Penilaian:
1 : Sangat Kurang
2 : Kurang Baik/Kurang Sesuai/Kurang Benar/Kurang Jelas (sesuai pernyataan)
3 : Cukup
4 : Baik/Sesuai/Benar/Jelas (sesuai pernyataan)
5 : Sangat Baik/Sangat Sesuai/Sangat Benar/Sangat Jelas (sesuai pernyataan)

B. Instrumen

Instrumen Nomor Pernyataan


No
1 2 3 4 5
Aspek Isi dan Pembelajaran
A.
(diisi mahasiswa dan Dosen Kelas paralel/Pakar)
Kesesuaian Kompetensi yang di cantumkan di form
1 Analisis Kebutuhan Modul dengan materi pembelajaran di
modul.

2 Ketepatan dalam penjelasan materi teori


3 Ketepatan dalam penjelasan materi praktek
4 Keruntutan isi/uraian materi
Kesesuain dan keseimbangan proporsi
5
contoh/ilustrasi/visualisasi dengan materi yang disajikan
6 Kejelasan petunjuk pengerjaan soal latihan/tes
7 Kejelasan dan kesesuaian bahasa yang digunakan
8 Tingkat kesulitan soal/tes
Kemenarikan penyajian isi materi dalam memotivasi
9
pengguna
10 Adaptasi dengan perkembangan teknologi yang serumpun
B Aspek kemampuan Kognitif, Psikomotor dan Afektif (MODUL 3)
(diisi khusus hanya mahasiswa setelah selesai pembelajaran Modul 3)
Seberapa tingkat pemahaman, penguasaan mahasiswa setelah pembelajaran modul 3
untuk ranah sbb :
3. - Kognitif (pengetahuan)
1 K Memahami konsep Java GUI

2 Menguasai Java GUI


3 Menguasai GUI komponen
4 Menguasai container dan layout
5 Memahami konsep event handling di java
6 Memahami inner class
7 Memahami event listener method
4. – Ranah Psikomotorik (Ketrampilan)
74
Instrumen Nomor Pernyataan
No
1 2 3 4 5
1 Menggunakan dan mendeklarasikan java GUI

2 Menggunakan dan mendeklarasikan package javax.Swing


3 Mendemonstrasikan penggunaan java GUI Component

4 Mendemonstrasikan penggunaan event handling di java


5 Menggunakan inner class
- Ranah Afektif (Prilaku)
Rasa percaya diri ketika ketika sedang mengerjakan praktek
1
di lab
2 Kooperatif ketika melakukan aktifitas kelompok
3 Menyelesaikan tugas/tes formatif tepat waktu
4 Aktif dalam proses pembelajaran elearning
5 Menghargai karya sesama mahasiswa
6 Menerima feedback dengan senang hati
7 Tidak putus asa atas kendala yang dihadapi
8 Proaktif mencari tahu materi dan tugas yang diberikan
9 Proaktif mencari resource terbaru melalui berbagai media

C. Catatan/komentar/kritik/saran :

.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................

Modul 3 : Java Database


Mata Kuliah : Praktikum Pemrograman Objek
Evaluator : ………………………………...
Hari/Tanggal : ………………………………...

A. Petunjuk

75
Berilah penilaian untuk setiap instrumen, menurut kriteria yang sesuai yang sesuai dengan
memberikan tanda cek (√) pada kolom nomor pernyataan
Kriteria Penilaian:
1 : Sangat Kurang
2 : Kurang Baik/Kurang Sesuai/Kurang Benar/Kurang Jelas (sesuai pernyataan)
3 : Cukup
4 : Baik/Sesuai/Benar/Jelas (sesuai pernyataan)
5 : Sangat Baik/Sangat Sesuai/Sangat Benar/Sangat Jelas (sesuai pernyataan)

B. Instrumen

Instrumen Nomor Pernyataan


No
1 2 3 4 5
Aspek Isi dan Pembelajaran
A.
(diisi mahasiswa dan Dosen Kelas paralel/Pakar)
1 Kesesuaian Kompetensi yang di cantumkan di form
Analisis Kebutuhan Modul dengan materi pembelajaran di
modul.

2 Ketepatan dalam penjelasan materi teori


3 Ketepatan dalam penjelasan materi praktek
4 Keruntutan isi/uraian materi
Kesesuain dan keseimbangan proporsi
5
contoh/ilustrasi/visualisasi dengan materi yang disajikan
6 Kejelasan petunjuk pengerjaan soal latihan/tes
7 Kejelasan dan kesesuaian bahasa yang digunakan
8 Tingkat kesulitan soal/tes
Kemenarikan penyajian isi materi dalam memotivasi
9
pengguna
10 Adaptasi dengan perkembangan teknologi yang serumpun
B Aspek kemampuan Kognitif, Psikomotor dan Afektif (MODUL 3)
(diisi khusus hanya mahasiswa setelah selesai pembelajaran Modul 3)
Seberapa tingkat pemahaman, penguasaan mahasiswa setelah pembelajaran modul 3
untuk ranah sbb :
5. - Kognitif (pengetahuan)
1 K Memahami konsep Java Database Connectivity (JDBC)

2 Menguasai Database Driver


3 Menguasai java app dengan Oracle
4 Menguasai java app dengan MySQL
5 Menguasai java app dengan Access
6 Memahami Database class dan database interface
6. – Ranah Psikomotorik (Ketrampilan)

76
Instrumen Nomor Pernyataan
No
1 2 3 4 5
1 Menggunakan JDBC API

2 Menggunakan Database Driver sesuai database vendor

3 Mendemonstrasikan penggunaan Database Class dan


Database Interface
Mendemonstrasikan penggunaan java app dengan Oracle
4
Database
Mendemonstrasikan penggunaan java app dengan MYSQL
5
Database
Mendemonstrasikan penggunaan java app dengan
6
Ms.Access Database
- Ranah Afektif (Prilaku)
Rasa percaya diri ketika ketika sedang mengerjakan praktek
1
di lab
2 Kooperatif ketika melakukan aktifitas kelompok
3 Menyelesaikan tugas/tes formatif tepat waktu
4 Aktif dalam proses pembelajaran elearning
5 Menghargai karya sesama mahasiswa
6 Menerima feedback dengan senang hati
7 Tidak putus asa atas kendala yang dihadapi
8 Proaktif mencari tahu materi dan tugas yang diberikan
9 Proaktif mencari resource terbaru melalui berbagai media

C. Catatan/komentar/kritik/saran :

.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................

77
DAFTAR PUSTAKA
1. Abdul Kadir, Pemrograman Berorintasi Objek. UGM Press 2017
2. Joe Carol, Mark Bid; Object Oriented with PHP and Java; California UTY ;2015
3. Roger Prasmann, Software Enginering, Printice Hall 2015
4. Slamet Raharjo, Seri Pemrogaman Objek dengan Java; Eralngga Press 2014
5. Zoe Rismadh Drar, Java in Object Programming, Indiana Press USA; 2015

78

Anda mungkin juga menyukai