Page 1
IMPLEMENTASI METODE BERORIENTASI OBJEK
UNTUK MEMBANGUN SISTEM PERPUSTAKAAN
Tugas I
MATA KULIAH PEMROGRAMAN I
Oleh :
1.Baghus Kosa Maulana ( 2010140536 )
2.Fathan Qorib ( 2010140715 )
3.Handoyo Dwi Prakoso ( 2010140359 )
4.Husen Zailani ( 2010140531 )
5. M. Muas Willy WS ( 2010140541 )
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS PAMULANG
Page 2
Proposal
IMPLEMENTASI METODE BERORIENTASI OBJEK UNTUK MEMBANGUN
SISTEM
1. Latar belakang
Perpustakaan merupakan salah satu tempat untuk peminjaman buku dan pusat
informasi bagi yang membacanya. Perpustakaan ini juga membantu seseorang yang
membutuhkan informasi mengenai bahan skripsi. Perpustakaan memiliki data mengenai
data buku dan data mahasiswa dimana memiliki database yang menjadi informasi data
menjadi informasi yang akurat.
2. Permasalahan
Adapun permasalahan yang di hadapi dari sistem pepustakaan yang masih dijalankan
secara manual adalah sebagai berikut :
1. Penyajian informasi yang memakan waktu lama karena data tidak tersimpan
dengan rapi.
2. Keakuratan data tidak terjamin.
3. Penggunaan kertas yang berlebihan.
4. Kesulitan dalam pembuatan laporan karena data yang tidak rapi.
2.1 Batasan masalah
Untuk lebih jelasnya, akan dijelaskan dibawah ini
1. Proses pengolahan meliputi proses penginputan data buku, data mahasiswa.
2. Proses pendataan buku memisahkan data buku berdasarkan kode dan judul data
tersebut.
Page 3
3. Proses pendataan mengenai transaksi yang terjadi mengenai data peminjaman
buku dan data pengembalian buku dari mahasiswa.
4. Proses pembuatan laporan mengenai informasi data buku, data mahasiswa, data
penyewaan buku dan data pengembalian buku.
Dari permasalahan diatas, maka dapat disimpulkan bahwa dengan dibuatnya sistem
yang terkomputerisasi dengan baik ini akan membantu suatu sistem data
peminjaman suatu perpustakaan
Page 4
Perpustakaan Universitas Pamulang
Tabel Buku
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package perpustakaanuniversitas;
import view.FormUtama;
/**
*
* @author Handoyo
*/
public class PerpustakaanUniversitas {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Page 5
// TODO code application logic here
new FormUtama().setVisible(true);
}
}
Daftar Buku
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package view;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Handoyo
*/
public class DaftarBuku extends javax.swing.JDialog {
private DefaultTableModel daftarBukuDefaultTableModel;
public static String kodeBukuDiPilih = "";
public static Object[][] listBuku;
/**
* Creates new form DaftarBuku
* @param parent
* @param modal
Page 6
*/
public DaftarBuku(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
daftarBukuDefaultTableModel = (DefaultTableModel) daftarBukuTable.getModel();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
daftarBukuTable = new javax.swing.JTable();
pilihButton = new javax.swing.JButton();
tutupButton = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});
Page 7
daftarBukuTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Kode Buku", "Judul Buku"
}
));
jScrollPane1.setViewportView(daftarBukuTable);
pilihButton.setText("Pilih");
pilihButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
pilihButtonActionPerformed(evt);
}
});
tutupButton.setText("Tutup");
tutupButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tutupButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
Page 8
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(15, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(pilihButton, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(tutupButton, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(pilihButton, javax.swing.GroupLayout.DEFAULT_SIZE, 60, Short.MAX_VALUE)
.addComponent(tutupButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap(31, Short.MAX_VALUE))
);
Page 9
pack();
}// </editor-fold>//GEN-END:initComponents
private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated
// TODO add your handling code here:
if (listBuku.length>0){
daftarBukuDefaultTableModel.setRowCount(0);
for (int i=0; i<listBuku.length; i++){
daftarBukuDefaultTableModel.insertRow( daftarBukuDefaultTableModel.getRowCount(), listBuku[i]);
}
} else {
dispose();
}
}//GEN-LAST:event_formWindowActivated
private void tutupButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tutupButtonActionPerformed
// TODO add your handling code here:
kodeBukuDiPilih="";
dispose();
}//GEN-LAST:event_tutupButtonActionPerformed
private void pilihButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pilihButtonActionPerformed
// TODO add your handling code here:
kodeBukuDiPilih="";
if (daftarBukuTable.getSelectedRowCount()>0){
Page 10
kodeBukuDiPilih = daftarBukuTable.getValueAt( daftarBukuTable.getSelectedRow(), 0).toString();
dispose();
} else {
JOptionPane.showMessageDialog(null,"Belum ada yang dipilih");
}
}//GEN-LAST:event_pilihButtonActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/*
* Set the Nimbus look and feel
*/
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the
* default look and feel. For details see
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
Page 11
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(DaftarBuku.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(DaftarBuku.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(DaftarBuku.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(DaftarBuku.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/*
* Create and display the dialog
*/
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
DaftarBuku dialog = new DaftarBuku(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
Page 12
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JTable daftarBukuTable;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton pilihButton;
private javax.swing.JButton tutupButton;
// End of variables declaration//GEN-END:variables
}
Daftar Mahasiswa
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package view;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Handoyo
*/
public class DaftarMahasiswa extends javax.swing.JDialog {
Page 13
private DefaultTableModel daftarMahasiswaDefaultTableModel;
public static String NIMDiPilih = "";
public static Object[][] listMahasiswa;
/**
* Creates new form DaftarMahasiswa
*/
public DaftarMahasiswa(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
daftarMahasiswaDefaultTableModel = (DefaultTableModel) daftarMahasiswaTable.getModel();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
daftarMahasiswaTable = new javax.swing.JTable();
pilihButton = new javax.swing.JButton();
tutupButton = new javax.swing.JButton();
Page 14
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});
daftarMahasiswaTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"NIM", "Nama"
}
));
daftarMahasiswaTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
jScrollPane1.setViewportView(daftarMahasiswaTable);
pilihButton.setText("Pilih");
pilihButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
pilihButtonActionPerformed(evt);
}
});
tutupButton.setText("Tutup");
tutupButton.addActionListener(new java.awt.event.ActionListener() {
Page 15
public void actionPerformed(java.awt.event.ActionEvent evt) {
tutupButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(15, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(pilihButton, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(tutupButton, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
Page 16
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(pilihButton, javax.swing.GroupLayout.DEFAULT_SIZE, 60, Short.MAX_VALUE)
.addComponent(tutupButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap(31, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated
// TODO add your handling code here:
if (listMahasiswa.length>0){
daftarMahasiswaDefaultTableModel.setRowCount(0);
for (int i=0; i<listMahasiswa.length; i++){
daftarMahasiswaDefaultTableModel.insertRow( daftarMahasiswaDefaultTableModel.getRowCount(),listMahasiswa[i]);
}
} else {
dispose();
}
}//GEN-LAST:event_formWindowActivated
private void tutupButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tutupButtonActionPerformed
Page 17
// TODO add your handling code here:
NIMDiPilih="";
dispose();
}//GEN-LAST:event_tutupButtonActionPerformed
private void pilihButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pilihButtonActionPerformed
// TODO add your handling code here:
NIMDiPilih="";
if (daftarMahasiswaTable.getSelectedRowCount()>0){
NIMDiPilih = daftarMahasiswaTable.getValueAt( daftarMahasiswaTable.getSelectedRow(), 0).toString();
dispose();
} else {
JOptionPane.showMessageDialog(null,"Belum ada yang dipilih");
}
}//GEN-LAST:event_pilihButtonActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/*
* Set the Nimbus look and feel
*/
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the
Page 18
* default look and feel. For details see
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(DaftarMahasiswa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(DaftarMahasiswa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(DaftarMahasiswa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(DaftarMahasiswa.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/*
* Create and display the dialog
Page 19
*/
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
DaftarMahasiswa dialog = new DaftarMahasiswa(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JTable daftarMahasiswaTable;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton pilihButton;
private javax.swing.JButton tutupButton;
// End of variables declaration//GEN-END:variables
}
Page 20
Perpustakaan Universitas
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package perpustakaanuniversitas;
import view.FormUtama;
/**
*
* @author Handoyo
*/
public class PerpustakaanUniversitas {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
new FormUtama().setVisible(true);
}
}
FormBuku