Disusun Oleh :
Maksy Sendiang,SST.,MIT
Nip.197405232002121004
Stanley Dodie,SH.,MH
Nip.198311172019031004
Oleh :
Maksy Sendiang,SST.,MIT
Nip.197405232002121004
Stanley Dodie,SH.,MH
Nip.198311172019031004
Diverifikasi / divalidasi
Ketua Jurusan Sekretaris Jurusan Koordinator Program Studi D4
Teknik Elektro, Teknik Elektro, Teknik Informatika
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
Tipe v
Inheritance
Inheritance
Keyword
Super
Polimorfisme
Modul 2
Overloading
Method
Event Handling
Upcasting
JDBC
Runtime
Polimorfisme
Java App
Database
Java
GUI,komponen,
container
Ciri,penggunaan
event,aplikasi di
netbeans
vi
BAB I PENDAHULUAN
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
3
4. Netbeans
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”.
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;
}
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 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 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 TestInheritance3
{
public static void main(String args[])
{
Cat c=new Cat();
c.meow();
c.eat();
}
}
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;
...
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;
void display()
{
System.out.println(id+" "+name);
System.out.println(address.city+" "+address.state+"
"+address.country);
}
e.display();
e2.display();
}
}
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.
}
}
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.
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 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 :
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();
}
}
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();
}
}
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
19
o Buka Netbeans dan buatlah package baru bernama inheritance di dalam Source
Packages.
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;
float alas;
float tinggi;
File: inheritance/Main.java
package inheritance;
21
// membuat objek persegi dan mengisi nilai properti
Persegi persegi = new Persegi();
persegi.sisi = 2;
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
}
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");
}
}
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 diagram berikut ini dapat digunakan untuk menggunakan untuk menggambarkan
pentingnya overriding method
class Bank
{
int getRateOfInterest()
{
return 0;
}
}
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{}
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");
}
}
29
Tugas
Buatlah contoh implementasi run-time polimorfisme. Gunakan Internet resource jika
dibutuhkan
30
BAB III PEMBELAJARAN MODUL 2 : GUI SWING
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 :
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);
}
}
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 :
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();
}
}
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.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
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.
Event Listener
Event listeners adalah class yang mengimplementasikan interfaces <Type>Listener. Tabel
di bawah menunjukkan beberapa listener interfaces yang biasanya digunakan.
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
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.
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); }
}
}
55
o Buat main method dan jalankan program
public static void main(String[] args)
{ EventHandling eh = new EventHandling();
eh.hitungSuhu(); }
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
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.
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()
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");
}
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.
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.
}
catch(Exception ee)
{
System.out.println(ee);
}
64
}
}
while(rs.next())
{
System.out.println(rs.getString(1));
}
}
catch(Exception ee)
{
System.out.println(ee);
}
}
}
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();
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");
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);
}
}
}
Tugas
Buatlah CRUD dari entity buku menggunakan JDBC dan database driver sesuai pilihan
anda !
70
BAB V EVALUASI
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
72
Instrumen Nomor Pernyataan
No
1 2 3 4 5
C. Catatan/komentar/kritik/saran :
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
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
C. Catatan/komentar/kritik/saran :
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
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
76
Instrumen Nomor Pernyataan
No
1 2 3 4 5
1 Menggunakan JDBC API
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