Jumat, 29 Juni 2012

Manipulasi DataBase


Manipulasi DataBase

Posting berikut ini tentang manipulasi dengan database yang menggunakan MySQL. Pertama buat database dengan MySQL dengan judul dbtry. Kemudian koneksikan dengan netbeans. Buat class baru yang berisi :

package db.app;
public class Buku {
private int jumlah;
private String judul;
private String penerbit;
private String penulis;
public Buku() {
}
public int getJumlah() {
return jumlah;
}
public void setJumlah(int jumlah) {
this.jumlah = jumlah;
}
public String getJudul() {
return judul;
}
public void setJudul(String judul) {
this.judul = judul;
}
public String getPenerbit() {
return penerbit;
}
public void setPenerbit(String penerbit) {
this.penerbit = penerbit;
}
public String getPenulis() {
return penulis;
}
public void setPenulis(String penulis) {
this.penulis = penulis;
}
}

Lalu buat class yang baru dengan judul BookManager
class lain
package db.app;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author rizma
*/
public class BookManager {
Connection con = null;
Statement st = null;
String url = “jdbc:mysql: //localhost:3306/dbtest”;
String user = “tes”;
String pass = “tes”;

public BookManager() {
try{
Class.forName(”com.mysql.jdbc.Driver”).newInstance();
con = DriverManager.getConnection(url,user,pass);
st=con.createStatement();
}catch(Exception ex){
ex.printStackTrace();
}
}
public List
getBuku(){
ResultSet rs = null;
List
buku = new ArrayList
();
try{
rs = st.executeQuery(”SELECT JUMLAH, JUDUL, PENERBIT, PENULIS FROM tbuku”);
while(rs.next()){
Buku b = new Buku();
b.setJumlah(rs.getInt(1));
b.setJudul(rs.getString(2));
b.setPenerbit(rs.getString(3));
b.setPenulis(rs.getString(4));
Buku.add(b);
}
}catch(Exception ex){
ex.printStackTrace();
}
return Buku;
}
public int insert(Buku b){
int result = 0;
try{
result = st.executeUpdate(”INSERT INTO tbuku(jumlah, judul, penerbit, penulis) ” +
“VALUES(”+b.getJumlah()+”,‟”+b.getJudul()+”„,‟”+b.getPenerbit()+”„,” +
“„”+b.getPenulis()+”„)”);
}catch(Exception ex){
ex.printStackTrace();
}
return result;
}
public int delete(Buku b){
int result = 0;
try{
result = st.executeUpdate(”DELETE FROM tbuku WHERE Jumlah=”+b.getJumlah()+”");
}catch(Exception ex){
ex.printStackTrace();
}
return result;
}
}

