Pengecekan Nomor Kartu Kredit menggunakan Algoritma Luhn Java Programming

Ternyata dalam digit number kartu kredit itu terdapat pengecekan bila salah satu karakter diganti dengan digit lain maka akan menghasilkan kembalian false. jadi dengan itu tidak mudah dalam pemalsuan nomor kartu kredit karena nomor tersebut di buat dengan algoritma yang secure. Salah satu algoritma yang sering dipakai dalam pengecekan kartu kredit adalah algoritma Luhn (Luhn Algorithm). deskripsinya dapat dibaca disini http://en.wikipedia.org/wiki/Luhn_algorithm.

Bentuk code java untuk pengecekan menggunakan algoritma Luhn dapat dilihat dibawah, code ini saya dapat dari googlecode 😀 jadi free untuk digunakan :

public class Luhn
{
        public static boolean Check(String ccNumber)
        {
                int sum = 0;
                boolean alternate = false;
                for (int i = ccNumber.length() - 1; i >= 0; i--)
                {
                        int n = Integer.parseInt(ccNumber.substring(i, i + 1));
                        if (alternate)
                        {
                                n *= 2;
                                if (n > 9)
                                {
                                        n = (n % 10) + 1;
                                }
                        }
                        sum += n;
                        alternate = !alternate;
                }
                return (sum % 10 == 0);
        }
}

Selamat mencoba untuk belajar, siapa tahu bermanfaat dalam dunia kerja nantinya 😀
Untuk contoh programnya menyusul. hehe

Sumber : Google Code Luhn.java

User Guide TokuBukuApp Project

Masih ingat dengan aplikasi Toko Buku yang pernah saya buat dulu. Dulu waktu saya posting tidak saya sertai dengan user guide cara menjalankan. artikel yang aplikasi toko buku. dan akhirnya sudah bisa didownload di googlecode. silahkan didownload di link dibawah ini :

User Guide TokoBukuApp

Semoga bermanfaat.

Install JDK 7 Oracle/Sun di Ubuntu

