Modul Pelatihan |Oracle Van Java 2010 1
MODUL PELATIHAN JAVA SWING ORACLE
Studi Kasus : Pembuatan aplikasi Apotik
Pengantar Oracle
Tipe data pada Oracle
Nama tipe data
Fungsi
Varchar2(size)
string yang memiliki panjang karakter vaiable dengan panjang
maxial sebesar size. Tipe data ini memperbolehkan penyimpanan
semua karakter yang dapat dimasukkan melalui keyboad.
Maksimum size yang dapat disimpan sebesar 4000 bytes
(karakter). Tipe data ini juga memungkinkan untuk mneyimpan
data numerik. Biasanya space akan langsung dieliminasi jika
Modul Pelatihan |Oracle Van Java 2010 2
Char(size)
string dengan panjan gkarakter tetap sebesar ukuran size. Tipe
data ini mempunyai kemampuan yang hampir sama yakni
menyimpan karakter, hanya saja maksimum size yang disimpan
hanya sebesar 2000 bytes.
Number(p,s)
tipe data number memiliki presisi p dan s digit dibelakan koma
jika kita abaikan p dan s berarti dianggap sebagai tipe number
floating point. Tipe data ini menyimpan bilangan interger sampai
maksimum dari digit integer tersebut. misal untuk spesifikasi
(5,2) berarti 3 digit sebelum koma dan 2 digit dibelakang koma.
Long
data karakter dengan ukuran panjang bervariasi, hingga
mencapai 2 GB.(tipe data seperti ini tidak dapat digunakan
sebagai primary key).
Raw(size)
tipe data berupa binary data dengan ukuran maksimal 255 bytes
Long Raw
Tipe data berupa binary data dengan ukuran maksimal 2
GigaBytes tidak dikonversi oleh oracle (data mentah apa adanya,
spasi dihitung 1 karakter).
Date
Tipe data ini menyimpan waktu dan tanggal dari sebuah
informasi, dengan komponen waktu yang dibulatkan ke detik
terdekat. Untuk menampilkannya dalam teks harus
menggunakan fungsi to_char.
Timestamp
tipe ini mirip dengan date. Di dalam tipe ini terdapat komponen
waktu yang dapat langsung ditampilkan tanpa harus
mengubahnya terlebih dahulu dengan fungsi to_char.
Clob
Tipe data ini memperbolehkan penyimpanan objek dengan
ukuran yang sangat besar sekitar 4 GB. Clob mirip sekali dengan
varchar2 hanya saja tipe data ini mempunyai kapasitas
maksimum yang lebih besar.
Blob
tipe ini memperbolehkan penyimpanan objek bbinary yang besar
dan tidak terstruktur. Contoh dari tipe data blob adalah suara
Modul Pelatihan |Oracle Van Java 2010 3
1.
DDL
DDL
adalah bagian dari perintah SQL untuk membuat, memodifikasi, atau menghapus
struktur basis data Oracle. Perintah DDL adalah :
1.1
Create
Perintah yang digunakan untuk membuat suatu objek dalam oracle, seperti table,
view, sequence, user, dan index.
a.
Create table
Contoh :
Membuat tabel kateogi obat
CREATE TABLE KATEGORI_OBAT(
ID_KATEGORI_OBAT CHAR(5),
DESKRIPSI_KATEGORI VARCHAR2(100),
CONSTRAINT PK_KATEGORI_OBAT PRIMARY KEY(ID_KATEGORI_OBAT));
Penjelasan syntax CREATE TABLE KATEGORI_OBAT
Nama Kolom
Tipe data
Length
ID_KATEGORI_OBAT
CHAR
5
DESKRIPSI_KATEGORI
VARCHAR2
100
Membuat tabel supplier
CREATE TABLE SUPPLIER(
ID_SUPPLIER CHAR(5),
NAMA_SUPPLIER VARCHAR2(25),
ALAMAT_SUPPLIER VARCHAR2(30),
KOTA_ASAL_SUPPLIER VARCHAR2(15),
NO_TELP_SUPPLIER VARCHAR2(15),
CONSTRAINT PK_SUPPLIER PRIMARY KEY(ID_SUPPLIER));
Create nama_table(nama_kolom1 tipe_kolom1,
Modul Pelatihan |Oracle Van Java 2010 4
Penjelasan syntax CREATE TABLE SUPPLIER
SUPPLIER =>nama tabel
Nama Kolom
Tipe data
Length
ID_SUPPLIER
CHAR
5
NAMA_SUPPLIER
VARCHAR2
25
ALAMAT_SUPPLIER
VARCHAR2
30
KOTA_ASAL_SUPPLIER
VARCHAR2
15
NO_TELP_SUPPLIER
VARCHAR2
15
CONSTRAINT PK_SUPPLIER PRIMARY KEY(ID_SUPPLIER)
Pembuatan constrain primary key yaitu kolom ID_SUPPLIER
Membuat tabel obat
CREATE TABLE OBAT(
ID_OBAT CHAR(5),
NAMA_OBAT VARCHAR2(25),
DESKRIPSI_OBAT VARCHAR2(50),
KUANTITAS_TERSEDIA NUMBER,
HARGA_SATUAN NUMBER,
ID_KATEGORI_OBAT CHAR(5),
CONSTRAINT PK_OBAT PRIMARY KEY(ID_OBAT),
CONSTRAINT FK_OBAT_KATEGORI_OBAT FOREIGN
KEY(ID_KATEGORI_OBAT) REFERENCES
KATEGORI_OBAT(ID_KATEGORI_OBAT) ON DELETE CASCADE);
Penjelasan syntax CREATE TABLE OBAT
OBAT =>nama tabel
Nama Kolom
Tipe data
Length
ID_OBAT
CHAR
5
Modul Pelatihan |Oracle Van Java 2010 5
DESKRIPSI_OBAT
VARCHAR2
20
KUANTITAS_TERSEDIA
NUMBER
HARGA_SATUAN
NUMBER
ID_KATEGORI_OBAT
CHAR
5
Membuat tabel obat_supplier
CREATE TABLE OBAT_SUPPLIER(ID_OBATSUPPLIER CHAR(5),
ID_OBAT CHAR(5),
ID_SUPPLIER CHAR(5),
JUMLAH_SUPPLY NUMBER,
HARGA_GROSIR NUMBER,
WAKTU_KIRIM DATE,
CONSTRAINT PK_OBAT_SUPPLIER PRIMARY
KEY(ID_OBATSUPPLIER,ID_OBAT,ID_SUPPLIER),
CONSTRAINT FK_OBAT_SUPPLIER_OBAT FOREIGN KEY(ID_OBAT)
REFERENCES OBAT(ID_OBAT) ON DELETE CASCADE);
Note
 CONTSRAINT
Contsrain merupakan syntax untuk memberi batasan sebuah kolom berlaku sebagai primary key atau foreign key dari sebuah tabel
 REFERENCES
References adalah syntax untuk memberi informasi acuan sebuah kolom menjadi foreign key dari tabel master
 ON DELETE CASCADE
Modul Pelatihan |Oracle Van Java 2010 6
b.
Create view
View merupakan table semu/lojik yang datanya berasal dari satu atau lebih table
yang disebut sebagai table sumber.
Syntax untuk membuat View adalah :
Create [OR REPLACE][FORCE][NOFORCE]
VIEW
nama_view
AS
Subquery [with <CHECK option>|<READ ONLY>]
Contoh :
create view info_obat as(
select o.id_obat,o.nama_obat,o.kuantitas_tersedia,d.deskripsi_kategori
from obat o, kategori_obat d
where o.id_kategori_obat = d.id_kategori_obat);
Pada sintaks pembentukan VIEW terdapat beberapa kata kunci seperti :
OR REPLACE digunakan apabila pada saat pembentukan view, ternyata
view sudah ada, maka view didefinisikan kembali.
FORCE. View akan dibuat walaupun table sumbernya belum ada
NOFORCE. View hanya akan dibuat bila table sumbernya sudah ada
With Check Option. View akan memeriksa data yang diinsert ataupun
diupdate pada view
READ ONLY. Dengan perintah ini maka operasi penambahan,
pembaharuan, dan penghapusan melalui view tersebut tidak
diperbolehkan.
1.2
Alter
Modul Pelatihan |Oracle Van Java 2010 7
Digunakan untuk mengubah struktur table dan constraint-nya. Ada tiga buah
alter yang dapat digunakan baik secara terpisah ataupun bersamaan .
Syntaxnya adalah :
ALTER NAMA_TABLE
ADD NAMA_KOLOM
Contoh :
Alter table obat
Add harga_diskon number
b.
Memodifikasi kolom dalam tabel
Digunakan untuk mengubah definisi suatu kolom.
Syntaxnya adalah :
ALTER TABLE nama_tabel
MODIFY nama_kolom tipe_data
Contoh :
Alter table obat
MODIFY nama_obat varchar2(50)
c.
Mengubah nama kolom dalam tabel
Syntaxnya adalah :
ALTER TABLE nama_table
RENAME nama_kolom TO nama_kolom_baru
Contoh
Alater table obat
rename harga_diskon to diskon
d.
Menghapus kolom dalam tabel
ALTER TABLE nama_table
DROP COLUMN nama_kolom
Contoh :
Modul Pelatihan |Oracle Van Java 2010 8
Drop column diskon
e.
Menambah constrain pada tabel
ALTER TABLE
nama_tabel
ADD CONSTRAINT
nama_constraint
Foreign key
(nama_kolom_foreign_key)
references
Nama_tabel_acuan(nama_kolom_primary_key);
Contoh:
ALTER TABLE
obat_supplier
ADD CONSTRAINT
fk_obat_supplier_supplier
Foreign key
(ID_supplier)
references
Supplier(ID_supplier);
f.
Menghapus constrain pada tabel
ALTER TABLE
nama_table
DROP CONSTRAINT
nama_constraint;
Contoh
ALTER TABLE
obat_supplier
DROP CONSTRAINT
fk_obat_supplier_supplier;
g.
Mengosongkan isi tabel
TRUNCATE TABLE
nama_tabel;
Contoh
TRUNCATE TABLE
obat_supplier;
1.3
Drop
a.
Drop kolom
ALTER TABLE
nama_tabel
DROP COLUMN
nama_kolom;
Contoh:
Modul Pelatihan |Oracle Van Java 2010 9
b.
Drop tabel
DROP TABLE
nama_tabel;
Contoh:
DROP TABLE
obat_supplier;
1.4
Melihat struktur tabel
Fungsi dari perintah ini adalah melihat semua kolom dan tipenya dalam tabel.
Syntaxnya adalah :
Contoh :
Menampilkan struktur tabel obat
DESC OBAT
Menampilkan struktur tabel supplier
DESC SUPPLIER
Menampilkan struktur tabel obat_supplier
DESC OBAT_SUPPLIER
Menampilkan struktur tabel kategori_obat
DESC KATEGORI_OBAT
2.
DML
Merupakan konsep untuk menerangkan bagaimana mengubah, menambah, dan
menghapus baris table.
2.1
Insert
Perintah digunakan untuk menambah data baru dalam tabel. Syntaxnya adalah
Contoh :
DESC NAMA_TABEL
Modul Pelatihan |Oracle Van Java 2010 10
Insert tabel obat
insert into kategori_obat (id_kategori_obat, deskripsi_kategori) values
('O001','Obat Generik');
Insert tabel kategori_obat
insert into kategori_obat (id_kategori_obat, deskripsi_kategori) values
('O001','Obat Generik');
Insert tabel supplier
insert into supplier (id_supplier, nama_supplier, alamat_supplier,
kota_asal_supplier, no_telp_supplier) values ('S101','Ilham','Jl. Raung
2','Bandung','0223344556');
Insert obat_supplier
insert into obat_supplier (id_obat, id_supplier, jumlah_supply,
harga_grosir, waktu_kirim) values
('D001','S101',100,2000000,to_date('24-01-2012','dd-mm-yyyy'));
2.2
Update
Perintah yang digunakan untuk memodifikasi data pada tabel. Syntaxnya adalah
Contoh:
UPDATE
obat_supplier
SET
harga_grosir=240000
WHERE
id_obat=’D001’;
2.3
Delete
Perintah yang digunakan untuk menghapus data pada tabel. Syntaxnya adalah
DELETEFROM
obat_supplier
WHERE
id_obat=’D001’;
2.4
Select
Perintah yang digunakan untuk menampilkan isi data pada tabel. Syntaxnya adalah
SELECT
*
FROM
obat
UPDATE
nama_tabel
SET
nama_field=data_baru
WHERE
kondisi
DELETE FROM
nama_tabel
WHERE
kondisi
SELECT *
Modul Pelatihan |Oracle Van Java 2010 11
3.
PL / SQL
3.1 Stored Procedure dan Function
Procedure di dalam Oracle memfasilitasi control data di dalam database. Procedure bisa
berupa blok statment yang tersimpan dalam skema database. Dapat diexecute berulang
kali, sesuai dengan kebutuhan.
Syntax penulisan procedure secara umum :
Contoh :
Procedure tambah_obat
CREATE OR REPLACE PROCEDURE tambah_obat(
vid obat.id_obat%type,
vnama obat.nama_obat%type,
vdesc obat.deskripsi_obat%type,
vkuantitas obat.kuantitas_tersedia%type,
vharga obat.harga_satuan%type,
vkategori obat.id_kategori_obat%type
) as
BEGIN
INSERT INTO obat (id_obat, nama_obat, deskripsi_obat, kuantitas_tersedia,
harga_satuan, id_kategori_obat)
VALUES(vid, vnama,vdesc,vkuantitas,vharga,vkategori);
END tambah_obat;
/
CREATE OR REPLACE PROCEDURE nama_procedure (parameter)
AS [deklarasi_variabel]
BEGIN
Modul Pelatihan |Oracle Van Java 2010 12 PEMROGRAMAN JAVA
a. Pengenalan java
Dalam sebagian besar bahasa pemrograman, sebuah kode program harus dikompilasi (compile) maupun diterjemahkan (interpret) sehingga dapat dijalankan di dalam sebauh komputer. Software yang digunakan untuk melakukan kompilasi kode program disebut compiler, sedangkan yang digunakan untuk melakukan interpretasi disebut interpreter, oerbedaan antara compiler dan interpreter adalah terletak pada proses ekseskusi kodenya. Compiler akan menerjemahkan isi code secara keseluruhan, sedangkan interpreter akan menerjemahkan dengan cara baris demi baris. Karena proses eksekusinya dilakukan perbaris. Maka interpreter lebih lambat dibandingkan dengan compiler.
Java menerapkan dua proses diatas. Ini berarti java berperan sebagai compiler dan interpreter. Konsepnya sederhana, mula-mula kode ditulis dengan bahasa java (berekstensi .java) akan dikompilasi (oleh kompiler) menjadi suatu kode objek. Dalam terminologi java, kode ini disebut dengan bytecode. Jadi, dalam java, hasil programnya akan berupa bytecode (berekstensi .class), bukan file .exe. selanjtunya, bytecode akan dieksekusi baris demi baris (oleh interpreter). Dengan demikian, proses kompilasi hanya dilakukan sekali, akan tetapi proses interpret akan dilakukan setiap program dieksekusi.
Bytecodahe dalam dianggap sebagai sekumpulan perintah dalam bahasa mesin untuk sebuah JVM (Java Virtual Machine).Setap interpreter java, baik yang berupa development tool maupun sebuah web brower, merupakan implementasi dari JVM. Program yang dibuat deangan java tidak mungkin dapat dijalankan didalam alat lain yang tidak memiliki JVM.
Dengan konsep bytecode ini, dalam terminologi java dikenal adanya istilah “write once, run everywhere”.
b. Java dasar
Pengelompokkan tipe data dalam java
 Integer. Kelompok ini terdiri dari tipe byte, short, int, dan long; yang digunakan untuk mempresentasikan data-data yang bertipe bilangan bulat.
 Floating point. Kelompok ini terdiri dari tipe float, dan double; yang digunakan untuk mempresentasikan data-data yang bertipe bilangan riil (mengandung pecahan).
Modul Pelatihan |Oracle Van Java 2010 13  Boolean, kelompok ini terdiri dari sebuah tipe data, yaitu boolean,; yang
mempersentasikan data dalam bentuk logika (benar/salah).
 String, kompok ini terdiri dari sebuah tipe data String; yaitu digunakan untuk mempresentasikan sebuah kata atau kalimat, dengan kata lain tipe String merupakan kumpulan karakter-karakter.
Contoh : class tipeData(){
public static void main (String arg[]){ byte a = 3;
short b = 1; int c = 2;
boolean jawaban;
d = a+b+c;
jawaban = (d == 6);
System.out.println("hasil perhitungan" + d); System.out.println(“Jawaban : ” + (jawaban)) }
}
c. Deklarasi dan inisialisasi variable  Variabel dan Tipe Data
Variabel
Variabel adalah elemen penyimpanan data secara virtual.Dalam program, data dapat digunakan sebagai operand pada operasi-operasi aritmatika logika, atau sebagai parameter dalam operasi-operasi percabangan (branching) dan operasi berulang (looping).
Setiap variabel memiliki kemampuan menyimpan suatu informasi sesuai dengan tipe data yang didekalrasikan untuk variabel tersebut saja. Sintaks pendekalrasian variabel secara umum adalah sebagai berikut:
Tipe Data
Berikut tipe variabel data pada java:  Tipe Primitif
Tipe primitive yaitu tipe data yang digunakan untuk variabel yang nilainya ditempatkan pada alokasi memori yang telah ditentukan.
Contoh:
Modul Pelatihan |Oracle Van Java 2010 14 Ada beberapa jenis tipe data primitif:
a. Integral, mempresentasikan nilai-nilai bilangan bulat. Terdiri dari 4 tipe, yaitu: byte, short, int dan long.
b. Floating point, mempresentasikan nilai-nilai bilangan real. Terdiri dari 2 tipe, yaitu float dan double.
c. Tekstual, mempresentasikan nilai nilai berupa alphabet. Tipe data yang merupakan tipe data tekstual adalah char.
d. Logika, mempresentasikan nilai-nilai logika (hanya bernilai true dan false). Tipe data yang merupakan tipe data logika adalah boolean.
Untuk lebih jelasnya dapat di lihat di tabel berikut.
Tipe Keterangan
Short short int, bilangan bulat 16 bit Int integer, bilangan bulat 32 bit Long long integer, bilangan bulat 64 bit Byte bilangan bulat 8 bit
Float bilangan pecahan 32 bit
Double bilangan pecahan 64 bit dengan presisi ganda (2xfloat) Char karakter 16 bit
Boolean mempunyai nilai true atau false
d. Operator aritmatika
Operator melakukan komputasi terhadap satu/dua objek data.Operan yang dioperasikan dapat berupa literal, variabel, atau nilai yang dikirim method.
Operator Aritmatika
Symbol Operator Contoh
+ Penjumlahan x = x + y
– Pengurangan x = x – y
* Perkalian x = x*y
/ Pembagian x = (x/y)
% Sisa pembagian (mod) x = x % y
++ Menaikkan nilai x = x++
Modul Pelatihan |Oracle Van Java 2010 15
- Negasi x = -x
Operator pembanding dan kondisional
Symbol Operator Contoh
== Sama dengan x == y
!= Tidak sama dengan x != y
> Lebih besar x > y
>= Lebih besar atau sama dengan x >= y
< Lebih kecil x < y
<= Lebih kecil atau sama dengan x <= y && Conditional AND x && y
|| Conditional OR x || y
e. Pengkondisian (if)
 KonstruksiPengambilanKeputusan
Sebelummenulis program untuk memecahkan masalah, kita harus memiliki pemahaman yang menyeluruh tentang masalah dan pendekatan untuk memecahkannya. Dalam banyak kasus pemrograman Java, muncul kebutuhan-kebutuhan untuk mengevaluasi suatu variabel. Evaluasi variable dibutuhkan untuk memutuskan arah aliran program. Untuk melakukan evaluasi terhadap satu atau lebih variabel, digunakan operator relasional yang akan membandingkan variabel-variabel yang akan dievaluasi dengan nilai tertentu. Sedangkan operator kondisional merupakan operator-operator yang mengatur arah aliran program berdasarkan hasil evaluasi terhadap satu atau beberapa variabel.
 Operator Relasional
Operator relasionaladalah operator yang
Modul Pelatihan |Oracle Van Java 2010 16 Operator Kondisional
Operator kondisionaldigunakanpadaduaataulebihekspresiboolean. Operator initerdiridari operator kondisional AND (&&) , OR (||), dan NOT (!) .
KonstruksiPengambilanKeputusan
Konstruksi pengambilan keputusan adalah konstruksi yang memungkinkan program melakukan evaluasi terhadap variabel atau kondisi kemudian menjalankan alur program yang sesuai dengan kondisi.Dalam hal ini, program dikatakan mengambil keputusan berdasarkan hasil evaluasi variabel atau kondisi. Ada beberapa konstruksi pengambilan keputusan, yaitu konstruksi IF, IF..ELSE, dan konstruksi SWITCH.
Konstruksi IF
Modul Pelatihan |Oracle Van Java 2010 17 f. Pengulangan (looping)
While loop
Looping ini merupakan perulangan yang akan terus berlangsung sampai
ditemukannya kondisi yang cocok atau sudah menemukan kondisi tertentu.
Syntax :
while(boolean_expression){
code_block;
}
//akhir dari konstruksi while
//program dilanjutkan di sini
Contoh 3:
int i = 4;
while ( i > 0 ){
System.out.print(i);
i--;
}
Contoh diatas akan mencetak angka 4321 pada layar. Perlu dicatat jika bagian
i--; dihilangkan, akan menghasilkan pengulangan yang terus menerus (infinite
Modul Pelatihan |Oracle Van Java 2010 18
lain,pastikan agar memberikan pernyataan yang membuat pengulangan
berhenti pada suatu kondisi.
g. Method
Sebuah method adalah bagian-bagian kode yang dapat dipanggil oleh program utama atau dari method lainnya untuk menjalankan fungsi yang spesifik di dalam kelas.Method dapat dibagi menjadi fungsi dan prosedur.
Fungsi adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah dengan mengembalikan hasil.
Prosedur adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah tanpa mengembalikan suatu nilai hasil.
Secara umum method dalam java adalah sebuah fungsi. Berikut adalah karakteristik dari method :
1. Dapat mengembalikan satu nilai atau tidak sama sekali.
2. Dapat diterima beberapa parameter yang dibutuhkan atau tidak ada parameter sama sekali. Parameter bisa juga disebut sebagai argumen dari fungsi.
3. Setelah method telah selesai dieksekusi, dia akan kembali pada method yang memanggilnya.
 Method tanpa nilai balikan
Method ini merupakan method yang tidak mengembalikan nilai.Maka dari itu, kita harus mengganti tipe kembalian dengan kata kunci void. Berikut ini kode program yang dimaksud:
class Kotak{
double panjang; double lebar; double tinggi;
//mendefinisikan method void (tidak mengembalikan nilai)
void cetakVolume(){
System.out.println("Volume kotak = " +(panjang*lebar*tinggi)); }
}
Modul Pelatihan |Oracle Van Java 2010 19 double tinggi;
//mendefinisikan method yang mengembalikan tipe double double hitungVolume(){
//menghitung volume
double vol = panjang*lebar*tinggi;
//mengembalikan nilai return vol;
} }
h. Array satu dimensi dan array 2 dimensi
Array harus di deklarasikan seperti layaknya sebuah variable, apabila Anda mendeklarasikan array, maka harus membuat sebuah list dari tipe data, yang diikuti oleh tanda kurung siku buka dan kurung siku tutup, yang diikuti oleh nama identifier, ex:
Int [] ages; Atau Int ages[];
Setelah pendeklarasian, kita harus membuat array dan menentukan beberapa panjangnya dengan sebuah konstruktor, proses ini java disebut instantiasi (kata dalam java yang berarti membuat). Untuk meng-instantiasi sebuah objek, kita membutuhkan sebuah konstruktor. Kita akan membicarakan lagi meng-instantiasi dan pembuatan konstruktor pada praktikum selanjutnya.
//deklasrasi objek Int ages[];
//instantiasi objek Ages = new int[100]; Atau bisa juga ditulis
//deklarasi dan instantiasi Int ages[] = new int [100];
Modul Pelatihan |Oracle Van Java 2010 20 Index Dimulai dari nol,kemudian akan terus bertambah sampai list value dari array
tersebut berakhir.perlu dicatat, bahwa elemen-elemen didalam array dimulai dari 0 sampai dengan (ukuran array-1).
untuk mengetahui berpa banyak elemen didalam sebuah array, anda dapat menggunakan length (Panjang) field dalam array. panjang field dalam array akan mengembalikan ukuran dari array itu sendiri. Sebagai contoh: arrayName. Length
Array multi dimensi array multidimensi diimplementasikan sebagai array didalam array. Array multidimensi dideklarasikan dengan menambahakan jumlah randa kurung setelah nama array.
public static void main(String[] args) { int[][] angka= {
{1},{2}, {3},{4} };
Untuk mengakses sebuah elemen didalam array multidimensi, sama saja dengan mengakses array satu dimensi. Misalnya saja, untuk mengakses element pertama dari baris pertama didalam array dogs, kita akan menulis, System.out.print( angka[0][0]);
i. GUI (Graphical User Interface)
Graphical User Interface (GUI) merupakan interface grafis aplikasi yang memfasilitasi
Modul Pelatihan |Oracle Van Java 2010 21 h. JLabel
LabelmerupakankomponenGUIyangberfungsiuntukmenampilkansuatuteks.Tekstersebu
tbiasanyabersifatreadonly.Umumnyaprogrammerjarangsekalimengubahisisuatulabel.Ke
lasuntukmenampilkanlabeldiGUIberbasisJavabernamaJLabel.Kelasiniditurunkandarikel
asJComponent.
Sebuah label dapat diinisialisasi dengan syntax berikut ini. label1=newJLabel("SistemInformasiITTelkom");
i. JButton
Buttonmerupakankomponenmiriptombol.Buttonterdiridaribeberapatipe,yaitucommand
button,togglebutton,checkboxes,danradiobutton. Di atas JButton
dapatdiletakkansuatulabelteks,ataulebih dikenal sebagai Button label
dansuatugambaricon.
Teks label atau gambar icon yang akan ditulis di atas JButton dapat diinisialisasi melalui
konstruktor JButton berikut ini.
JButton myButton = new JButton( "Label" );
JButton myButton = new JButton( "Label",myIcon);
j. JTeksfield dan JPassword
JTextFields dan JPasswordField adalah area yang digunakan untuk
menampilkan,memperbaharui, atau menuliskan suatu teks.JTextField diturunkan dari
JTextComponent sedangkan JPasswordField diturunkan dari JTextField. Berbeda dengan
JTextField, JPasswordField menampilkan teks dalam format asterisk (*). Berikut ini
contoh gambar JTextField dan JPasswordField.
Contoh penggunaan JLabel
Modul Pelatihan |Oracle Van Java 2010 22 k. JFrame
Frame adalah salah satu container yang ada dalam swing. Container adalah komponen yang dapat menampung komponen lain di atasnya. di atas JFrame kita bisa menaruh JLabel, JTextField, JtextArea, JButton, bahkan JPanel (JPanel adalah termasuk container).
l. JPanel
Kelas JPanel diturunkan dari JComponent.Setiap JPanel adalah Container. Pada JPanel
Dapat ditambahkan beberapa komponen atau panel lain. Ukuran area JPanel diukur
berdasarkan komponen yang dicakupnya dan terus berkembang untuk mengakomodasi
komponen yang ditambahkan padanya.
m. JTable
JTabel merupakan komponen untuk menampilkan data dalam tabel.Biasanya komponen
ini sering digunakanuntukmenampilkandata‐datayangdiambildaridatabase.
Sebuah tabel beserta modelnya dapat dibuat dengan syntax berikut ini. JTable table = new JTable(theModel);
n. JToolbar
Contoh penggunaan JButton
Modul Pelatihan |Oracle Van Java 2010 23 Swing menyediakan komponen baru yang tidak disediakan oleh AWT yaitu
JToolBar.Pada dasarnya, JToolBar memiliki kesamaan fungsi dengan JPanel pengikat
button kecil.
Namun,perbedaanutamanyaadalahJToolBarbersifatdockableataufloatable,dimanaJToolB
ardapatdidragkeluaroriginalwindow,sehinggamenjadistandalonewindow.JToolBarjugad
apatdi‐drag kembali ke dalam window atau dipindahkan posisinya ke samping kiri,
kanan, atas, atau bawah window.
o. Layout
Layoutmengatur penempatan objek-objek yang diletakkan di atas sebuah container.
Penggunaan layout memberikan kemudahan dibandingkan dengan menentukan ukuran
eksak dan posisi setiap komponen, sehingga para programmer akan lebih
berkonsentrasi terhadap urusan "loo and feel" saja. Tipe‐tipe layout dapat berupa
FlowLayout, BorderLayout,GridLayout atauGridbagLayout.
p. Action Listener
ActionListener mengatur apa saja method yang akan dilakukan saat objek itu berubah
state (ada perintah yang diberikan ke tombol) seperti button click, open form, on close
dan lain-lain.
q. MVC Konsep
MVC adalah arsitektur aplikasi yang memisahkan kode-kode aplikasi dalam tiga lapisan, Model, View dan Control. MVC termasuk dalam arsitektural design pattern yang menghendaki organisasi kode yang terstruktur dan tidak bercampur aduk. Ketika aplikasi sudah sangat besar dan menangani struktur data yang kompleks, harus ada pemisahan yang jelas antara domain model,komponen view dan kontroler yang mengatur penampilan model dalam view. Arsitektur MVC ini memungkinkan adanya perubahan dalam domain model tanpa harus mengubah code untuk menampilkan domain model tersebut. Hal ini sangat bermanfaat ketika aplikasi mempunyai domain model dan view komponen sangat besar dan kompleks.
Modul Pelatihan |Oracle Van Java 2010 24 perlu diketahui kalo Swing dibuat menggunakan konsep MVC (Model View Controller), sehinnga setiap komponen terdiri dari bagian Model, bagian View, dan bagian Controller.
 Model, merupakan bagian yang digunakan untuk menampung data  View, merupakan bagian untuk menampilkan data
 Controller, merupakan bagian yang digunakan untuk proses manipulasi data.
Studi Kasus
- Membuat halaman Login
Langkah-langkah :
1. Buat frame login
public Login() {
frameLogin = new JFrame("Compilasi"); frameLogin.setVisible(true);
frameLogin.setSize(300, 180); frameLogin.setResizable(false); loginGUI();
}
 .setVisible(true/false), untuk menampilkan atau menyembunyikan form  .setSiza(int height, int weight), untuk mengatur panjang dan lebar applikasi  .setResizable(true/false), untuk mengatur dapat di atur manual panjang dan lebar
aplikasi.
 loginGUI(), mehod untuk mengelompokan komponen-komponen penyusun GUI.
Modul Pelatihan |Oracle Van Java 2010 25
Layout = new BorderLayout(5,5); flowLay = new FlowLayout();
gridLayout = new GridLayout(2,2, 1, 10); ……
//setPanel
panelAtas = new JPanel(); panelTengah = new JPanel(); panelBawah = new JPanel();
loweredbevel = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED); //setlayout
//tambah ke frame
frameLogin.add(panelAtas, BorderLayout.NORTH); frameLogin.add(panelTengah, BorderLayout.CENTER); frameLogin.add(panelBawah, BorderLayout.SOUTH);
 new BorderLayout(5,5), untuk mengatur layout utama pada frame, denganl lima cell kotak yang disediakan. NORTH, CENTER, SOUTH, LEFT, RIGHT
 new FlowLayout(), untuk mengatur layout bawah menjadi sejajar, rata kiri atau rata kanan
 new GridLayout(2,2,1,10), mengatur jumlah cell kotak yang disediakan 2,2 ada 2 baris dan 2 kolom, 1 merupakan 1px jarak horizontal komponen, 10
merupakan 10px jarak vertikal komponen.
 BorderFactory, merupakan class library yang digunakan untuk membuat border pada JPanel,berguna untuk menandai/mengtahui panel 1 dan panel
laiinya.
 .setBorder(), untuk menandai perbatas panel  setLayout(), untuk membuat Layout pada panel
3. Menambahkan komponen pada masing-masing Panel
//objek Label
Header = new JLabel(); ..
//objek tombol
Login = new JButton("Login"); ..
//objek text field
userName = new JTextField(); ..
//setText field
Modul Pelatihan |Oracle Van Java 2010 26
//tambah komponen panel bwah panelBawah.add(Login);
..
//tambah komponen panel atas panelAtas.add(Header); ..
//tambah komponen panel tengah panelTengah.add(L_userName); ..
 .setText(“abc”), untuk memberi label ke komponen
 .add, berguna untuk menambah/menempel komponen ke dalam panel/frame
4. Membuat Action listener
Login.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(null, "Anda Menekan Tombol Login"); }
});
Cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
System.exit(0); }
});
 Login. dan Cancel. Merupakan objek tombol yang sudah di inisialisasi.  .addActionnListener(), untuk membuat tombol itu berfungsi jika ditekan
 JOptionPane, adalah kotak dialog untuk menandakan sudah ada perintah dari user
 System.exit(0), untuk memerintah aplikasi agar di tutup / close