 Kemudian buat tampilan di javaframe seperti ini :

Ubah semua nama-namanya menjadi :
text Jumlah –> txtJumlah
text Judul –> txtNama
text Penulis –> txtPenerbit
text Penulis –> txtPenulis
Tombol Prev –> btnPrev
Tombol Next –> btnNext
Tombol Baru –> btnBaru
Tombol Simpan –>btnSimpan
Tombol Hapus–> btnHapus

Kode pada btnBaru
private void btnBaruActionPerformed(java.awt.event.ActionEvent evt) {
txtJumlah.setText(”");
txtJudul.setText(”");
txtPenulis.setText(”");
txtPenerbit.setText(”");
txtJumlah.setEditable(true);
txtJUdul.setEditable(true);
txtPenulis.setEditable(true);
txtPenerbit.setEditable(true);
txtJudul.requestFocus();
}

Untuk tombol btnSimpan
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) {
Buku b = new Buku();
b.setJumlah(Integer.parseInt(txtJumlah.getText()));
b.setJudul(txtNama.getText());
b.setPenulis(txtPenulis.getText());
b.setPenerbit(txtPenerbit.getText());
if(pmgr.insert(p)>0){
loadData();
currentRow = Buku.size()-1;
bindData();
JOptionPane.showMessageDialog(this,”Data Disimpan”,”Informasi”,
JOptionPane.INFORMATION_MESSAGE);
txtJumlah.setEditable(false);
txtJUdul.setEditable(false);
txtPenulis.setEditable(false);
txtPenerbit.setEditable(false);
}else{
JOptionPane.showMessageDialog(this,”Data gagal disimpan”,”Informasi”,
JOptionPane.INFORMATION_MESSAGE);
}
}

Untuk tombol btnHapus
private void btnHApusActionPerformed(java.awt.event.ActionEvent evt) {
Buku b = buku.get(currentRow);
if(pmgr.delete(p)>0){
loadData();
currentRow = currentRow-1;
bindData();
JOptionPane.showMessageDialog(this,”Data berhasil dihapus”,”Informasi”,
JOptionPane.INFORMATION_MESSAGE);
}else{
JOptionPane.showMessageDialog(this,”Data gagal dihapus”,”Informasi”,
JOptionPane.INFORMATION_MESSAGE);
}
}

Untuk tombol btnPrev
private void btnPrevActionPerformed(java.awt.event.ActionEvent evt) {
if(currentRow>0){
–currentRow;
}
bindData();
}

Untuk tombol btnNext
private void btnNextActionPerformed(java.awt.event.ActionEvent evt) {
if(currentRow
++currentRow;
}
bindData();
}
Kemudian tambahkan beberapa variabel berikut pada Class MyBook.java
BookManager pmgr = new BookManager();
List<Buku> buku = new ArrayList<Buku>();
int currentRow = 0;

Dan tambahkan 2 method berikut pada Class MyBook.java
private void loadData(){
buku = pmgr.getBuku();
}
private void bindData(){
if(buku.size()>0){
buku b = buku.get(currentRow);
txtJUmlah.setText(p.getJumlah()+”");
txtJudul.setText(p.getJudul());
txtPenerbit.setText(p.getPenerbit());
txtPenulis.setText(p.getPenulis());
}else{
currentRow = 0;
txtJumlah.setText(”");
txtJudul.setText(”");
txtPenulis.setText(”");
txtPenerbit.setText(”");
}
}

Dan yang terakhir ubahlah Constructor Calss MyBook.java menjadi
public MyBook() {
initComponents();
loadData();
bindData();
}

Struktur Data Array dalam Java


Struktur Data Array dalam Java

Array adalah suatu struktur data yang menampung elemen-elemen terurut dengan tipe yang sama. Di java, array merupakan object tapi array juga harus didefinisikan terlebih dahulu, array tersebut berupa tipe primitive maupun reference, jadi array harus dibuat dengan operator new misalnya pegawai = new int[7]; yang artinya membuat array 7 buah yang kesemuanya integer. Panjang array adalah variabel instansi di objek array, oleh karena itu array tahu berapa panjangnya misal pegawai dengan menggunakan pegawai.length (tapi kita tidak bisa mengubahnya). Lalu jika tipe tersebut sudah ada, maka class array dari tipe tersebut telah ada. Misalnya nama tipe adalah TipePrimitif, maka class array-nya adalah TipePrimitif[], maksudnya sebuah object yang dibuat dari kelas TipePrimitif[] adalah array dari item yang tiap itemnya bertipe TipePrimitif, disini tanda [] berfungsi sebagai pengingat sintaks untuk mengambil item dalam array TipePrimitif. Array juga tidak bisa disimpan dalam variable, fungsi variabel hanya untuk merujuk pada array dengan cara variabel_array [ekspresi_integer], variabel bisa bernilai null yang artinya tidak merujuk pada lokasi memori apapun. Elemen-elemen dalam array bisa diakses dengan index (index didalam array bisa dimulai dari nol). Atribut length berfungsi untuk mendapatkan lebih banyak elemen pada array. Sebagaimana obyek lain, array merupakan bagian dari suatu kelas, dan mempunyai class turunan dari class object. Class Array berfungsi untuk memudahkan melakukan operasi umum pada array, namun class array terlebih dahulu diimport dari package “java.util” yang berupa :
·         Arrays.sort(arr) : digunakan mengurutkan elemen dalam array.
·         Arrays.fill(arr, value) : mengisi elemen dalam array.
·         Arrays.toString(arr_value) : mengubah variabel array of value menjadi string.
·         Arrays.copyOf(arr, length) : mengcopy data array sebanyak length yang telah ditentukan
·         Arrays.equals(arr_8, arr_9) : membandingkan apakah arr_8 sama dengan arr_9.
Contoh sederhana array dengan alokasi string sebanyak 3 :
class Flower {
public static void main(String[] args) {
String[] bunga = new String[3]; // mengalokasikan array string sebanyak 3
bunga[0] = “matahari”;  // indeks 0
bunga[1] = “lavender”;   // indeks 1
bunga[2] = “tulip”;      // indeks 2
System.out.println(“Nama Bunga ; “ + bunga[0]);        // menampilkan indeks 0
System.out.println(“Nama Bunga : “ + bunga[1]);        // menampilkan indeks 1
System.out.println(“Nama Bunga : “ + bunga[2]);        // menampilkan indeks 2
}
}
Array dinamis merupakan sebuah obyek yang serupa dengan array, namun bisa berubah ukuran, yang berfungsi untuk mengakomodasi jumlah data yang mampu ditampungnya. Sama halnya dengan array, array dinamis mengisi dan mengambil posisi tertentu. Bedanya hanya array dinamis tidak mempunyai jumlah maksimum sesuai dengan jumah memori yang tersedia dalam computer. Array dinamis menggunakan metode get dan put sebagai motode instansi. Berikut ini adalah contoh menggunakan array dinamis :
public class ArrayDinamisInt {
private int[] nilai;  // untuk Array - menyimpan data
        public DynamicArrayOfInt() {
                 nilai = new int[1];  // nilai Array akan bertambah jika diperlukan
        }
        public int get(int posisi) {
            // mengambil nilai dari posisi tertentu di array
            // jika posisi tsb di luar data array, nilai 0 akan dikembalikan
            if (posisi >= nilai.length)
                return 0;
            else
                return nilai[posisi];
        }
        public void put(int posisi, int nilaiX) {
            // menyimpan nilai ke posisi yang diinginkan dalam array
            if (posisi >= nilai.length) {
                // Posisi yang ditentukan berada di luar array data
                // membuat Besar ukuran array 2x, Atau jika ukurannya masih
                // terlalu kecil, maka ukurannya akan sebesar 2*posisi
                int ukuranBaru = 2 * nilai.length;
                if (posisi >= ukuranBaru)
                    ukuranBaru = 2 * posisi;
                int[] nilaiBaru = new int[ukuranBaru];
                System.arraycopy(nilai, 0, nilaiBaru, 0, nilai.length);
                nilai = nilaiBaru;
                System.out.println("Ukuran array dinamis menjadi + ukuranBaru);
            }
            nilai[posisi] = nilaiX;
        }
    }