sudo rm /var/lib/dpkg/info/oracle-java7-installer*
sudo apt-get purge oracle-java7-installer*
sudo rm /etc/apt/sources.list.d/*java*
sudo apt-get update
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Game Wayang Kulit Java 2 ME (Mobile Edition)

Sambil menunggu task selanjutnya dari PM saya di kantor. mending saya posting aja sesuatu diblog, dan saya menemukan ide buat postingin aplikasi yang sudah lama banget saya bikin bersama temen saya yg bernama fendi waktu masih semester 5. udah hampir satu tahun yang lalu, aplikasi ini dulu kami bikin untuk kami ikut sertakan dalam lomba2 yang marak diadakan dijogja dengan tema mobile edition. dan biasanya kalo ada target atau tujuan, niat kita untuk belajar atau mengexplore sebuah ilmu itu akan lebih besar, oleh karena itu kami ikuti lomba2 yg ada supaya kita mau tidak mau ya harus belajar.hehehe
oke bagi yang ingin tahu coding nya seprti apa dapat di download aja di github. untuk yang pengen masang ke hp nya tinggal ambil aja .jar nya yang ada di folder /dist. dan silahkan di install.
contoh aplikasi nya dapat di lihat di youtube :

sourcecode dapat dilihat serta didownload dibawah ini.
https://github.com/bahrie127/j2me-wayang-saga

JTree Tanpa Root

Setelah cari cari akhirnya ketemu kalo kita pengen buat JTree tapi rootnya gak mo di tampilkan. supaya gak langsung collapse kalo punya banyak kategori cuman gara2 ada rootnya.
oke langsung aja ke codingnya. ga susah kq, cuman butuh satu baris aja. yaitu

JTree tree=new JTree(bla bla bla);
tree.setRootVisible(false);

cuman butuh root visible false doank. oke. selamat berkarya 😀

Menulis dan Membaca File Properties Java

File Properties biasanya berguna untuk menyimpan username,password database dan host,port untuk koneksi dari aplikasi ke database maupun ke aplikasi lain. 😀 dibawah ini contoh class yang mengurusi membaca file properties untuk digunakan dalam run aplikasi maupun menulis kedalam properties guna merubah password atau username atau host atau port. 😀


public class FileSystem {

    private final static String FILE_HOST = "system/server.properties";
    public final static String KEY_HOST = "host";
    public final static String KEY_PORT = "port";

    public Properties read() {
        try {

            Properties p = new Properties();
            p.load(new FileInputStream(FILE_HOST));
            return p;
        } catch (IOException ex) {
            Logger.getLogger(FileSystem.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, "file server.properties not found");
            return null;
        }
    }

    public void writeServer(Properties p) {
        try {
            p.store(new FileOutputStream(FILE_HOST), null);
        } catch (IOException ex) {
            Logger.getLogger(FileSystem.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

Setting Path Java, Tomcat, Maven di Ubuntu

Tambahkan kode dibawah ini pada /etc/bash.bashrc

JAVA_HOME=/usr/java
M2_HOME=/usr/local/apache-maven-3.0.1
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
export M2_HOME
PATH=$M2_HOME/bin:$PATH
export PATH=${PATH}:/usr/android-sdk-linux_86/tools

#export PATH=/usr/local/apache-maven-3.0.1/bin:$PATH

CATALINA_HOME=/home/bahrie/apache-tomcat-7.0.23
export CATALINA_HOME
PATH=$CATALINA_HOME/bin:$PATH
export PATH

Crud Java Menggunakan Spring-Hibernate

Malem semakin larut dan aku pun berfikir akan suatu hal. di tweet banyak yang bilang saya sedang galau. ah tidak itu hanya kata mereka saja. saya hanya sedang belajar menulis puisi. dan sampailah saya menulis tutorial yang sebenarnya sudah lama ingin ku tulis. namun karna sang waktu melenakanku, hingga baru sekarang coretan ini terwujud. Crud itu kepanjangan dari create read update delete, java yang berarti disusun oleh tutur java, menggunakan spring hibernate bermaksud menjadikan spring serta hibernate pendamping tutur java dalam membentuk sebuah aplikasi yang di impikan. ditutorial ini saya jadikan netbeans sebagai alat tulisku, spring dan hibernate meja belajarku.
Hibernate membatuku mempercapat urusan dalam pembuatan model yang bertugas bercakap2 dengan database. Belau dapat memberi kita table sesaui yang kita inginkan beserta relasi relasinya. dengan HQL nya, sang Hibernate memberi kita kebahagiaan akan harmonisnya dia dengan semua database. Spring bagaikan mesin jahit, yang dapat menusuk sana dan sini. dapat memasukkan aliran darah aplikasi ke dalam nadi yang membutuhkannya.

lebih jelasnya download projectnya serta jalankan. bila ditemukan keluahan atau kegalauan silahkan tulis curhatannya 🙂

untuk screenshoot wajah spring hibernate mungkin akan menyusul seiring waktu yang menggiringku ke sebuah tutorial yang meninggalkan tanda tanya.

http://bahrie127.googlecode.com/files/demo-spring.zip

Database to Excel menggunakan Java

Iseng iseng di tengah kesibukan, karena ada temen yg nanya jg gmana sih jadiin data yg ada di dalam database menjadi excel make java?. Karena saya pernah buat aplikasinya jadi coba saya share gimana buatnya, yg jelas disini kita harus make librari yg bukan bawaannya jdk, disini kita make librarinya apace poi. Untuk lebih jelasnya bisa baca referensi dari blognya kang eko, kang eko jg sebenarnya sudah buat tutorial kayaa gini, tapi dia buatnya diatas maven, jd yg blum terbiasa make maven bakal bingung jalaninnya gimana bukanya juga gimana.hehehe.. oke ini yg dah saya buat, buat klass klass pendukungnya,,

pertama buat databasenya dulu, saya buat dengan nama data. setelah itu buat table dan coba di isi.

CREATE TABLE IF NOT EXISTS `excel` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `biner` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `excel`
--

INSERT INTO `excel` (`id`, `biner`) VALUES
(1, 111101001),
(2, 11100100);

klass pertama : Data.java

package databasetoexcel.model;

/**
 *
 * @author saiful bahri (jepara,1990)
 * https://bahrie27.wordpress.com/
 */
public class Data {
    
    private int biner;

    public Data() {
    }

    public int getBiner() {
        return biner;
    }

    public void setBiner(int biner) {
        this.biner = biner;
    }
    
    
    
}

kelas ke dua : DataImpl.java