- Membuat halaman Home
1. Membuat Frame Home
public Home(){
frameHome = new JFrame("Home"); frameHome.setVisible(true); frameHome.setSize(500, 300); homeGUI();
}
 .setVisible(true/false), untuk menampilkan atau menyembunyikan form  .setSiza(int height, int weight), untuk mengatur panjang dan lebar applikasi  .setResizable(true/false), untuk mengatur dapat di atur manual panjang dan lebar
aplikasi.
Modul Pelatihan |Oracle Van Java 2010 27 2. Membuat Layout Aplikasi
borderlay = new BorderLayout(); //objek panel
panelTengah = new JPanel(); panelBawah = new JPanel(); …
loweredbevel = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED); …
//tambah ke frame
frameHome.add(toolBar, BorderLayout.NORTH); frameHome.add(panelTengah, BorderLayout.CENTER); frameHome.add(label[3], BorderLayout.SOUTH);
 new BorderLayout(), untuk mengatur layout utama pada frame, cell kotak yang disediakan. NORTH, CENTER, SOUTH, LEFT, RIGHT
 new FlowLayout(), untuk mengatur layout bawah menjadi sejajar, rata kiri atau rata kanan
 BorderFactory, merupakan class library yang digunakan untuk membuat border pada JPanel,berguna untuk menandai/mengtahui panel 1 dan panel
