1 2 Studi Kasus : Pembuatan aplikasi Apotik MODUL PELATIHAN JAVA SWING ORACLE Pengantar Oracle Tipe data pada Oracle Nama tipe data Varchar2(size) Fun...
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 menggunakan tipe ini. Modul Pelatihan |Oracle Van Java 2010
1
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 dan video.
Modul Pelatihan |Oracle Van Java 2010
2
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 Create nama_table(nama_kolom1 tipe_kolom1, nama_kolom2 tipe_kolom2....nama_kolomn tipe_kolom n)
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 Syntax ini berfungsi untuk menjaga defendensi functional drai relasi table ketika terjadi penghapusa sebuah baris pada tabel master. Jika sebuah baris pada tabel master di hapus, maka id yang terhapus pada tabel master tersebut akan dihapus juga di setiap baris pada tabel relasi sesuai dengan baris yang terdelete di tabel master
Modul Pelatihan |Oracle Van Java 2010
5
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 |]
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
a. Menambah kolom baru
Modul Pelatihan |Oracle Van Java 2010
6
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 : Alter table obat Modul Pelatihan |Oracle Van Java 2010
7
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;
a. Drop kolom ALTER TABLE nama_tabel DROP COLUMN nama_kolom; Contoh: ALTER TABLE obat_supplier DROP COLUMN waktu_kirim; Modul Pelatihan |Oracle Van Java 2010
8
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 : DESC NAMA_TABEL
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 Insert into *(nama_column1,nama_column2,…)+ values (value1,value2,…)
2.2 Update Perintah yang digunakan untuk memodifikasi data pada tabel. Syntaxnya adalah UPDATE nama_tabel SET nama_field=data_baru WHERE kondisi
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 DELETE FROM nama_tabel WHERE kondisi
DELETEFROM obat_supplier WHERE id_obat=’D001’;
2.4 Select Perintah yang digunakan untuk menampilkan isi data pada tabel. Syntaxnya adalah SELECT * FROM nama_tabel
SELECT * FROM obat Modul Pelatihan |Oracle Van Java 2010
10
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 : CREATE OR REPLACE PROCEDURE nama_procedure (parameter) AS [deklarasi_variabel] BEGIN [blok statment] END nama_procedure
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; /
Modul Pelatihan |Oracle Van Java 2010
11
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).
Karakter, kelompok ini terdiri dari tipe char; yang digunakan untuk mempresentasikan data-data dalam bentuk karakter alfanumerik dan simbol.
Modul Pelatihan |Oracle Van Java 2010
12
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: Short bilangan = 13; Modul Pelatihan |Oracle Van Java 2010
13
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++
--
Menurunkan nilai
x = x -Modul Pelatihan |Oracle Van Java 2010
14
-
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
<=
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
digunakanuntukmembandingkanduabuahnilai dan menghasilkan nilai berupa true (benar) atau false (salah).
Modul Pelatihan |Oracle Van Java 2010
15
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 Statement if menentukan sebuah statement (ataublokkode) yang akan dieksekusi bila persyaratan (expression) bernilai true.Gambar di bawah menunjukkan alur control keputusan pada konstruksi IF.
Modul Pelatihan |Oracle Van Java 2010
16
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 loop).Sehingga, ketika menggunakan while-loop atau bentuk pengulangan yang Modul Pelatihan |Oracle Van Java 2010
17
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)); } } class Kotak{ double panjang; double lebar; Modul Pelatihan |Oracle Van Java 2010
18
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]; Untuk mengakses sebuah elemen dalam array, atau mengakses sebagian dari arrar, Anda harus menggunakan sebuah nomor atau yang disebut sebagai index atau subscript. Modul Pelatihan |Oracle Van Java 2010
19
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 interaksi antara pengguna dengan pogram. Gambar beriku contoh tampilan GUI.
Modul Pelatihan |Oracle Van Java 2010
20
h. JLabel LabelmerupakankomponenGUIyangberfungsiuntukmenampilkansuatuteks.Tekstersebu tbiasanyabersifatreadonly.Umumnyaprogrammerjarangsekalimengubahisisuatulabel.Ke lasuntukmenampilkanlabeldiGUIberbasisJavabernamaJLabel.Kelasiniditurunkandarikel asJComponent. Sebuah label dapat diinisialisasi dengan syntax berikut ini. label1=newJLabel("SistemInformasiITTelkom");
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);
Contoh penggunaan JButton 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. Modul Pelatihan |Oracle Van Java 2010
21
Contoh penggunaan JButton 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.
Contoh penggunaan JPanel 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);
Contoh penggunaan JTabel.
n. JToolbar
Modul Pelatihan |Oracle Van Java 2010
22
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.
Contoh penggunaan JToolbar. 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
23
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. 2. Buat Layout Aplikasi Modul Pelatihan |Oracle Van Java 2010
24
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 panelBawah.setLayout(flowLay); frameLogin.setLayout(Layout); panelTengah.setLayout(gridLayout); //setborder panelBawah.setBorder(loweredbevel); panelTengah.setBorder(loweredbevel); panelAtas.setBorder(loweredbevel); …… //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 Header.setText("Login Sistem"); ..
Modul Pelatihan |Oracle Van Java 2010
25
//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. loginGUI(), mehod untuk mengelompokan komponen-komponen penyusun GUI. Modul Pelatihan |Oracle Van Java 2010
26
2. Membuat Layout Aplikasi borderlay = new BorderLayout(); //objek panel panelTengah = new JPanel(); panelBawah = new JPanel(); … loweredbevel = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED); … //setlayout frameHome.setLayout(borderlay); panelTengah.setLayout(new GridBagLayout()); … //setborder panelTengah.setBorder(loweredbevel); … //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 //setkomponen menu toolbar fileMenu.add(daftarObat); fileMenu.add(lihatProfil); fileMenu.add(keluar); toolBar.add(fileMenu);
Modul Pelatihan |Oracle Van Java 2010
27
//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
28
.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 panelBawah.setLayout(new FlowLayout()); panelBawahKiri.setLayout(new FlowLayout()); panelBawahKanan.setLayout(new FlowLayout()); panelKananAtas.setLayout(new GridLayout(4,1,1,10)); panelTengahBawah.setLayout(new GridLayout(7,2,1,10)); //setBorder panelAtas.setBorder(loweredbevel); panelTengah.setBorder(loweredbevel); panelKanan.setBorder(loweredbevel);
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() { model = new DefaultTableModel(rowData, columns);
Modul Pelatihan |Oracle Van Java 2010
29
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]); panelTengahBawah.add(idObat); ... //setPanel panelTengahBawah.add(label[0]); panelTengahBawah.add(idObat); panelTengah.add(panelTengahAtas); panelTengah.add(panelTengahBawah); //setText field 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); } }); tambah.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) {
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. public void kosongTeks(){} public void tombolHapus(){} public void tombolTambah(){} public void tombolSimpan(){} Modul Pelatihan |Oracle Van Java 2010
32
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"); } String Query = “ …. “, merupakan isi dari perintah SQL untuk melakukan eksekusi command database
Modul Pelatihan |Oracle Van Java 2010
33
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() {} public void setPassword(String password) {} Modul Pelatihan |Oracle Van Java 2010
34
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> Rows = new Vector>(); //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