Escolar Documentos
Profissional Documentos
Cultura Documentos
BAHASA PEMROGRAMAN IV
(JAVA)
OLEH :
KHARISMAN KHOLID HUDAYA, M.KOM
DAFTAR ISI
BAB I
BAB I
LINGKUNGAN PEMROGRAMAN JAVA
Tujuan :
1. Memahami Software yang Dibutuhkan untuk Memprogram Java
2. Memahami Cara Membuat Project
3. Memahami Cara Kerja Sederhana untuk JLabel, JTextField, dan JButton
Netbeans yang digunakan dalam praktikum ini adalah Netbeans 6.0.1. Secara umum, tidak
ada perbedaan mendasar dengan versi-versi lain sebelum atau setelahnya.
1.2.1 Menjalankan Netbeans
Gambar 1.1
Start Program Netbeans
Tampilan awal splash screen
Gambar 1.2
Splash Screen Netbeans
1.2.2 Area Netbeans
Gambar 1.3
Area Netbeans
Netbeans memiliki area utama dalam 3 bagian:
1. Bagian Kiri : Area Project, Navigator dan File
Bagian ini akan berisi navigasi file-file Java yang akan dirancang.
2. Bagian Tengah
Bagian ini adalah bagian perancangan JFrame (form).
3. Bagian Kanan
Bagian ini adalah bagian Palette dan Properties. Palette berisi object-object yang akan
diletakkan pada JFrame, sedangkan Properties berisi tempat setting nilai untuk tiap
object tersebut.
4. Bagian Bawah
Berupa Output program. Pesan kesalahan atau keberhasilan kompilasi ditunjukkan pada
bagian ini.
Java memiliki banyak window, bisa diaktifkan atau dinonaktifkan melalui menu Window
Gambar 1.4
Menu Window
1.2.3 Memulai Contoh Project
Berikut kita akan membuat project pertama, membuat program yang sangat sederhana.
Project ini akan terdiri dari 1 JFrame, dan 3 object : JLabel, JTextField, dan JButton. Aplikasi yang
dirancang adalah menampilkan pesan : Selamat Mulai Belajar Java. Pesan tersebut ditampilkan
di JTextField, setelah tombol JButton ditekan.
Langkah-langkahnya adalah:
1. Pilih File > New Project
Gambar 1.5
Pilihan File> New Project
selanjutnya akan tampil jendela New Project
Gambar 1.6
Jendela New Project
tekan tombol Next. Isikan pada Project Name : ProjPertama. Arahkan file penyimpanan dengan
menekan tombol Browse di samping Project Location. Silakan arahkan pada direktori dan folder
yang dituju. Hilangkan tanda centang pada Set as Main Project dan Create Main Class.
Gambar 1.7
Jendela Name dan Location
tekan tombol Finish, sehingga Project baru sudah tercipta. Nampak di bagian kiri pada bagian
Project telah ada ProjPertama
Gambar 1.8
Project baru ProjPertama tercipta
2. Klik kanan, pada ProjPertama kemudian pilih New > JFrame Form
Gambar 1.9
Pembuatan JFrame Form baru
muncul tampilan jendela baru Name and Location. Isikan pada Class Name : TampilanSelamat.
Isian Class Name tidak boleh ada spasi atau diawali dengan angka.
Gambar 1.10
Name and Location New JFrame
Klik tombol Finish. Muncul tampilan desain form (JFrame). Ada 2 tab: Source dan Design. Source
untuk menampilkan Coding, sedangkan Design menampilkan desain form.
Gambar 1.11
Desain Form Awal
3. Pada Palette (di sebelah kanan) bagian Swing Controls, pilihlah JLabel, kemudian letakkan
pada JFrame (form).
Gambar 1.12
Label pada Swing Controls
Gambar 1.13
Meletakkan JLabel pada JFrame
4. Ubahlah tulisan pada JLabel dengan cara: klik kanan pada JLabel > Edit Text. Ganti
tulisannya menjadi Tampilan Pesan
5. Pilihlah JTextField pada Palette> Swing Controls, dan letakkan pada JFrame:
Gambar 1.15
Meletakkan JButton pada JFrame
9. Ubahlah tulisan pada JButton menjadi : Tampilkan Pesan. Dengan cara: klik kanan pada
JButton > Edit Text
Gambar 1.16
Desain Form Lengkap
10. Buatlah Event pada JButton dengan cara: klik kanan pada JButton > Events > Action >
actionPerformed
BAB II
JTEXTFIELD, JOPTIONPANE, dan KONVERSI TIPE DATA
Tujuan :
1. Memahami cara kerja JTextField dan JOptionPane serta menggunakannya dalam aplikasi
sederhana
2. Memahami konversi data String ke Integer dan sebaliknya
2.1 Karakteristik JTextField
JTextField adalah komponen yang bisa digunakan untuk menginputkan data dan untuk menampilkan
data. Data yang bisa dioperasikan oleh JTextField hanyalah yang bertipe String. Method yang
digunakan adalah:
a. Input/ membaca data getText()
b. Output/ menampilkan data setText()
c. Mengarahkan fokus kursor pada JTextField requestFocus()
2.2 Demo JTextField (Input dan Output)
Berikut ini adalah program aplikasi sederhana dengan satu JFrame form untuk membaca data yang
diinputkan pada sebuah JTextField, kemudian setelah ditekan tombol JButton data tersebut ditampilkan
pada JTextField yang lain. Secara umum, langkah-langkah mendesain form, mengubah variable name, dan
mengatur propertiesnya sama dengan seperti yang dijabarkan pada BAB II.
Ada 2 JTextField :
a.
b.
import java.awt.event.KeyEvent;
Kode yang ingin dijalankan setelah tombol Enter ditekan hendaknya ada di dalam lingkup :
if (evt.getKeyCode()==KeyEvent.VK_ENTER) {
.
}
Untuk mengecek apakah JTextField masih kosong atau tidak bisa menggunakan perintah:
if (txt1.getText().equals())
atau
if (txt1.getText().isEmpty())
secara detail, aturan penggunaan pencabangan if akan dibahas pada BAB III, InsyaAllah.
LATIHAN
1.
Buatlah aplikasi sederhana untuk menghitung usia seseorang berdasarkan tahun lahir yang
diinputkan.
2.
Buatlah aplikasi sederhana untuk menghitung transaksi penjualan sederhana. User menginputkan
jumlah barang dan harga barang kemudian secara otomatis dihitung total yang harus dibayar.
Selanjutnya user memasukkan nominal uang yang dibayarkan, dan secara otomatis ditampilkan
nominal uang kembalian.
BAB III
PENCABANGAN
Tujuan :
Mampu memahami logika dan syntax pencabangan pada Java
3.1 Pencabangan Dua Kemungkinan
Pencabangan 2 kemungkinan
Syntax :
if (kondisi)
statement-1
else
statement-2
Artinya, jika kondisi terpenuhi statement-1 akan dijalankan, namun bila tidak, statement-2 yang
akan dijalankan.
Contoh Aplikasi Penyeleksian Usia berdasarkan : Dewasa atau Belum Dewasa
Skenario
User memasukkan angka usia, kemudian akan ditampilkan pesan: DEWASA, jika lebih dari atau
sama dengan 17, dan akan tampil pesan: BELUM DEWASA jika kurang dari itu.
: BALITA
6-12 tahun
: ANAK-ANAK
13-17 tahun
: REMAJA
18-50 tahun
: DEWASA
: LANSIA
:A
75 79
: B+
70 - 74
:B
65 69
: C+
60 64
:C
55 59
: D+
50 54
:D
< 50
:E
BAB IV
JCOMBOBOX, JLIST, DAN JTABLE
Tujuan :
Mampu memahami cara kerja JComboBox, JList, JTable, serta menerapkannya dalam aplikasi
4.1 Kesamaan JComboBox, JList, dan JTable
Ketiga komponen yang dibahas pada bab ini memiliki kesamaan dalam hal:
1. Menggunakan model untuk menampung data.
2. Menampilkan data yang telah ditampung oleh model.
Jenis Model
JComboBox
DefaultComboBoxModel
JList
DefaultListModel
JTable
DefaultTableModel
4.2 JComboBox
IMPORT
import javax.swing.DefaultComboBoxModel;
DEKLARASI MODEL
DefaultComboBoxModel mdlc = new DefaultComboBoxModel() ;
KODE MENAMBAH DAN MENGHAPUS DATA
// Menambah Data
mdlc.addElement(S1);
jComboBox1.setModel(mdlc) ;
// Menghapus 1 Data
mdl.removeElementAt(i);
jComboBox1.setModel(mdl);
// Menghapus Seluruh Data
mdlc.removeAllElements();
MEMBACA DAN MENAMPILKAN DATA
getSelectedItem().toString() membaca data dalam String
setSelectedItem() menampilkan data
4.3 JLIST
IMPORT
import javax.swing.DefaultListModel;
DEKLARASI MODEL
DefaultListModel mdl = new DefaultListModel() ;
KODE MENAMBAH, MENGHAPUS, dan MEMILIH DATA
// menambahkan data
mdl.addElement(S1);
jList1.setModel(mdl) ;
// Memilih Isi JList yang sesuai
jList1.setSelectedValue(nama, rootPaneCheckingEnabled);
// Menghapus 1 Data
mdl.remove(i) ;
jList1.setModel(mdl);
"} ;
BAB V
PERULANGAN
TUJUAN :
Memahami logika dan syntax perulangan pada Java
5.1 Perulangan dengan for
Syntax :
for (nilai_awal; kondisi; step) {
statement
}
Contoh:
Perulangan dari 1 sampai 10
for (i=1 ; i<10; i++) {
System.out.println( i) ;
}
5.2 Perulangan dengan while
Syntax :
while (kondisi) {
statement
counter
}
Contoh :
Menampilkan tulisan dari 1 sampai 10
int i ;
while (i <=10) {
System.out.println( i) ;
i++ ;
}
5.3 Perulangan dengan do .while
Syntax :
do {
statement
counter
}
while (kondisi)
Contoh :
Perulangan dari 1 sampai 10
int i = 1;
do {
System.out.println(i);
i++;
} while ( i < 10) ;
LATIHAN :
1. Buatlah aplikasi perulangan menampilkan bilangan ganjil dari 1 sampai 10 ke dalam JList
2. Buatlah aplikasi menghitung faktorial suatu angka dengan logika perulangan
BAB VI
AKSES KE DATABASE
Tujuan :
1. Memahami prinsip dasar akses ke database
2. Mampu membuat database dan struktur tabel pada MySQL
3. Mampu membuat aplikasi sederhana input data (Simpan, Edit, Hapus) Tipe Data String
6.1 Konsep Dasar Akses ke Database (MySQL)
Catatan Penting :
Kode-kode untuk mengakses database tersebut harus diletakkan di antara try ..catch:
try {
} catch (Exception e) {
e.printStackTrace() ;
}
3. Pada contoh di atas, nama database adalah data_mhs (Tahapan Buat Connection dgn
DriverManager)
4. Pada Netbeans versi 6 ke atas sudah bisa dilakukan penambahan library Connector JavaMySQL.
6.2 Membuat Database dan Struktur Tabel di MySQL
Mengelola MySQL dengan PHPMyAdmin
Lebih praktis jika kita menginstal database MySQL Server yang sudah dikemas jadi satu dengan
PHP dan Apache dalam XAMPP. Kita bisa melakukan administrasi database: menciptakan
database, membuat tabel dan strukturnya, melakukan query langsung ke database, dan
semisalnya dengan phpmyadmin.
PHPMyAdmin merupakan salah satu tool manajemen database MySQL berbasis web, artinya
interaksi pemeliharaan dilakukan dengan oleh klien dengan menggunakan antarmuka browser.
Nah yang perlu anda persiapkan adalah software PHPMyAdmin yang sudah tersedia dalam
XAMPP
Jika XAMPP sudah terinstall dengan baik maka jalankan XAMPP Control Panel dan pastikan
bahwa MySQL, dan Apache dalam status running (berjalan), Jika belum running maka klik tombol
Start di sebelah kiri masing-masing seperti ditunjukkan pada Gambar 6.1 dan Gambar 6.2
selanjutnya, buka Web Browser (Mozilla, Google Chrome, atau Internet Explorer, dan
semisalnya) kemudian ketikkan alamat berikut http://localhost/phpmyadmin/
Kita akan mencoba beberapa fasilitas yang terdapat dalam phpMyAdmin tersebut.
Create Database
Kita awali dengan membuat (create) Database baru .Misalkan nama database yang akan kita
buat adalah penjualan. Cara membuat database tersebut ditunjukkan pada Gambar 6.4
Membuat Tabel
Setelah database berhasil dibuat, maka berikutnya kita akan membuat tabel. Tabel yang dibuat
bernama barang.
Rancangan Field pada Tabel Barang (Sekedar Contoh)
Nama Field
Tipe
Lebar
kd_brg
VarChar
15
nama_brg
VarChar
25
hrg_beli
INT
hrg_jual
INT
stock_min
INT
Stock
INT
2. Buat field-field sesuai dengan rancangan field tabel di atas, kemudian tekan tombol Save
3. Tabel barang sudah berhasil tercipta, dan phpmyadmin akan menunjukkan hasil query SQL
pembuatan tabel
1. Pada bagian bawah keterangan tabel, ketikkan angka 1 di textbox jumlah field yang akan
ditambahkan (ditunjukkan Gambar 6.8).
2. Ketikkan field baru beserta atributnya pada kolom yang telah disediakan, kemudian tekan
tombol Save. Lihat Gambar 6.9
4. Akan muncul tampilan untuk mengedit Field. Ubahlah atribut yang perlu pengubahan,
kemudian klik Save, maka perubahan Field baru akan segera terlihat
Menghapus Field
Langkah-langkah menghapus field sama dengan pada proses mengubah/ edit Field, hanya saja
icon yang diklik bukan tanda pensil tapi tanda silang merah.
Gambar 6.16
Untuk tipe data Date, format isiannya adalah 4 digit tahun, 2 digit bulan, dan 2 digit tanggal yang
dipisahkan oleh separator (bisa berbentuk - atau \ tergantung setting Regional pada Sistem
Operasi). Lebih aman jika pengisian data Date menggunakan Calendar.
3. Jika sudah diisikan data pada 2 baris, kemudian klik tombol Go, sehingga muncul tampilan
seperti pada Gambar 6.19
: data_mhs
Tabel
: mhs
Nama Field
Tipe Data
Lebar
nim
Varchar
nama
Varchar
25
2. Pastikan yang terpilih adalah Categories: Java dan Project : Java Application, kemudian
klik Next
3. Isikan Project Name : Proj_DataMHS dan arahkan Project Location pada folder yang anda
inginkan. Hilangkan tanda centang pada Set as Main Project dan Create Main Class
Gambar 6.25
Komponen
Nama
JTextField
txt_nim
JTextField
txt_nama
JButton
tmbSimpan
JButton
tmbEdit
JButton
tmbHapus
7. Buatlah Event keyPressed di txt_nim (untuk proses pencarian NIM). Klik kanan pada
txt_nim > Events > Key > keyPressed
9. Pada bagian Library, pilihlah MySQL JDBC Driver, kemudian klik tombol Add Library
13. Isikan kode pencarian pada keyPressed Event di txt_nim (langkahnya seperti pada Gambar
6.26 di atas)
try {
// Setting Driver MySQL
Class.forName("com.mysql.jdbc.Driver") ;
// Buat Connection cn
Connection cn = DriverManager.getConnection("jdbc:mysql:" +
"///data_mhs","root","");
// Buat Statement
Statement smt = cn.createStatement();
// Buat ResultSet
ResultSet rs = smt.executeQuery
("SELECT * FROM mhs where nim='"+txt_nim.getText()+"' ");
if (rs.next()) {
txt_nama.setText(rs.getString("nama"));
} else {
// tampilkan pesan
javax.swing.JOptionPane.showMessageDialog(this,"Data Tidak Ada",
"Pesan",javax.swing.JOptionPane.INFORMATION_MESSAGE);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
14. Buatlah Event pada tombol Simpan (Klik kanan tombol Simpan > Events > Action >
actionPerformed)
txt_nim.setText("");
txt_nama.setText("");
txt_nim.requestFocus();
} catch (Exception e) {
e.printStackTrace();
}
}
15. Buatlah Event pada tombol Edit (Klik kanan tombol Edit > Events > Action >
actionPerformed)
private void tmbEditActionPerformed(java.awt.event.ActionEvent evt) {
try {
Class.forName("com.mysql.jdbc.Driver") ;
Connection cn =
DriverManager.getConnection("jdbc:mysql:"+
"///data_mhs","root","" );
Statement smt = cn.createStatement();
smt.executeUpdate(
"update mhs set nama ='"+txt_nama.getText()+"' " +
"where nim ='"+txt_nim.getText()+"' ") ;
txt_nim.setText("");
txt_nama.setText("");
txt_nim.requestFocus();
} catch (Exception e) {
e.printStackTrace();
}
}
16. Buatlah Event pada tombol Hapus (Klik kanan tombol Edit > Events > Action >
actionPerformed)
private void tmbHapusActionPerformed(java.awt.event.ActionEvent evt) {
try {
Class.forName("com.mysql.jdbc.Driver") ;
Connection cn =
DriverManager.getConnection("jdbc:mysql:"+
"///data_mhs","root","" );
Statement smt = cn.createStatement();
smt.executeUpdate(
" delete from mhs where nim ='"+txt_nim.getText()+"' ") ;
txt_nim.setText("");
txt_nama.setText("");
txt_nim.requestFocus();
} catch (Exception e) {
e.printStackTrace();
}
}
LATIHAN
Buatlah aplikasi sederhana input data buku yang meliputi Kode Buku, Judul, Penulis, dan
Penerbit.
BAB 7
PENGOLAHAN DATA TANGGAL, GAMBAR, DAN NUMERIK DESIMAL
7.1 Pengolahan Data Tanggal dengan JCalendar
JCalendar adalah library (pustaka) untuk mengolah data tanggal. Library ini secara asal tidak ada
dalam Palette bawaan Netbeans. Namun, anda bisa menambahkannya dengan cara
mendownloadnya di internet. Beberapa alamat situs tempat mendownload komponen JCalendar
di antaranya:
- http://flib.sourceforge.net/JCalendar/doc/index.html
- http://www.ziddu.com/download/13147900/jcalendar.rar.html
Jika mendownload dari ziddu tersebut, anda harus me-rename file dari jcalendar.rar menjadi
jcalendar.jar.
Bisa saja bersamaan dengan berlalunya waktu, alamat situs tersebut berubah, namun anda
tetap bisa mencarinya dengan bantuan mesin pencari (search engine) dengan mengetikkan kata
kunci : download jcalendar.jar.
Menambahkan JCalendar pada Libraries Netbeans
Langkah-langkah untuk menambahkan JCalendar pada Libraries Netbeans adalah:
1. Pada menu, pilih Tools > Libraries
3. Klik tombol New Library sehingga muncul tampilan New Library. Pada isian Library
Name isikan JCalendar seperti Gambar 7.3
Klik tombol OK
4. Akan muncul kembali tampilan Library Manager, dan Library JCalendar sudah masuk dalam
daftar Libraries (sebelah kiri)
5. Klik tombol Add Jar/Folder di sebelah kanan, anda akan diminta untuk mengarahkan pada
folder tempat library JCalendar berada (jcalendar-1.3.2)
Jika diperlukan, tambahkan juga Javadoc untuk referensi tambahan tentang kegunaan dan fungsi
suatu method.
Klik tab Javadoc kemudian klik tombol Add ZIP/Folder
akan muncul tampilan pencarian folder dan arahkan ke tempat di mana jcalendar-1.3.2-javadoc
berada.
Kita akan menambahkan JDateChooser (komponen) untuk mengisikan tanggal pada Pallete
Swing Controls. Langkah-langkahnya:
1. Pilih Menu Tools > Pallete > Swing/AWT Components
3. Klik tombol Add from Library sehingga muncul tampilan Install Components to Palette
4. Akan muncul tampilan seperti Gambar 7.13. Pilih JDateChooser, kemudian klik Next
Berikut ini adalah contoh aplikasi sederhana input data yang juga meliputi tanggal lahir.
Komponen JDateChooser akan digunakan pada aplikasi ini.
User bisa memasukkan data mahasiswa NIM, Nama, beserta tanggal lahirnya serta melakukan
proses pencarian, edit, dan hapus data. Ketika NIM diinputkan kemudian ditekan tombol ENTER,
maka program akan mencari data NIM tersebut di database dan jika ada akan ditampilkan nama
dan tanggal lahirnya. Jika ada data yang akan diubah: nama atau tanggal lahir, bisa segera
diubah, kemudian ditekan tombol Edit.
Rancangan JFrame Form
: data_mhs
Nama Tabel
: mhs_tgl_lahir
Nama
Field
Tipe Data
Lebar
nim
VarChar
nama
VarChar
25
tgl_lahir
Date
Libraries Project
Jangan lupa menyertakan libraries Connector ke MySQL pada Project, sehingga pada project
aplikasi ini akan terdapat 3 libraries:
JDK 1.6 (default)
JCalendar : karena penggunaan JDateChooser pada tanggal lahir
MySQL JDBC Driver
try {
// Setting Driver MySQL
Class.forName("com.mysql.jdbc.Driver") ;
// Buat Connection cn
Connection cn = DriverManager.getConnection("jdbc:mysql:" +
"///data_mhs","root","");
Penjelasan Kode :
Format penyimpanan tanggal di MySQL adalah : 4 digit tahun 2 digit bulan-2 digit tanggal.
Karena itu, dibuat format terlebih dahulu dengan kode :
String tampilan ="yyyy-MM-dd" ;
SimpleDateFormat fm = new SimpleDateFormat(tampilan);
Variabel tanggal adalah variabel untuk menyimpan ke field tgl_lahir di MySQL. Pengisian data
variabel tanggal dengan kode:
String tanggal = String.valueOf(fm.format(tgl_lahir.getDate()));
Class.forName("com.mysql.jdbc.Driver") ;
// Buat Connection cn
Connection cn = DriverManager.getConnection("jdbc:mysql:" +
"///data_mhs","root","");
String sql =
"select * from mhs_tgl_lahir where nim ='" + txt_nim.getText()+"' " ;
ResultSet rs = smt.executeQuery(sql);
if (rs.next()) {
txt_nama.setText(rs.getString("nama"));
tgl_lahir.setDate(rs.getDate("tgl_lahir"));
} else {
JOptionPane.showMessageDialog(this,"Data Tidak
Ada","Informasi",JOptionPane.INFORMATION_MESSAGE);
Bersih() ;
}
} catch (Exception e) {
e.printStackTrace();
}
}
try {
smt.executeUpdate(sql);
Bersih();
} catch (Exception e) {
e.printStackTrace();
}
Penjelasan :
Mekanisme edit data adalah: user memasukkan NIM mahasiswa yang akan diedit datanya,
kemudian menekan tombol Enter. Selanjutnya, data nama atau tanggal diubah sesuai dengan
yang diinginkan. Kemudian, ditekan tombol Edit.
Kode pada tombol Hapus
try {
// Setting Driver MySQL
Class.forName("com.mysql.jdbc.Driver") ;
// Buat Connection cn
Connection cn = DriverManager.getConnection("jdbc:mysql:" +
"///data_mhs","root","");
Statement smt = cn.createStatement();
String sql =
"delete from mhs_tgl_lahir where nim = '" + txt_nim.getText()+"'";
smt.executeUpdate(sql);
Bersih();
} catch (Exception e) {
e.printStackTrace();
}
User memasukkan kode buku, judul, penulis, dan penerbit, kemudian menekan tombol Browse
untuk mencari alamat file gambar di komputer. Setelah file dipilih, otomatis gambar file tersebut
akan ditampilkan di sebelah kanan. Alamat file gambar tersebut ditampilkan pada JTextField
txt_gambar. Contoh alamat gambar:
C:\Gambar\dive_into_python.jpg.
Komponen yang digunakan untuk menampilkan gambar adalah Canvas yang harus diletakkan di
dalam Panel. Pada saat ditekan tombol Browse, akan muncul jendela pencarian file. Jendela
pencarian File tersebut menggunakan komponen JFileChooser. Komponen JFileChooser pada
kasus kita tidak ditampakkan, hanya muncul saat pengkodean.
Selain menggunakan Canvas, bisa saja kita menampilkan gambar dengan JLabel. Namun,
ukuran gambar yang akan ditampilkan adalah fixed (tetap). Jika dimensi gambar lebih besar dari
ukuran JLabel yang dipersiapkan, maka tampilan gambar akan membesar sesuai ukuran
sebenarnya. Hal itu tentunya akan merusak layout pada JFrame secara keseluruhan.
Kelebihannya jika menggunakan JLabel, kodenya lebih sederhana.
Jika menggunakan Canvas, ada banyak kode yang ditambahkan untuk mengatur agar tampilan
gambar sesuai dengan ukuran Canvas pada JFrame. Meski dimensi file gambar sangat besar,
namun ia akan tetap cukup ditampilkan pada Canvas. Kekurangannya adalah: jika ukuran file
gambar lebih kecil dari ukuran Canvas maka ia akan ditampilkan apa adanya, sehingga akan
terlihat ada ruang kosong pada Canvas yang tidak terpenuhi.
Desain JFrame
Canvas (canvas1) diletakkan di dalam Panel (panel1) dengan ukuran yang sama. Caranya,
letakkan terlebih dahulu Panel, dan atur ukurannya, selanjutnya letakkanlah Canvas, dan atur
ukurannya seluas ukuran Panel.
Komponen Panel dan Canvas berada pada kelompok AWT pada Palette
: akses_database
Nama Tabel
: buku_gambar
Field
Type
Collation
kd_buku
Varchar(3)
latin1_swedish_ci
judul
Varchar(25)
latin1_general_ci
penulis
Varchar(25)
latin1_general_ci
penerbit
Varchar(25)
latin1_general_ci
gambar
Varchar(60)
latin1_swedish_ci
import javax.swing.filechooser.FileFilter;
// Filter file
import javax.swing.filechooser.FileNameExtensionFilter;
// Filter ekstensi file
Kode constructor biasanya ada di bagian atas setelah kode-kode tentang import.
Secara asal, tidak ada kode di bawah initComponents. Namun, pada aplikasi ini ada kode-kode
tambahan, sehingga kode Constructornya menjadi seperti berikut :
public buku_gambar() {
initComponents();
folder = System.getProperty("user.dir") + File.separator + "images";
//folder = getClass().getResource("").getFile().toString() + "images";
cetak(folder);
new File(folder).mkdir();
}
CATATAN
Ada 2 tempat meletakkan kode yang akan dieksekusi pada saat form pertama kali dijalankan :
1. Diletakkan di bawah initComponents().
2. Buat Event componentShown pada JFrame : Klik kanan pada JFrame > Events >Components
> componentShown
Pada bahasa pemrograman lain, eventnya sama dengan LoadEvent atau ActivateEvent
Kode pembuatan Class Painter dan method cetak()
Kode untuk pembuatan Class Painter dan method cetak diletakkan di bagian bawah kode berikut:
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new buku_gambar().setVisible(true);
}
});
}
Method Bersih
Berfungsi untuk membersihkan tulisan pada JTextField dan mengosongkan gambar pada
canvas1
Kodenya adalah :
private void Bersih(){
txtkd_buku.setText("");
txt_judul.setText("");
txt_penulis.setText("");
txt_penerbit.setText("");
txt_gambar.setText("");
((Painter) canvas1).setImage("");
txtkd_buku.requestFocus();
}
Connection cn = DriverManager.getConnection("jdbc:mysql:" +
"///akses_database","root","");
Statement smt = cn.createStatement();
String g = txt_gambar.getText().replace("\\","\\\\");
txt_gambar.setText(g);
String sql =
"insert into buku_gambar (kd_buku,judul,penulis, penerbit,gambar) values ('" +
txtkd_buku.getText()+"','" + txt_judul.getText() +"','"+txt_penulis.getText()+"',
'"+txt_penerbit.getText()+"','"+txt_gambar.getText()+"') " ;
smt.executeUpdate(sql);
Bersih();
} catch (Exception e) {
e.printStackTrace();
}
txt_gambar nantinya adalah sebagai data penyimpan ke field gambar di database MySQL.
Dengan penyesuaian itu, maka di database akan tersimpan dalam format:
C:\Gambar\dive_into_python.jpg
Kode pada tombol Edit
try {
// Setting Driver MySQL
Class.forName("com.mysql.jdbc.Driver") ;
// Buat Connection cn
Connection cn = DriverManager.getConnection("jdbc:mysql:" +
"///akses_database","root","");
Statement smt = cn.createStatement();
String g = txt_gambar.getText().replace("\\","\\\\");
txt_gambar.setText(g);
String sql =
"update buku_gambar set judul = '" + txt_judul.getText() +"', " +
"penulis = '"+txt_penulis.getText()+"', penerbit = " +
"'"+txt_penerbit.getText()+"', gambar ='"+txt_gambar.getText()+"' " +
"where kd_buku='"+txtkd_buku.getText()+"' " ;
smt.executeUpdate(sql);
Bersih();
} catch (Exception e) {
e.printStackTrace();
}
"///akses_database","root","");
Statement smt = cn.createStatement();
String sql =
"delete from buku_gambar where kd_buku ='"+txtkd_buku.getText()+"'";
smt.executeUpdate(sql);
Bersih();
} catch (Exception e) {
e.printStackTrace();
}
String f = jfc.getSelectedFile().toString();
txt_gambar.setText(f);
// tampilkan alamat file di variabel f ke txt_gambar
((Painter) canvas1).setImage(f);
// tampilkan gambar sesuai alamat pada variabel f
}
txt_gambar.setText(rs.getString("gambar"));
((Painter) canvas1).setImage(txt_gambar.getText());
} else {
JOptionPane.showMessageDialog(this,"Data Tidak Ada","Informasi",
JOptionPane.INFORMATION_MESSAGE);
}
} catch (Exception e) {
e.printStackTrace();
}
}
JTextField pada aplikasi tersebut variabel namenya adalah txt_nim, txt_nama, dan txt_ipk
Desain Database dan Tabel
Nama Database
: akses_database
Nama Tabel
: ipk
Field
Type
nim
VarChar(3)
nama
VarChar(25)
Ipk
Float
Kode Import
import java.awt.event.KeyEvent;
import java.sql.* ;
import javax.swing.JOptionPane;
txt_ipk.setText(String.valueOf(rs.getFloat("ipk"))) ;
} else {
JOptionPane.showMessageDialog(this,"Data Tidak Ada","Informasi",
JOptionPane.INFORMATION_MESSAGE);
}
} catch (Exception e) {
e.printStackTrace();
}
}
e.printStackTrace();
}
REFERENSI
Bima, Ifnu. Aplikasi POS Berarsitektur Three Tier Menggunakan Swing, Hibernate, dan
Spring.nulisbuku.com. Jakarta.2011.
Rachmad Hakim & Sutarto, Mastering Java, Elex Media Komputindo, 2009
Suarga. Dasar Pemrograman Komputer dalam Bahasa Java. ANDI Publisher. 2008
Tim Pengembang JENI, JENI 1-6, Depdiknas, 2007