Kesan : saya sedikit menyukai pemrogramn java setelah mengikuti matakuliah ini dari yang sama sekali tdak suka karena menganggap terlalu susah.
Pesan : pesan untuk dosen saya.tetaplah seperti ini.
kritik : NO CommenD!
yah selama dipoliteknik telkom pertama ada rasa heran ,aneh , dan sedikit penyesalan. Tapi setelah berjalan beberapa semester enjoy aja lah, nikmatin apa yang udah diberikan oleh Allah SWT. :)
sebelum kita mengelola database pada MySQL kita perlu membuat terlebih dahulu sebuah koneksi yang dalam java dekenal dengan java.sql.Connection. tapi sebelumnya kita harus menentukan sebuah driver setiap DBMS yang akan kita gunakan. karena kita menggunakan DBMS MySQL, maka kita harus membuat instansiasi dari Driver milik MySQL. dan masalahnya, java tidak menyediakan driver untuk MySQL, sehingga kita harus mendownload driver MySQL dari situs resmi MySQL. tapi tenang saja, karena kita pake Netbeans, semuanya telah tersedia, hahahaha….
untuk memasukkan sebuah library untuk drriver MySQL pada netbeans gampang saj. caranya klik kanan pada library milik project yang akan kita gunakan lalu pilih add library :
setelah itu cari library MySQL JDBC Driver lalu klik tombol add library :
sekarang bisa dilihat kalo MySQL JDBC Driver telah ada di library project yang akan kita buat :
setelah itu buat sebuah class untuk koneksi (jika anda belum tahu cara membuat koneksi, silahkan lihat kembali tutorial MySQL dan Netbeans bagian 1) :
setelah itu coba running, jika berhasil maka akan mengeluarkan
tulisan “Koneksi Berhasil”, jika gagal, maka akan keluar tulisan
“Koneksi Gagal”. nach sekarang saya akan anggap koneksi berhasil. kalo
gagal, pasti ada yang salah dengan yang anda ketikkan, ulangi lagi
sampai berhasil….
Java.sql.Statement
nah sekarang kita akan masuk ke proses INSERT, UPDATE, DELETE pada database. caranya kita harus membuat sebuah Statement, lalu dengan statement tersebut kita bisa membuat proses eksekusi INSERT, UPDATE, dan DELETE. namun tak bisa mengeksekusi proses SELECT karena proses tersebut mengembalikan nilai, makanya nanti kita akan bahas prose SELECT di subbab selanjutnya.
untuk membuat Statement, kita cukup memanggil metode createStatement() milik Connection. ini contohnya :
sedangkan untuk melakukan proses eksekusi instruksi SQL, kita gunakan metode executeUpdate(“PERINTAH SQL”) milik Statement, contohnya kita akan mencoba membuat Statement untuk eksekusi perintah INSERT :
ternyata gampangkan membuat koneksi dan melakukan proses INSERTUPDATE dana DELETE di Java.
Java.sql.ResultSet
seperti janji saya, sekarang kita akan belajar bagaimana melakukan proses SELECT di Java. hmmmm gampang aja, pertama buat Connection, llau buat Statement lalu buat ResultSet, caranya seperti ini :
1
Connection koneksi = ...
2
Statement statement = koneksi.createStatement();
3
ResultSet result = statement.executeQuery("SELECT ...");
setelah itu untuk mendapatkan datanya gunakan metode
get[TipeData](“NAMA_KOLOM”) milik ResultSet. untuk lebih jelasnya
sekarang kita akan mencoba menampilkan seluruh data pada tabel Mahiswa
yang ada pada database NETBEANS:
statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('1','A','1988-12-29')");
12
statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('2','B','1988-12-29')");
13
statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('3','C','1988-12-29')");
14
statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('4','D','1988-12-29')");
15
statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('5','E','1988-12-29')");
16
17
ResultSet result = statement.executeQuery("SELECT * FROM MAHASISWA");
18
19
String nim;
20
String nama;
21
Date tanggalLahir;
22
intindex = 1;
23
24
while(result.next()) {
25
nim = result.getString("NIM");
26
nama = result.getString("NAMA");
27
tanggalLahir = result.getDate("TANGGAL_LAHIR");
28
29
System.out.println("Mahasiswa Ke-"+ index);
30
System.out.println("Nim : "+ nim);
31
System.out.println("Nama : "+ nama);
32
System.out.println("Tanggal Lahir : "+ tanggalLahir);
33
System.out.println();
34
index++;
35
}
36
result.close();
37
statement.close();
38
}
39
}
setelah dieksekusi, maka akan menghasilkan output seperti ini :
Mahasiswa Ke-1
Nim : 1
Nama : A
Tanggal Lahir : 1988-12-29
Mahasiswa Ke-2
Nim : 2
Nama : B
Tanggal Lahir : 1988-12-29
Mahasiswa Ke-3
Nim : 3
Nama : C
Tanggal Lahir : 1988-12-29
Mahasiswa Ke-4
Nim : 4
Nama : D
Tanggal Lahir : 1988-12-29
Mahasiswa Ke-5
Nim : 5
Nama : E
Tanggal Lahir : 1988-12-29
sekarang akan saya beritahu apa itu metode next() milik ResultSet. metode next() merupakan
metode yang digunakan untuk mengecek apakah ada record lagi selain pada
posisi index yang saat ini (pada awalnya posisi index ResultSet adalah 0
(nol)) jika ada maka index akan loncat kedepan misal dari 0 menjadi 1
dan akan mengembalikan nilai true, tetapi jika tak ada maka index tetap disitu dan akan mengembalikan nilai false;
selain itu perlu diketahui, bahwa class Statement dan ResultSet serta
Connection memiliki metode yang bernama metode close(). metode ini
merupakan metode yang digunakan untuk menutup. misal ketika Satement
kita panggil metode close() nya maka Statement tersebut akan ditutup,
sehingga koneksi ke MySQL akan terputus dan dari memori akan dibapus.
jadi metode close() harus selalu dipanggil jika proses telah selesai,
karena jika tidak maka akan terjadi penumpukan memori…
Event Listener merupakan interface yang akan meng-handle event
yang terjadi. setiap type event mempunyai interface yang bersesuaian.
Listener tersebut harus diimplementasikan oleh class yang akan
meng-handle event
Action Listener : Terjadi ketika komponen seperti tombol diklik atau ditekan dengan tombol enter.
CONTOH ActionListener:
button.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent arg0) { if (field.getText().equals("")) { System.out.println("tidak ada text yang ditulis!!"); JOptionPane.showMessageDialog(frame, label, "judul pesannya", 1); } else { JFrame frame2 = new JFrame("frame hasil"); frame2.setSize(600, 400); frame2.setLocationRelativeTo(frame); final JTextPane textPane = new JTextPane(); final JScrollPane ScrollPane = new JScrollPane(textPane);
private void panggilKoneksi(final JTextField field, final JTextPane textPane) { try { URL url = new URL(field.getText()); URLConnection con = url.openConnection(); InputStream is = con.getInputStream(); ByteArrayOutputStream os = new ByteArrayOutputStream();
byte[] b = new byte[10]; int len; while ((len = is.read(b, 0, b.length)) != -1) { os.write(b, 0, len); }
textPane.setText(new String(os.toByteArray()));
os.close(); is.close();
} catch (MalformedURLException e) { JLabel label2 = new JLabel("salah tulis di URL"); JOptionPane.showMessageDialog(frame, label2, "kesalahan tulis", 1); } catch (IOException e) { JLabel label3 = new JLabel("salah tulis di URL ini"); JOptionPane.showMessageDialog(frame, label3, "kesalahan tulisan", 0);
}
} });
Mouse Listener : Mendeteksi tombol mouse yang digunakan.
void mouseClicked (MouseEvent e) Mouse di-click atau ditekan tombolnya kemudian langsungdilepaskan.
void mouseEntered (MouseEvent e) Ketika mouse memasuki komponen.
void mouseExited(MouseEvent e) Ketika mouse keluar dari komponen.
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
MouseEventsDemo med = new MouseEventsDemo(“Mouse Events Demo”);
med.launchFrame();
FlowLayout menyusun komponen berdasarkan ukuran default masing-masing, dengan posisi mulai dari kiri ke kanan dan dari atas ke bawah di dalam container yang digunakan.
FlowLayout dapat memiliki “row justification”: LEFT, CENTER, atau RIGHT serta “padding” horizontal/vertical.
Secara default, flow layout menggunakan justification CENTER. Artinya, semua komponen akan disimpan di posisi tengah-tengah.
FlowLayout merupakan default untuk JPanel.
CONTOH CODING FlowLayout:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Flow extends JFrame {
public Flow( ) {
createUserInterface();
}
private void createUserInterface(){
// FlowLayout is default layout manager for a JPanel
JPanel panel1 = new JPanel();
panel1.setLayout(new FlowLayout()); // !! baris ini dapat dihapus !!
panel1.add(new JButton("One"));
panel1.add(new JButton("Two"));
panel1.add(new JButton("Three"));
panel1.add(new JButton("Four"));
panel1.add(new JButton("Five"));
this.add(panel1);
this.setTitle("Flow");
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
this.setSize(400, 75);
this.setLocation(200, 200);
this.setVisible(true);
}
public static void main(String[] args) {
Flow app = new Flow();
}
}
CardLayout
merupakan layout manager yang mampu menciptakan efek “tumpukan” komponen. Artinya, layout ini tidak memposisikan komponen di lokasi-lokasi tertentu di dalam kontainer, melainkan menampilkannya satu demi satu.
Penggunaan CardLayout biasanya untuk membuat panel yang bersifat custom-tabbed.
Namun, sebenarnya kita dapat membuat panel tersebut dengan menggunakan komponen JTabbedPane.
CONTOH CODING CardLayout:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Card extends JPanel {
CardLayout cards = new CardLayout( );
public Card( ) {
setLayout(cards);
ActionListener listener = new ActionListener( ) {
public void actionPerformed(ActionEvent e) {
cards.next(Card.this);
}
};
JButton button;
button = new JButton("one");
button.addActionListener(listener);
add(button, "one");
button = new JButton("two");
button.addActionListener(listener);
add(button, "two");
button = new JButton("three");
button.addActionListener(listener);
add(button, "three");
}
public static void main(String[] args) {
JFrame frame = new JFrame("Card");
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setSize(200, 200);
frame.setLocation(200, 200);
frame.setContentPane(new Card( ));
frame.setVisible(true);
}
}
BoxLayout
Javax.swing memiliki beberapa tambahan layout manager lagi, salah satunya adalah: BoxLayout.
Layout manager ini sangat berguna untuk membuat toolbars sederhana atau vertical button bars.
Cara kerjanya sangat sederhana yaitu menempatkan komponen dalam satu baris atau satu kolom.
Box memiliki beberapa methods yang akan mempermudah kita dalam menggunakan BoxLayout manager, yaitu:
createHorizontalBox() - untuk membuat box horizontal createHorizontalGlue() - untuk merekatkan komponen createHorizontalStrut(int n) - untuk memberi jarak antar komponen createVerticalBox() - untuk membuat box vertical createVerticalGlue() - untuk merekatkan komponen createVerticalStrut(int n) - untuk memberi jarak antar komponen
public class boxlayout {
public static void main(String args[]) throws Exception {
JFrame frame = new JFrame("Jformated Demo | Mata Uang");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Font font = new Font("Tahoma", Font.BOLD, 16);
BoxLayout layout = new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS);
frame.setLayout(layout);
Format currency = NumberFormat.getCurrencyInstance(Locale.US);
label = new JLabel("Mata Uang Amerika:");
input = new JFormattedTextField(currency);
input.setValue(1000.25);
input.setColumns(20);
input.setFont(font);
panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
panel.add(label);
panel.add(input);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
GridLayout
menempatkan komponen dalam bentuk “rectangular grid”. Ada 3 constructor untuk GridLayout:
GridLayout(): membuat layout dengan satu kolom per komponen.
GridLayout(int rows, int cols): membuat suatu layout berdasarkan jumlah baris dan kolom yang diinginkan. GridLayout(int rows, int cols, int hgap, int vgap): membuat layout berdasarkan jumlah baris dan kolom yang diinginkan, serta ukuran jarak (gap) horisontal maupun vertical untuk setiap baris dan kolom tersebut.
GridLayout menempatkan komponen dengan ur utan dari kiri ke kanan dan dari atas ke bawah.
GridLayout akan memaksa setiap komponen untuk menempati space container yang kosong serta membagi rata ukuran space tersebut.
Layout ini memampukan kita untuk memposisikan komponen relatif terhadap komponen lainnya berdasarkan constraint tertentu.
Dengan menggunakan GridBagLayout, kita dapat menciptakan layout apapun juga, tanpa batas.
Komponen disusun pada koordinat tertentu pada sebuah grid yang disebut “logical coordinate”. Logical coordinate berarti bahwa koordinat suatu komponen ditentukan oleh sekumpulan komponen lainnya.
Baris dan kolom dari grid tersebut bersifat “stretch” yang bergantung pada size dan constraint yang dimilikinya.
CONTOH CODING GridBagLayout:
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class gridbaglayout extends JFrame { private GridBagConstraints constraints; public gridbaglayout( ) { createUserInterface(); } private void createUserInterface(){ constraints = new GridBagConstraints( ); this.setLayout(new GridBagLayout( )); int x, y; // for clarity this.addGB(new JButton("North"), x = 1, y = 0); this.addGB(new JButton("West"), x = 0, y = 1); this.addGB(new JButton("Center"), x = 1, y = 1); this.addGB(new JButton("East"), x = 2, y = 1); this.addGB(new JButton("South"), x = 1, y = 2); this.setTitle("gridbaglayout"); this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); this.setSize(225, 150); this.setLocation(200, 200); this.setVisible(true); } private void addGB(Component component, int x, int y) { constraints.gridx = x; constraints.gridy = y; this.add(component, constraints); } public static void main(String[] args) { gridbaglayout app = new gridbaglayout(); } }
public class Form extends JInternalFrame { // pewarisan dari JFrame untuk digunakan di class Form
public Form() {
super(“FORM ANGGOTA”, true, true, true,true);
// PEMBUATAN OBJEK
JPanel panel1 = new JPanel(); // pembuatan panel 1
JPanel panel2 = new JPanel(); // pembuatan panel 1
Container con = this.getContentPane(); // pembuatan ontainer
// Membuat objek option button baru
final JRadioButton rbAnggota1 = new JRadioButton(“Anggota Satu”);
final JRadioButton rbAnggota2 = new JRadioButton(“Anggota Dua”);
final JRadioButton rbAnggota3 = new JRadioButton(“Anggota Tiga”);
final JRadioButton rbAnggota4 = new JRadioButton(“Anggota Empat”);
//Membuat button group
ButtonGroup radioBgroup = new ButtonGroup();
// Membuat label
JLabel lblNIM=new JLabel(“NIM “);
final JLabel lblNama =new JLabel(“Nama “);
final JLabel lblJK =new JLabel(“Jenis Kelamin “);
// Membuat text field
final JTextField txtNIM=new JTextField(5);
final JTextField txtNama=new JTextField(5);
final JTextField txtJK=new JTextField(5);
final JButton cmdTampil=new JButton(“Tampil”);
final JButton cmdKosong=new JButton(“Kosongkan”);
final JButton cmdExit=new JButton(“Keluar”);
// mendaftarkan radio button sebagai group
radioBgroup.add(rbAnggota1);
radioBgroup.add(rbAnggota2);
radioBgroup.add(rbAnggota3);
radioBgroup.add(rbAnggota4);
// menambahkan objek ke dalam panel 1
panel1.add(rbAnggota1);
panel1.add(rbAnggota2);
panel1.add(rbAnggota3);
panel1.add(rbAnggota4);
// menambahkan objek ke dalam panel 2
panel2.add(lblNIM);
panel2.add(txtNIM);
panel2.add(lblNama);
panel2.add(txtNama);
panel2.add(lblJK);
panel2.add(txtJK);
panel2.add(cmdTampil);
panel2.add(cmdKosong);
panel2.add(cmdExit);
// memberikan even handling kepada command button
cmdTampil.addActionListener(new ActionListener( ) {
public void actionPerformed(ActionEvent ae) {
if (rbAnggota1.isSelected()){
txtNIM.setText(“07.11.1382″);
txtNama.setText(“Syarief Hidayatulloh”);
txtJK.setText(“laki – laki”);
}
if (rbAnggota2.isSelected()){
txtNIM.setText(“07.11.1356″);
txtNama.setText(“Arif W Nugroho”);
txtJK.setText(“laki – laki”);
}
if (rbAnggota3.isSelected()){
txtNIM.setText(“07.11.1420″);
txtNama.setText(“Galuh Ristyanto”);
txtJK.setText(“laki – laki”);
}
if (rbAnggota4.isSelected()){
txtNIM.setText(“07.11.1385″);
txtNama.setText(“Yuni Ardita Sari Dewi “);
txtJK.setText(“Perempuan”);
}
Java
bermula dari penelitian perusahaan sun Microsystems dengan sandi Green
tahun 1991. Terdapat predisi bahwa microprosesor akan digunakan luas
pada peralatan elektronik. Karna hal tersebut maka dibutuhkan sebuah
bahasa pemograman yang dapat berjalan disemua microprosesor
Tercipta sebuah pemograman baru , oleh James Gosling, yaitu salah satu
orang yang berperan besar dalam proyek tersebut program ini diberi nama
Oak, karna sudah ada bahasa pemograman yang nama Oak maka diganti denga
Java
Keunggulan Java.
- Relatif mudah dipelajari.
- Mudah dikembangkan
- Plaftrom Independent
Pemograman Java.
Dilakukan dengan tiga tahap :
- Menulis programan java.
- Melakukan kompilasi programan java.
- Menjalankan programan java.
Java Swing dan Awt.
Merupakan package yang berguna untuk membangun aplikasi dengan
Grapical User Interface ( GUI ). Package.javax.swing.* berisi class -
class yang dapat dipakai untuk membangun tampilan aplikasi serta
interaksi antara pengguna dengan program.
Secara
asitektur , Swing dibangun di atas arsitektur Abstract Windows Toolkit (
AWT ). Merupakan package GUI yang sudah lebih kembangkan, AWT memiliki
banya kekurangan sehingga diperbaiki dengan adanya Swing.