laiinya.
 .setBorder(), untuk menandai perbatas panel  setLayout(), untuk membuat Layout pada panel
3. Membuat toolbar
//inisalisasi toolbar toolBar = new JMenuBar(); fileMenu = new JMenu("File");
daftarObat = new JMenuItem("Daftar Obat"); lihatProfil = new JMenuItem("Lihat Profil"); keluar = new JMenuItem("Keluar ");
 new JMenuBar(), untuk membuat objek menu bar  new JMenu (“abc”), untuk membuat menu pada bar
 new JMenuItem(“abc”), unutk membuat item pada menu
4. Menambah Komponen
Modul Pelatihan |Oracle Van Java 2010 28
//tambah komponen ke panel tengah panelTengah.add(label[0]);
panelTengah.add(label[1]); panelTengah.add(label[2]);
 .add, berguna untuk menambah/menempel komponen ke dalam panel/frame
5. Membuat Action Listener
daftarObat.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(null, "Anda Menekan Tombol Login"); }
});
keluar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {
System.exit(0); }
});
 daftarObat. Merupakan objek JMenuBar yang sudah di inisialisasi.  keluar. Merupakan objek tombol yang sudah di inisialisasi.
 .addActionnListener(), untuk membuat tombol itu berfungsi jika ditekan
 JOptionPane, adalah kotak dialog untuk menandakan sudah ada perintah dari user
 System.exit(0), untuk memerintah aplikasi agar di tutup / close