package databasetoexcel.model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author saiful bahri (jepara,1990)
 * https://bahrie27.wordpress.com/
 */
public class DataImpl {

    private Connection conn;

    public DataImpl() {
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            String db = "jdbc:mysql://localhost:3306/data";
            String user = "root";
            String pass = "root";
            conn = DriverManager.getConnection(db, user, pass);
        } catch (SQLException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void insertDb(int biner){
        try {
            PreparedStatement ps = conn.prepareStatement("insert into excel values(null,?)");
            ps.setInt(1, biner);
            ps.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public List getAll(){
        try {
            Statement st = conn.createStatement();
            ResultSet rs = st.executeQuery("select *from excel");
            List list = new ArrayList();
            while (rs.next()) {
                Data d=new Data();
                d.setBiner(rs.getInt("biner"));
                list.add(d);
            }
            return list;
        } catch (SQLException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        }
    }

    public void deleteAll(){
        try {
            PreparedStatement ps = conn.prepareStatement("delete from excel");
            ps.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(DataImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        
    }

}

kelas ke tiga :JTableToExcelConverter.java (saya ambil dari codenya kang eko).

/*
 *  Copyright 2011 Eko Kurniawan Khannedy.
 * 
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 * 
 *       http://www.apache.org/licenses/LICENSE-2.0
 * 
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *  under the License.
 */
package databasetoexcel.converter;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JTable;
import javax.swing.table.TableModel;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/**
 *
 * @author Eko Kurniawan Khannedy
 */
public class JTableToExcelConverter {

    private JTable jtable;

    public JTableToExcelConverter(JTable table) {
        this.jtable = table;
    }

    public void convert(File file) {
        // ambil table model
        TableModel tableModel = jtable.getModel();

        // ambil data header table
        List header = new ArrayList();
        for (int i = 0; i < tableModel.getColumnCount(); i++) {
            header.add(tableModel.getColumnName(i));
        }

        // ambil data seluruh tabel
        List<List> data = new ArrayList<List>();

        // ambil data tiap baris
        for (int i = 0; i < tableModel.getRowCount(); i++) {
            List row = new ArrayList();
            for (int j = 0; j < tableModel.getColumnCount(); j++) {
                row.add(tableModel.getValueAt(i, j));
            }
            data.add(row);
        }

        HSSFWorkbook workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet();

        HSSFRow rowHeader = sheet.createRow(0);
        for (int i = 0; i < header.size(); i++) {
            HSSFCell rowCell = rowHeader.createCell(i);
            rowCell.setCellValue(header.get(i));
        }

        for (int i = 0; i < data.size(); i++) {
            HSSFRow row = sheet.createRow(i + 1);
            List dataRow = data.get(i);
            for (int j = 0; j < dataRow.size(); j++) {
                HSSFCell cell = row.createCell(j);
                cell.setCellValue(dataRow.get(j).toString());
            }
        }

        FileOutputStream stream = null;
        try {
            stream = new FileOutputStream(file);
            workbook.write(stream);
        } catch (IOException ex) {
            Logger.getLogger(JTableToExcelConverter.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            if (stream != null) {
                try {
                    stream.close();
                } catch (IOException ex) {
                    Logger.getLogger(JTableToExcelConverter.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
    }
}

setelah itu buat form nya. saya beri nama ViewDataToExcel.java screenshot dibawah.

form

untuk lbh jelas sourcodenya download aja di googlecode.

jfilechooser

ini sceen shotnya ketika menambahkan jfilechooser, kalo caranya g kaya gitu nanti hasinya mawot di framenya hehehe

ini acara menambahkan librari poi.jar nya. librarinya ada di folder /lib yg di download.

lib

Silahkan di download dan di plajari. Semoga bermanfaat.. bagi yg ingin tanya2 dapat chat di gtalk : bahrie172

Presentasi OOP (Inheritence Database ke MySQL dan Oracle)

Alhamdulillah bisa ngeblog lagi.. disini saya ingin menshare hasil presentasi saya kemaren di matakuliah Object Oriented Programming.. disini saya membahas tentang Inheritence atau turunan. jadi pertama saya punya class Database dan kelas tersebut saya turunkan ke kelas DbMySQL dan kelas DbOracle. Jadi dikelas Database tersebut sudah terdapat 3 method yaitu konfigurasi, insert, dan select. untuk insert dan select sendiri dalam mysql dan oracle querynya sama jadi dapat langsung dibuat di database dan nanti tinggal di turunkan. sedangkan untuk konfigurasi pastinya beda antara mysql dan oracle, jadi untuk methode konfigurasi saya bikin abstrak jadi nanti untuk di klas DbMysql dan DbOracle dapat diimplement sendiri dengan cara konfigurasi masing2 database. Disini saya hanya menyediakan satu tabel yaitu tabel matakuliah untuk dijadikan simulasinya..
jadi di mysql dan oracle sama-sama terdapat tabel matakuliah. jadi langkah pertama membuat database dikedua jenis database tersebut dengan diisi tabel matakuliah. lalu membuat class Matakuliah yang isi parameternya id,nama,dosen serta jangan lupa setter getternya

public class Matakuliah {
    
    private String id;
    private String nama;
    private String dosen;

    public Matakuliah() {
    }

    public String getDosen() {
        return dosen;
    }

    public void setDosen(String dosen) {
        this.dosen = dosen;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }
       
}

setelah itu buat class Database sebagai kelas induk

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

public abstract class Database {
    
    abstract public Connection getKonfigurasi();
    
    public void insert(Matakuliah mk){
        try {
            PreparedStatement ps=getKonfigurasi().prepareStatement("insert into matakuliah values(?,?,?)");
            ps.setString(1, mk.getId());
            ps.setString(2, mk.getNama());
            ps.setString(3, mk.getDosen());
            ps.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void getAll(){
        try {
            Statement st=getKonfigurasi().createStatement();
            ResultSet rs=st.executeQuery("select *from matakuliah");
            List<Matakuliah> list=new ArrayList<Matakuliah>();
            while(rs.next()){
                Matakuliah mk=new Matakuliah();
                mk.setId(rs.getString("id"));
                mk.setNama(rs.getString("nama"));
                mk.setDosen(rs.getString("dosen"));
                list.add(mk);
            }
            
            for(Matakuliah mk : list){
                System.out.println("");
                System.out.println("-------------------");
                System.out.println("ID Matakuliah : "+mk.getId());
                System.out.println("Nama Matakuliah : "+mk.getNama());
                System.out.println("Dosen : "+mk.getDosen());
                System.out.println("-------------------");
            }
        } catch (SQLException ex) {
            Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

lalu buat class DbMySQL untuk turunan dari class Database

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DbMySQL extends Database{
    private Connection conn;
    @Override
    public Connection getKonfigurasi() {
        try {
            try {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                String db="jdbc:mysql://localhost:3306/presentasi";
                String user="root";
                String pass="root";
                conn=DriverManager.getConnection(db, user, pass);
                return conn;
            } catch (SQLException ex) {
                Logger.getLogger(DbMySQL.class.getName()).log(Level.SEVERE, null, ex);
                return null;
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(DbMySQL.class.getName()).log(Level.SEVERE, null, ex);
                return null;
            }
        } catch (InstantiationException ex) {
            Logger.getLogger(DbMySQL.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        } catch (IllegalAccessException ex) {
            Logger.getLogger(DbMySQL.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        }
    }
    
}

buat class DbOracle sebagai turunan dari class Database

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DbOracle extends Database{
    private Connection conn;
    @Override
    public Connection getKonfigurasi() {
        try {
            try {
                Class.forName("oracle.jdbc.OracleDriver").newInstance();
                String db="jdbc:oracle:thin:@localhost:1521:XE";
                String user="bah";
                String pass="teh";
                conn=DriverManager.getConnection(db, user, pass);
                return conn;
            } catch (SQLException ex) {
                Logger.getLogger(DbOracle.class.getName()).log(Level.SEVERE, null, ex);
                return null;
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(DbOracle.class.getName()).log(Level.SEVERE, null, ex);
                return null;
            }
        } catch (InstantiationException ex) {
            Logger.getLogger(DbOracle.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        } catch (IllegalAccessException ex) {
            Logger.getLogger(DbOracle.class.getName()).log(Level.SEVERE, null, ex);
            return null;
        }
    }
    
}

setelah itu buat class untuk simulasinya atau untuk demo program nya..

import java.util.Scanner;

public class DemoDatabase {

    public static void main(String[] args) {
        int status;
        int pilihanMysql = 0;
        int pilihanOracle = 0;
        boolean keluar = false;
        boolean keluarAll=false;
        Database db;
        do{
        System.out.println("=====PRESENTASI MATAKULIAH OOP=======");
        System.out.println("");
        System.out.println("Pilih Database yang ingin di pakai ?");
        System.out.println("1. MySQL");
        System.out.println("2. ORACLE");
        System.out.println("3. Keluar");
        System.out.print("Pilih nomor : ");
        Scanner scan;
        scan = new Scanner(System.in);
        status = Integer.parseInt(scan.nextLine());
        do {
            if (status == 1) {
	    keluar=false;
                db = new DbMySQL();
                System.out.println("");
                System.out.println("Database MySQL");
                System.out.println("==============");
                System.out.println("1. Insert data");
                System.out.println("2. Lihat data");
                System.out.println("3. Keluar");
                System.out.print("pilih : ");
                scan = new Scanner(System.in);
                pilihanMysql = Integer.parseInt(scan.nextLine());
                if (pilihanMysql == 1) {
                    Matakuliah mk = new Matakuliah();
                    System.out.print("Masukkan ID Matakuliah : ");
                    scan = new Scanner(System.in);
                    mk.setId(scan.nextLine());
                    System.out.print("Masukkan Nama Matakuliah : ");
                    scan = new Scanner(System.in);
                    mk.setNama(scan.nextLine());
                    System.out.print("Masukkan Dosen : ");
                    scan = new Scanner(System.in);
                    mk.setDosen(scan.nextLine());
                    db.insert(mk);
                    System.out.println("");
	        System.out.print("Semua Data Matakuliah Di Database Oracle");
	        db.getAll();
                } else if (pilihanMysql == 2) {
	        System.out.println("");
	        System.out.print("Semua Data Matakuliah Di Database MySQL");
                    db.getAll();
                
                } else if (pilihanMysql == 3) {
                    keluar = true;
                } else {
                    System.out.println("pilihan salah");
                }
            } else if (status == 2) {
	    keluar=false;
                db = new DbOracle();
                System.out.println("");
                System.out.println("Database Oracle");
                System.out.println("==============");
                System.out.println("1. Insert data");
                System.out.println("2. Lihat data");
                System.out.println("3. Keluar");
                System.out.print("pilih : ");
                scan = new Scanner(System.in);
                pilihanOracle = Integer.parseInt(scan.nextLine());
                if (pilihanOracle == 1) {
                    Matakuliah mk = new Matakuliah();
                    System.out.print("Masukkan ID Matakuliah : ");
                    scan = new Scanner(System.in);
                    mk.setId(scan.nextLine());
                    System.out.print("Masukkan Nama Matakuliah : ");
                    scan = new Scanner(System.in);
                    mk.setNama(scan.nextLine());
                    System.out.print("Masukkan Dosen : ");
                    scan = new Scanner(System.in);
                    mk.setDosen(scan.nextLine());
                    db.insert(mk);
	        System.out.println("");
	        System.out.print("Semua Data Matakuliah Di Database Oracle");
                    db.getAll();

                } else if (pilihanOracle == 2) {
	        System.out.println("");
	        System.out.print("Semua Data Matakuliah Di Database Oracle");
                    db.getAll();

                } else if (pilihanOracle == 3) {
                    keluar = true;
                    
                } else {
                    System.out.println("pilihan salah");
                }
            }else if(status==3){
                keluarAll=true;
            }
        } while (keluar == false);
        }while(keluarAll==false);
    }
}

program ini nantinya masih jalan di console/terminal/cmd saja jadi belum ada tampilan GUI namun sudah dapat digunakan untuk melakukan proses insert serta select dari database database tersebut.

dibawah ini tampilan running program di console : dapat juga di jalankan di cmd sebab java itu multiplatform tinggal di compile dan dijalankan.

db

untuk source dapat didownload di bawah ini :
oh ya untuk driver mysql dan oracle nya itu saya exstrack dari driverJdbc .jar yang mysql dan oracle miliki.. karena ini masih manual jalan di console maka untuk mengimport drivernya pun saya lakukan dengan cara manual dengan cara mengekstraknya. 😀

http://bahrie127.googlecode.com/files/PresentasiPBO.zip

selamat Belajar java beserta Database, serta memahami OOP pastinya.. 😀

Previous Older Entries