Minggu, 21 Juli 2013

Pemograman Visual Java Netbeans

Materi 1 (Pengenalan Pada  Java Netbeans)

Java GUI adalah bahasa pemrograman komputer yang telah menggunakan metoda interaksi secara grafis antara pengguna dan komputer. Java menyediakan banyak tool seperti Abstract Windowing Toolkit (AWT) dan Swing untuk mengembangkan aplikasi GUI yang interaktif.

Java Swing
Pada awalnya kata swing digunakan untuk menyebut proyek yang mendevelop komponen- komponen baru dalam bahasa pemograman java, oleh karena komponen pada java swing banyak di kembangkan dari komponen yang sebelumnya yaitu java awt (Abstract windowing toolkit).

>>Membuat Form dengan JFrame Form<<

Pembuatan form menggunakan JFrame Form maupun menggunkan bentuk yang lain memiliki kesamaan hanya yang membedakan adalah fungsi dari masing-masing komponen. Berikut langkah – langkah untuk membuat JFrame Form :

Langkah pertama buka Netbeans IDE, kemudian Klik File à New Project. Lalu pada Categori pilih Java,dan pada kolom Projects pilih Java Application


Setelah itu pada :
Project Name : isikan nama project.
Project Location : merupakan tempat dimana yang akan meletakkan project, ubah atau biarkan secara default.
Selanjutnya buat package(folder) di dalam project yang sudah dibuat, hal ini di maksudkan agar penyimpanan file-file .java dapat kelompokkan berdasarkan folder yang  dikehendaki. Untuk membuat package, langkahnya sebagai berikut :
Klik kanan project yang sudah sudah  dibuat „³ New „³ Java Package. Kemudian berikan nama package(folder) sesuai keinginan user.




Selanjutnya adalah membuat JFrame Form, dengan langkah – langkah sebagai berikut :
Klik kanan package yang sudah dibuat klik New à JFrame Form. Kemudian berikan nama pada kolom Class Name, misal : BelajarForm1.

Form yang sudah dibuat tidak akan berfungsi apa – apa jika tidak terdapat komponen di dalamnya,untuk memasukkan komponen ke dalam form dapat dilakukan dengan cara : Klik komponen yang ingin di masukkan, kemudian klik ke atasnya form, contoh jika ingin menambahkan panel kedalam form, maka dapat di lakukan dengan cara : Klik Panel :



Geserlah panel untuk memperoleh panjang dan lebar sesuai kebutuhan, agar panel tidak hilang oleh kasat mata dan bisa perhatikan di jendela inspector : 
perhatikan gambar di atas, ketika kehilangan pandangan tentang posisi panel yang sudah diletakkan di atas form bisa klik komponen tersebut pada jendela inspector. Karena komponen JPanel (panel) di design secara default tidak kasat mata, agar selalu nampak tambahkanlah border, dengan cara klik kanan panel(yang berada di atas form) yang akan di munculkan pada properties. Pilihlah border, maka akan muncul pilihan berbagai macam border, pilihlah salah satu yang menurut cocok dengan aplikasi.


Materi 2 (Implementasi Pemograman visual Kedalam Sistem Informasi)

Pada materi kedua ini studi kasus yang digunakan adalah sistem informasi sebuah mini market. Sebelum membuat rancangan program dari sistem informasi mini market terlebih dahulu membuat sistem design, yang meliputi Conceptual Data Model (CDM) dan Physical Data Model (PDM) untuk menghubungkan sebuah database dengan sistem informasi. Untuk membuat CDM dan PDM yang dibutuhkan pada sistem mini market adalah user, barang, kategori, penjualan, pengadaan, relasi penjualan barang dan relasi pengadaan barang.



Materi 3 (Design Visual)

Setelah pembuatan CDM dan PDM, dilanjutkan dengan pembuatan design visual mini market pada netbeans. Pertama membuat form input kategori barang dengan menggunakan JFrame form pada netbeans. Isi dari form input kategori barang ada kategori barang, deskripsi dan tabel dari kategori barang. Tabel kategori barang akan muncul secara otomatis karena terhubung dengan database yang telah dibuat.