- Membuat halaman isi
1. Membuat frame isi
public DattarObat() {
frameDaftarobat = new JFrame("Daftar Obat"); frameDaftarobat.setVisible(true);
frameDaftarobat.setSize(1100, 580); frameDaftarobat.setResizable(false); daftarObatGUI();
Modul Pelatihan |Oracle Van Java 2010 29  .setVisible(true/false), untuk menampilkan atau menyembunyikan form  .setSiza(int height, int weight), untuk mengatur panjang dan lebar applikasi  .setResizable(true/false), untuk mengatur dapat di atur manual panjang dan lebar
aplikasi.
 loginGUI(), mehod untuk mengelompokan komponen-komponen penyusun GUI.
2. Membuat Layout aplikasi
layoutBorder = new BorderLayout(5,5); frameDaftarobat.setLayout(layoutBorder);
loweredbevel = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED); //setlLayoutPanel
 new BorderLayout(5,5), untuk mengatur layout utama pada frame, denganl lima cell kotak yang disediakan. NORTH, CENTER, SOUTH, LEFT, RIGHT
 new FlowLayout(), untuk mengatur layout bawah menjadi sejajar, rata kiri atau rata kanan
 new GridLayout(rows, cols, hGap, vGap), membuatlayout dengan mangatur jumlah kolom, jumlah baris, ukuran Gap vertikal/horizontal dengan ukuran
pixel
 BorderFactory, merupakan class library yang digunakan untuk membuat border pada JPanel,berguna untuk menandai/mengtahui panel 1 dan panel
laiinya.
 .setBorder(), untuk menandai perbatas panel  setLayout(), untuk membuat Layout pada panel
3. Membuat Tabel
private static final String[] columns = { "No Obat", "Id Obat", "Jenis Obat" };
private static final String[][] rowData = { {"1", "OBT0012", "Demam"},
{"2", "OBT3423", "Batuk"} };
private JTable table;
private DefaultTableModel model; public TabelData() {
Modul Pelatihan |Oracle Van Java 2010 30
table = new JTable(model); setLayout(new BorderLayout());
add(new JScrollPane(table), BorderLayout.CENTER); }
 String[] columns, array satu dimensi untuk membuat header
 String[][] rowData, array dua dimensi untuk menampung stream data tabel  new DefaultTableModel(row, colomns), untuk membuat data model dalam
tabel
 new JTable(model), membuat objek tabel dengan parameter objek model
4. Menambah komponen ke panel
//tambah komponen tengah
panelTengahAtas.add(td, BorderLayout.CENTER); //tambah komponen bawah
panelTengahBawah.add(label[0]);
fieldCari = new JTextField(20); //tambah kompnen panel atas
panelAtas.add(new Label("Daftar Obat ")); //tambah kompnen panel bawah
panelBawahKiri.add(fieldCari); panelBawahKanan.add(cancel); panelBawah.add(panelBawahKiri); ..
//tambah komponen panel kanan panelKananAtas.add(tambah); ...
panelKanan.add(panelKananAtas);
 .add, berguna untuk menambah/menempel komponen ke dalam panel/frame