private void panggilKategoriToComboBox(){
try {
comboKategori.removeAllItems();
String sql="select kategori from kategori";
resultSet=statement.executeQuery(sql);
while (resultSet.next()) {
comboKategori.addItem(resultSet.getString(1));
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}


MATERI 4 VALIDASI INPUTAN


>>PROSES INSERT<<

Proses ini digunakan untuk mencegah adanya inputan data sampah/data yang tidak valid, seperti mengisi nilai dengan string kosong dll.
Petunjuk :
Gunakan pengkondisian(IF…ELSE) untuk menghindari data yang tidak diinginkan bisa masuk kedalam database, contoh :

if (txtKategori.getText().equals("") || txtDeskripsi.getText().equals("")) {
JOptionPane.showMessageDialog(null, "lengkapi dulu inputannya");
}
else{
insert();
select();
clear();
}


>>PROSES DELETE<<

Proses delete adalah menghapus baris data yang diinginkan,agar supaya dikenali baris mana yang akan dihapus maka harus dipilih(di klik) terlebih dahulu ID mana yang di gunakan sebagai kunci penghapusan.
Disamping itu proses delete jika memenuhi syarat jangan langsung dilakukan penghapusan, hal ini sangat rawan bagi user jika tidak sengaja melakukan perintah delete
Petunjuk :
Untuk menampilkan form konfirmasi gunanakan ConfirmDialog yang dimiliki oleh kelas JOption, contoh :

if (kondisi 1) {
JOptionPane.showMessageDialog(null, "pilih/klik dulu baris yang akan di hapus ");
}
else if(kondisi 2){
int hasil=JOptionPane.showConfirmDialog(null,"apakah benar anda ingin menghapus kode kategori : "+id,null,JOptionPane.YES_NO_OPTION);
if(hasil==JOptionPane.YES_OPTION){
delete();
select();
clear();
}
else if(hasil==JOptionPane.NO_OPTION){
idKat=null;
clear();
}
}



>>MEMBUAT FORM PENGADAAN BARANG<<





Dalam form diatas tidak terdapat inputan id pengadaan, karena jika ingin memberikan format automatis dari id pengadaan adalah sebagai berikut :

TB.TANGGAL_PEMBELIAN.NOMOR
Misal pada tanggal 10 April 2013 melakukan beberapa transaksi maka ID yang terbentuk adalah :
TB.10.04.2013.100
TB.10.04.2013.101
TB.10.04.2013.102
………………………….. dst.
Petunjuk :
Untuk membuat ID_PENJUALAN seperti contoh diatas dapat menggunakan sintak :

try {
String tanggal=dateFormat.format(txtTanggal.getDateFormat().parse(txtTanggal.getText()));
count=100;
String sqltanggal="select TANGGAL,ID_PENGADAAN from pengadaan";
resultSet1=statement.executeQuery(sqltanggal);
while(resultSet1.next()){
String data1=resultSet1.getString(1);
String data2=resultSet1.getString(2);
if(data1.equals(tanggal)){
if (count==Integer.valueOf(data2.substring(14, 17))) {
count++;
}
}
}
String idpengadaan="TB."+tanggal2+"."+count;
String sql="insert into pengadaan
values('"+idpengadaan+"','root','"+tanggal+"','"+txtSupplier.getText()+"',0)";
statement.executeUpdate(sql);
} catch (ParseException | SQLException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}

Dalam Form diatas juga terdapat button didalam JTable, untuk membuat button tersebut dapat menggunakan seperti contoh berikut :

o Membuat kelas yang extends ke JButton dan mengimplementasikan TableCellRenderer

public class buttonDetail extends JButton implements TableCellRenderer{
public buttonDetail() {
setText("detail");
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
setBackground(isSelected?table.getSelectionBackground():table.getBackground());
return this;
}
}




Kemudian panggil kelas tersebut kedalam baris kolom pada proses select, contoh :
tabelPengadaan.getColumnModel().getColumn(4).setCellRenderer(new buttonDetail());
Ket :
tabelPengadaan : adalah nama dari JTable kita

Untuk memberikan evenhandling terhadap button di dalam JTable,salah satunya dapat menggunkan sintak berikut :

if (tabelPengadaan.getSelectedColumn()==4) {
this.dispose();
new Form().setVisible(true);
}
Ket :
Asumsi diatas letak dari button berada pada kolom ke 5 ( 0…4 )

Kemudian kondisikan seperti sintak berikut :
if (evt.getKeyChar()=='\n') {
insert();
select();
clear();
}
Ket:
‘\n’ = symbol tombol enter ditekan


>>Membuat Form Detail Pembelian<<


Petunjuk :
Untuk load data dari database ke JComboxbox dapat dilihat dalam petunjuk diatas, untuk memberikan event pada JCombobox perhatikan contoh berikut :

private void LoadComboBoxNamaBarang( String data){
try {
String sql="select nama_barang from barang where kategori='"+data+"'";
resultSet=statement.executeQuery(sql);
comboNamaBarang.removeAllItems();

comboNamaBarang.addItem("-->pilih<--");
while (resultSet.next()) {
comboNamaBarang.addItem(resultSet.getString(1).toString());
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
int count=0;
private void comboKategoriItemStateChanged(java.awt.event.ItemEvent evt) {
if (count>=2) {
LoadComboBoxNamaBarang(comboKategori.getSelectedItem().toString());
}
else{
count++;
}
}
Ket :
Secara default jika menggunakan event ItemStateChange saat Form di load secara automatis event ini di jalankan 2x, untuk itu kondisikan menggunakan variable count supaya tidak muncul pesan error.
Petunjuk :
Untuk mengirimkan nilai tertentu dari satu kelas/Form ke kelas/Form yang lain dapat dilakukan dengan membuat konstruktor yang meminta parameter, contoh sintak berikut :
Private String id_pengadaan;
public FormDetailPengadaan(String idTransaksi) {
initComponents();
koneksi=new Koneksi();
this. id_pengadaan =idTransaksi;
}
Cara memanggil dari kelas lain :
idPengadaan=tabelPengadaan.getValueAt(tabelPengadaan.getSelectedRow(), 0).toString();
if (tabelPengadaan.getSelectedColumn()==4) {
System.out.println(idPengadaan);
this.dispose();
new FormDetailPengadaan(idPengadaan).setVisible(true);
}

Dalam Form diatas juga terdapat JRadioButton yang menyatakan ada tidaknya tanggal Kadaluarsa, juga dapat memberikan event agar jika salah satu dipih maka yang lain di disable dan dapat memberikan event mouse enter juga mouse exit,
Missal : JRadioButton1 memiliki nama=JRadioButton1
JRadioButton2 memiliki nama=JRadioButton2



Keterangan :
JRadioButton2
JRadioButton1

private void JRadioButton1MouseExited(java.awt.event.MouseEvent evt) {
JRadioButton1.setEnabled(true);
tglKadaluarsa.setEnabled(true);
}
private void JRadioButton1MouseEntered(java.awt.event.MouseEvent evt) {
JRadioButton1.setEnabled(true);
JRadioButton2.setEnabled(false);
}
private void JRadioButton2MouseEntered(java.awt.event.MouseEvent evt) {
JRadioButton2.setEnabled(true);
JRadioButton1.setEnabled(false);
tglKadaluarsa.setEnabled(false);
}


Pada Form diatas terdapat juga Form untuk memberikan harga jual,karena harga jual hanya terdapat satu harga dan tidak mungkin memberikan harga yang berbeda pada satu barang maka pastikan penyimpanan harga jual ada dalam table barang, ubahlah table jika terdapat kesalahan :


Petunjuk :
Untuk menampilkan data diatas dapat menggunakan query :

try {
String queryHargaJual="select r.id_barang,b.nama_barang,max(r.harga_beli_satuan),b.harga_jual from rel_pengadaan_barang r,barang b where b.id_barang=r.id_barang group by id_barang ";
……………………………………………….
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}

Untuk memudahkan pengaturan dan analisa data,langkah selanjutnya sebelum ke transaksi penjualan adalah membuat Form Menu.


>>Membuat Form Menu, contoh :






MATERI 5 MEMBUAT REPORT DI JAVA-NETBEANS MENGGUNAKAN JASPERREPORT DAN IREPORT

JasperReport : adalah software(library) open source untuk reporting.

iReport : adalah Visual Designer untuk membuat laporan yang komplek, menggunakan jasperReport Libarary.
jasperReport dapat didownload pada alamat tersebut : http://jasperforge.org/

>>Installasi iReport dan jasperReport ke dalam Netbeans<<

Dalam membuat report di java-netbeans ini yang akan digunakan adalah :

 iReport versi 5.0.4 dapat didownload di plugin.netbeans.org

 jasperReport versi 5.1

disamping libarary jasperReport juga membutuhkan libarary pendukung dari jasperReport a.l :

 commons-beanutils-1.8

 commons-collections-3.2

 commons-digester-2.1

 commons-logging-1.1.2

 groovy-all-1.8

 jdt-compiler/jasper-compiler-jdt



>>CONTOH MEMBUAT REPORT<<

Dalam contoh kali ini yang akan dibuat adalah report laba, langka-langkahnya adalah sebagai berikut :



pilih layout seseuai keinginan



Selanjutnya buat koneksi kedatabase jika sebelumnya belum dibuat :

Pilih jenis koneksinya, sesuaikan dengan database yang digunakan :

Lengkapi nama koneksi,driver,url,username dan password database :

Untuk memastikan koneksi sukses klik button “Test”, kemudian “Save”

Untuk mengambil data(atribut) yang akan di laporkan double klik table yang di butuhkan, kemudian hilangkan centang pada atribut yang tidak dibutuhkan :

ubah alias dari nama header table yang dibutuhkan seperti contoh berikut :

Jika ingin merubah tampilan disini,termasuk menambahkan keterangan, gambar dll. Untuk mengetahui hasil klik “preview”


MATERI 6 ( PENGATURAN LOGIN DAN USER )






















Tidak ada komentar:

Posting Komentar