5. Membuat Action Listener
cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {
performedTombolCancel(arg0); }
});
cari.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {
performedTombolCari(arg0); }
});
Modul Pelatihan |Oracle Van Java 2010 31
performedTombolTambah(arg0); }
});
hapus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {
performedTombolHapus(arg0); }
});
edit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {
performedTombolEdit(arg0); }
});
simpan.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(null, "Anda Menekan Tombol Login"); }
});
td = new TabelData();
td.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent mvt){
System.out.println((String)td.getSelectedValue()); }
Modul Pelatihan |Oracle Van Java 2010 32 MVC (MODEL VIEW CONTROLLER)
MVC adalah arsitektur aplikasi yang memisahkan kode-kode aplikasi dalam tiga
lapisan, Model, View dan Control. MVC termasuk dalam arsitektural design
pattern yang menghendaki organisasi kode yang terstruktur dan tidak bercampur
aduk. Ketika aplikasi sudah sangat besar dan menangani struktur data yang
kompleks, harus ada pemisahan yang jelas antara domain model, komponen view dan
kontroler yang mengatur penampilan model dalam view. Arsitektur MVC ini
memungkinkan adanya perubahan dalam domain model tanpa harus mengubah
code untuk menampilkan domain model tersebut. Hal ini sangat bermanfaat ketika
aplikasi mempunyai domain model dan view komponen sangat besar dan kompleks.
MVC CRUD DAFTAR OBAT
MODEL,
Secara garis besar, berisi Logic/ logika aplikasi, dalam sesi ini model yang kita buat ada 9 kelas
yang mempunyai fungsi berbeda masing-masing kelasnya.
1. Daftarobat Action.java
Mempunyai fungsi mengatur aksi dalam form DaftarObat.
Modul Pelatihan |Oracle Van Java 2010 33 public void tombolCari(){}
public void tombolCancel(){}
public void editTrue(DattarObat view){} public void editFalse(DattarObat view){} public void fireOnChange(){}
public void tombolEdit(){}
public void mouse() throws SQLException{} method setter getter
 Method setter getter, adalah suatu method untuk pengisian dan pengambilan nilai variable pada suatu class
 kosongTeks(), method untuk melakukan pengosongan dalam teksfield  tombolHapus(), method untuk melakukan penghapusan Database,
 tombolTambah(), method untuk melakukan aksi tambah ketika tombol di tekan  tombolSimpan(), method untuk melakukan aksi jika tombol simpan di tekan  tombolCari(), method untuk melakukan aksi jika tombol cari ditekan
 tombolCancel(), method untuk melakukan aksi jika tombol cancel ditekan
 tomboleditTrue(), method untuk mengembalikan nilai teks field menjadi true untuk melakukan pengeditan
 tomboleditFalse(), method untuk mengembalikan nilai teks field menjadi false untuk melakukan penyimpanan
 fireOnChange(), method untuk menjalankan method yang ada di interface, berguna untuk jika ada perubahan nilai di aksi akan langsung di rubah di GUI
 tombolEdit(), untuk melakukan aksi jika tombol edit ditekan
 mouse(), untuk melakukan aksi jika ada mouse melakukan perintah di GUI, seperti klik, double klik, klik kanan,
2. DeleteDB.java
Mempunyai fungsi untuk melakukan delete di Database
public DeleteDB(String id_obat) throws SQLException {deleted(id_obat);} public void deleted(String id_obat) throws SQLException{
Connection Conn;
Conn = new KoneksiDB().getConnection();
String Query = "delete from daftarobat1 WHERE Id_Obat = '"+id_obat+"'"; Statement smnt = Conn.createStatement();
smnt.executeUpdate(Query);
System.out.println("berhasil dihapus"); }
Modul Pelatihan |Oracle Van Java 2010 34  Statement smnt = Conn.createStatement(), pembuatan objek statement yang di
assignment dengan Conn.createStatement, gunanya untuk mengeksekusi String
query yang sudah di definisikan
3. HomeAction.java
Mempunyai fungsi mengtur aksi dalam form Home
public void daftarObat() throws SQLException {} public void keluar(){}
 daftarObat(), method untuk melakukan aksi jika menu daftar obat di tekan
4. InsertDB.java
Mempunyai fungsi untuk melakukan Insert data di Database
5. KoneksiDB.java
Melakukan koneksi ke database
public class KoneksiDB{
private String url, dbn, usr, pwd; public Connection getConnection() {
dbn = "jdea";
url = "jdbc:mysql://localhost/"+dbn; usr = "root";
pwd = "";
Connection con = null; try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url,usr,pwd); System.out.println("*** Connect to the database ***");
}catch (ClassNotFoundException e) { e.printStackTrace();
}catch (SQLException e) { e.printStackTrace(); }
return con; }
}
 Dalam satu class ini, berfungsi sebagai koneksi ke database, 6. LoginAction.java
Mempunyai fungsi mengatur aksi dalam form Login public LoginListener getLoginListener() {}
public void setLoginListener(LoginListener loginListener) {} public String getUserName() {}
public void setUserName(String userName) {} public String getPassword() {}
Modul Pelatihan |Oracle Van Java 2010 35 public void reset(){}
public void submitTombol(){} public void cancelTombol(){} public void fireOnChange(){}
 Method dengan set/get memberi dan mengambil nilai dari attribut dari suatu class  Reset(), untuk memberikan nilai kosong ke text field, jika sudah selesai di isi  submitTombol(), untuk memberi nilai aksi ke tombol login
 cancelTombol(), untuk memberi nilai aksi ke tombol cancel
 fireOnChange(), untuk memberikan nilai langsung dari aksi ke GUI
7. SelectDB.java
Mempunyai fungsi melakukan select Database atau reload Database
//Access Rows and Columns from database Vector<String> Columns = new Vector<String>();
Vector<Vector<Object>> Rows = new Vector<Vector<Object>>(); //Get Columns From database
for (int i = 1; i <= cols; i++){
Columns.addElement(metaDt.getColumnName(i)); }
Rows.clear(); // clear unwanted value if exist any in Rows variable. //Get RowsNames From database
while( results.next()){
Vector<Object> row = new Vector<Object>(cols); for (int i = 1; i <= cols; i++){
row.addElement(results.getObject(i)); }
Rows.addElement(row); }
 Vector, untuk melakukan penampungan data dari database
8. SelectRowDB.java
Merupakan aksi dari mouse listener untuk melakukan aksinya, jika klik mouse
public SelectRowDB(DattarObat aksi){}
public void selectRow(String id_obat) throws SQLException{} public void retreiveData(ResultSet results) throws SQLException{}
 SelectRowDB(), constructor class untuk melakukan referensi objek by parameter 9. UpdateDB.java
Mempunyai fungsi untuk mengupdate database.
public void Updated(String id_obat, String kategori, String kuantitas, String harga, String desc, String waktu, String supplier, String jenis_obat, String select) throws SQLException{
Modul Pelatihan |Oracle Van Java 2010 36 Conn = new KoneksiDB().getConnection();
String Query = "UPDATE daftarobat1 set Id_Obat='"+id_obat+"',
Kategori='"+kategori+"', kuantitas='"+kuantitas+"', harga='"+harga+"', desk='"+desc+"', waktu='"+waktu+"', supplier='"+supplier+"', Jenis_Obat='"+jenis_obat+"' where id_obat='"+select+"'";
System.out.println(Query);
Statement smnt = Conn.createStatement(); smnt.executeUpdate(Query);
System.out.println("berhasil diupdate"); }
MODEL.EVENT
Secara garis besar, dalam package ini berupa interface class, yang berfungsi untuk
menyambungkan antara event aksi dan GUI, jika ada aksi maka GUI akan juga ikut berubah
1. DaftarobatListener.java
Melalukan hubungan dengan view DaftarObat.java
public interface DaftarObatListener {
public void onChange(DaftarobatAction aksi); }
2. LoginListener.java
Melakukan hubungan dengan view Login.java
public interface LoginListener {
public void onChange(LoginAction login); }
3. HomeListener.java
Melakukan hubungan dengan Home.java
public interface HomeListener {
public void onChange(HomeAction aksi); }
VIEW,
Secara garis besar, dalam package ini menampung semua view/tampilan GUI.Yang menyusun
semua tampilan pada aplikasi.
1. Home.java
Untuk membuat tampilan dalam form Home
homeAksi = new HomeAction();
homeController = new HomeController(); homeAksi.setListener(this);
homeController.setHomeAksi(homeAksi);
2. Login.java
Untuk membuat tampilan dalam form Login
Modul Pelatihan |Oracle Van Java 2010 37 loginController = new LoginController();
loginAksi.setLoginListener(this); loginController.setAksi(loginAksi);
3. TableDatat.java
Untuk membuat tampilan Jtable dalam form Table Obat
public TabelData() throws SQLException { model = new SelectDB().selected(); table = new JTable(model); setLayout(new BorderLayout());
add(new JScrollPane(table), BorderLayout.CENTER); }
4. DaftarObat.java
Untuk membuat tampilan dalam form DaftarObat
aksi = new DaftarobatAction();
daftarControl = new DaftarobatController(); aksi.setListener(this);
daftarControl.setAksi(aksi);
CONTROLLER,
Secara garis besar, dalam package ini berfungsi untuk melakukan pengaturan kemana aplikasi
yang akan di eksekusi, dalam package ini tidak ada logic.
1. HomeController.java
Pengaturan aksi didalam Home.java
public void setHomeAksi(HomeAction homeAksi) {}
public void daftarObatForm(Home view) throws SQLException{} public void keluar(Home view){}
2. LoginController.java
Pengaturan aksi didalam Login.java
public void setAksi(LoginAction aksi) {} public void loginForm(Login view){} public void cancelForm(Login view){}
3. DaftarobatController.java
Pengaturan aksi didalam Daftarobat.java
public void setAksi(DaftarobatAction aksi) {} public void tambahForm(DattarObat view){} public void cancelForm(DattarObat view){}
public void hapusForm(DattarObat view) throws SQLException{} public void simpanForm(DattarObat view) throws SQLException{} public void cariForm(DattarObat view){}