Sunday, March 31, 2013

cara memodifikasi hibernate.cfg.xml


Berikut ini merupakan source cara memodifikasi   hibernate.cfg.xml. Mengapa kita butuh modifikasi? 

Modifikasi ini berfungsi untuk membuat hibernate bisa berjalan secara dinamis, jadi ketika ada perubahan di database atau url kita bisa langsung merubah dari aplikasi yang kita buat. Mungkin itu yang bisa saya pahami. Selamat mencoba ^.^

// Create the SessionFactory from hibernate.cfg.xml
 Configuration hc= new Configuration();
 hc.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLDialect");
 hc.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
 hc.setProperty("hibernate.connection.url", "jdbc:mysql://" + "localhost:3306" + "/" + "db");
 hc.setProperty("hibernate.connection.username", "root");
 hc.setProperty("hibernate.connection.password", "");
  hc.addResource("adicodes/pojo/Pojo.hbm.xml");
 sessionFactory = hc.buildSessionFactory();

Friday, March 29, 2013

Membuat Tree : Java

Berikut ini saya akan memberikan sedikit cara membuat tree dengan bahasa java.

Pertama, kita buat sebuah project, misal : TreeExample, selanjutnya buat JFrame dengan nama MainFrame. bisa dilihat dibawah ini :











Kedua, drag JTree dari palette dan tambahkan ke JFrame, seperti gambar dibawah ini :


































Langkah ketiga, ubah nama variable dari JTree dengan "tree"












Keempat, masuk ke source dari JFrame dan buat 2 buat method, yaitu :

  • populateTree();
  • child();
berikut source nya :

public void populateTree(){

     DefaultMutableTreeNode top= new DefaultMutableTreeNode("adicodes");
        
     child(top);
        
     DefaultTreeModel defaultTreeModel= new DefaultTreeModel(top);
        
     tree.setModel(defaultTreeModel);
        
}

//------------------------------------------------------------------
void child(DefaultMutableTreeNode top){
     top.add(new DefaultMutableTreeNode("TreeExample"));
     top.add(new DefaultMutableTreeNode("HibernateExample"));   
}



Yang terakhir, panggil method populateTree() dari constructor MainFrame


public MainFrame() {
    initComponents();
        
    populateTree();
}


Silahkan di running, hasilnya sebagai berikut :




























Selamat mencoba ^.^

Tuesday, March 26, 2013

Open, Write and Read File : Java


Berikut ini, akan dijelaskan mengenai beberapa contoh dasar dalam pengelolaan file dengan 
menggunakan bahasa pemrograman java yaitu :  

  • open file,  
  • write file dan  
  • read file  

Langkah 1 : 
Buat sebuah project --> package --> Class 
- nama project = “file-example” 
- nama package = “adicodes.file” 
- nama class = “FileExample” 












Langkah 2 : 
Dalam kelas FileExample buat method – method seperti dibawah ini : 
Terdapat beberapa method diataranya yaitu method main, test, test2, openFile, writeFile, 
readFile dan desktopOpenFile. Untuk source code dari tiap method akan dijelaskan pada 
langkah selanjutnya. 































Jika sudah membuat method – method seperti diatas, lanjutkan ke langkah berikut nya.


Langkah 3 :
Tuliskan statement yang ada dalam method public boolean openFile(). Mehtod ini berfungsi 
untuk membuka file agar dapat dilakukan pengelolaan file seperti write file , read file ataupun 
desktop open file. Method ini mengembalikan nilai Boolean yang berguna untuk control 
ataupun pengecekan, apakah proses open file berhasil atau gagal. Jika berhasil nilai yang akan 
dikembalikan “true” dan jika gagal maka nilai yang dikembalikan adalah “false”. 
Berikut ini source code untuk method openFile :  

public boolean openFile() {
boolean toReturn = false;

f = new File(DATA_PATH);
if (!f.exists()) {
    f.mkdirs();
}

f = new File(DATA_PATH + "file-example.txt");
if (f.exists()) {
    f.delete();
}

if (!f.exists()) {
try {
f.createNewFile();
fstream = new FileWriter(f, true);
toReturn = true;
        } catch (Exception e) {
// TODO: handle exception
toReturn = false;
}
        }

return toReturn;
}


Langkah 4 : 
Tuliskan statement untuk method public Boolean writeFile(). Method ini berfungsi untuk 
menulis kedalam file. Parameter pada method ini nantinya akan menampung nilai inputan user 
yang akan dituliskan pada file. Jika berhasil melakukan penulisan makan akan mengembalikan 
nilai “true” dan jika gagal akan mengembalikan nilai “false”. 

public boolean writeFile(String write) {
boolean toReturn = false;

try {
// kelas yang menangani masalah penulisan file
BufferedWriter out = new BufferedWriter(fstream);
// method dari kelas bufferedwriter
// yang berfungsi untuk menulis file
out.write(write);
out.flush();
toReturn = true;
} catch (IOException ex) {
toReturn = false;
System.out.println("error : " + ex.getMessage());
}

return toReturn;

}

Langkah 5 : 
Tuliskan statement untuk method public boolean readFile().  
Method ini berfungsi untuk membaca file. Pembacaan file dilakukan perbaris dan selanjutnya 
ditampilkan dalam console. Jika berhasil melakukan pembacaan file maka akan 
mengembalikan nilai “true” dan jika gagal akan mengembalikan nilai “false”. 

public boolean readFile() {
        boolean toReturn = false;
FileInputStream fstream = null;
try {
fstream = new FileInputStream(f);
        DataInputStream in = new DataInputStream(fstream);
String temp = "";
br = new BufferedReader(new InputStreamReader(in));
while ((temp = br.readLine()) != null) {
        System.out.println(temp);
}
toReturn = true;

} catch (IOException ex) {
toReturn = false;
System.out.println("error : " + ex.getMessage());
} finally {
try {
fstream.close();
} catch (IOException ex) {
toReturn = false;
System.out.println("error : " + ex.getMessage());
}
}

return toReturn;

}


Langkah 6 : 
Tuliskan statement untuk method desktopOpenFile(). 
Method ini berfungsi untuk menampilkan File ke user sesuai dengan format pada file tersebut. 
untuk kasus ini file akan ditampilkan dengan menggunakan notepad. 

public boolean desktopOpenFile() {
        boolean toReturn = false;
try {
Desktop desktop = null;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
}
if (f.exists()) {
desktop.open(f);
toReturn = true;
} else {
        System.out.println("file not found!");
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("error : " + e.getMessage());
toReturn = false;
}

        return toReturn;

}

Langkah 7 : 
Tuliskan statement untuk method test() 

public void test() {
     BufferedReader text = new BufferedReader(new InputStreamReader(System.in));

      try {
System.out.println("----- Write File ------");
System.out.print("text : ");
String write = text.readLine();

// buka file --> jika bernilai true maka
// akan melakukan write, read dan desktop open flie.
if (openFile()) {

// write file..
if (writeFile(write)) {
System.out.println("write files successfully!");
} else {
System.out.println("read files fails!");
}
System.out.println("-----------------------");

System.out.println("----- Read File -------");

        // read file
if (readFile()) {
System.out.println("read files successfully!");
} else {
       System.out.println("read files fails!");
}
System.out.println("-----------------------");
System.out.println("----- view File -------");
if (desktopOpenFile()) {
    System.out.println("view file successfully!");
} else {
System.out.println("view file fails!");
}
} else {
     System.out.println("open file fails!");
}
        } catch (Exception e) {
// TODO: handle exception
        }

}


Langkah 8 : 
Source code untuk method main : 

public static void main(String[] args) {
FileExample fileExample = new FileExample();
fileExample.test2();

}

Langkah 9 : 
Jalankan program, hasilnya seperti ini : 




Monday, March 18, 2013

Contoh Pembangunan Aplikasi dengan Menggunakan Hibernate : Bag 2

pada post kali ini, kita akan melanjutkan studi kasus sebelumnya, bisa dilihat di disini  tentang  .

struktur program yang kita buat akan seperti ini, saya tambahkan package control yang nantinya berisi fungsi-fungsi yang digunakan unuk operasi ataupun control ketika kita melakukan porses CRUD.


















selanjutnya, kita tambahkan kelas Hibernates didalam paket utils, beriktu potongan programnya :




==============================================================


package adicodes.hibernatesexample.utils;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


public class Hibernates {
     
    protected static final SessionFactory sessionFactory;
    private Session session;
    // Configuration configuration = new Configuration();

    static {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            sessionFactory = new Configuration().configure().buildSessionFactory();
            
        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
    
    public void create(Object obj) {
        try {
            session = sessionFactory.openSession();
            session.getTransaction().begin();
            session.save(obj);
            session.getTransaction().commit();
        } catch (Exception e) {
           
            System.out.println("error : " + e.getMessage());
        } finally {
            session.close();
        }
    }
    
    public void refresh(Object obj) {
        try {
            session = sessionFactory.openSession();
            Object newObject = session.merge(obj);
            session.getTransaction().begin();
            session.refresh(newObject);
            session.getTransaction().commit();
        } catch (Exception e) {
           
            System.out.println("error : " + e.getMessage());
        } finally {
            session.close();
        }
        
        
    }
    
    public void update(Object obj) {
        try {
            session = sessionFactory.openSession();
            Object newObject = session.merge(obj);
            session.getTransaction().begin();
            session.saveOrUpdate(newObject);
            session.getTransaction().commit();
            
        } catch (Exception e) {
        
            System.out.println("error : " + e.getMessage());
        } finally {
            session.close();
        }
    }
    
    public void delete(Object obj) {
        
        try {
           
            session = sessionFactory.openSession();
            Object newObject = session.merge(obj);
            session.getTransaction().begin();
            session.delete(newObject);
            session.flush();
            session.getTransaction().commit();
        } catch (Exception e) {
           
            System.out.println("error : delete --> " + e.getMessage());
        } finally {
            session.close();
        }
        
    }

}

============================================================

berikutnya, kita buat sebuah frame yang akan kita gunakan dalam proses CRUD. frame tersebut kita buat pada paket gui. 

1. klik kanan pada paket gui --> new --> JFrame Form












2. berikan nama untuk frame tersebut MainFrame







3. pada frame tersebut, buat tampilan seperti ini. 






















berikut tampilan yang telah dibuat. 

Jadi, sekarang kita telah memiliki kelas Hibernates dan MainFrame.
bersambung disini

Friday, February 15, 2013

Membuat Privileges database di MySQL

Berikut langakh-langlah membuat privileges database di MySQL.


  • Pilih database yang akan ditambahkan privilegas :

























  • kemudian pilih menu privileges dan add new user :






















  •  akan tampil seperti dibawah ini, berikan user name, host dan password serta untuk Global privileges --> Check All


























  • Pilih "go"


Database "db_mahasiswa" telah berhasil kita berikan privileges. selamat mencoba.

Export database MySQL menggunakan Java

Berikut ini code untuk export database MySQL dengan menggunakan java.


 public static void backup(String db, String user, String pass, String path) {
        try {
          
            String executeCmd;

            executeCmd = "mysqldump -u " + user + " -p" + pass + " " + db + " -r " + path + "";

           
            Process runtimeProcess = Runtime.getRuntime().exec(executeCmd);
            int processComplete = runtimeProcess.waitFor();
            if (processComplete == 0) {

             
                JOptionPane.showMessageDialog(null, "Export berhasil");
            } else {
               
                JOptionPane.showMessageDialog(null, "Export gagal");

            }
        } catch (InterruptedException | IOException ex) {
            SplashLauncher.logger.log(Level.SEVERE,null, ex.getMessage());
        }
    }

cara pemanggilan method nya seperti ini, asumsi method yg kita buat ada di class Backup :


String path = "dump" + new SimpleDateFormat("dd-mm-yyyy").format(new Date()) + ".sql";
        
        Backup.backup("db_mahasiswa","adicodes", "1234", path);


ket : 

  • berikan privilages pada database. misalnya disini pada db_mahasiswa dengan nama user "adicodes" dan password "1234". lihat disini 
  • copy kan \xampp\mysql\bin\mysqldump.exe ke system32

file export yang dihasilkan :











Selamat mencoba.

Java : Swing Worker Example

Dari post sebelumnya, saya telah membahas secara singkat mengenai swing worker. Unutk post kali ini saya akan memberikan contoh sederhana implementasi dari swing worker.

Pertama kita buat GUI seperti dibawah ini. Nama frame nya yaitu SwingWorkerFrameExample  berikan nama variable untuk text area dengan nama textArea dan variable untuk button start yaitu start serta untuk button stop yaitu stop.





















Untuk memudahkan kita dalam melakukan pemanggilan objek dari frame diatas, kita tambahkan method seperti dibawah ini, caranya kita masuk ke source dari frame dan tuliskan code dibawah ini.


 private static SwingWorkerFrameExample swingWorkerFrameExample;
    
    public static SwingWorkerFrameExample getInstance(){
        if(swingWorkerFrameExample==null){
            swingWorkerFrameExample= new SwingWorkerFrameExample();
        }
        return swingWorkerFrameExample;
    }

    public JTextArea getTextArea() {
        return textArea;
 }
 

Selanjutna kita buat kelas, contoh kelasnya yaitu SwingWorkerExample yang mengextends ke kelas SwingWorker. codenya seperti dibawah ini.



import javax.swing.SwingWorker;

/**
 *
 * @author adi nuralim adinuralim@gmail.com
 * @since 20-Jan-2013
 */
public class SwingWorkerExample extends SwingWorker<Void, Void> {

    public static SwingWorkerExample swingWorkerExample;
    
    public static SwingWorkerExample getInstance(){
        if(swingWorkerExample==null){
            swingWorkerExample= new SwingWorkerExample();
        }
        return swingWorkerExample;
    }
    @Override
    protected Void doInBackground() throws Exception {
        //masukan statement.....
        
        while(true){
            //menampilkan string ke texarea dari frame
            SwingWorkerFrameExample.getInstance().getTextArea().append("adicodes.blogspot.com\n");
Thread.sleep(1000);
        }
    }

}



Jika kita telah membuat kelas tersebut, kelas itu akan melakukan overaide method doInBackground dari kelas SwingWorker. dimethod tersebut kita masukan statement yang akan dieksekusi dengan background thread. Untuk kasus sekarang, statement yang saya buat yaitu menampilkan "http://adicodes.blogspot.com/". artinya ketikan program dijalankan, maka akan tampil kelayar "http://adicodes.blogspot.com/"  terus menerus.

Kemudian kita berikan sebuah aksi untuk button start. button start ini berfungsi untuk menjalankan background  thread yang telah kita buat.

code programnya seperti dibawah ini.


private void startActionPerformed(java.awt.event.ActionEvent evt) {
//mengecek thread di cancel atau tidak
        if (SwingWorkerExample.getInstance().isCancelled()) {
       
            //isCanceled
            SwingWorkerExample swe = new SwingWorkerExample();
            SwingWorkerExample.swingWorkerExample=swe;
            swe.execute();
        } else {
            //false
            SwingWorkerExample.getInstance().execute();
        }
}


Setelah kita memberikan aksi untuk button start, sekarang kita berikan aksi juga untuk button stop. fungsinya untuk menghentikan background thread.


private void stopActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
   
            SwingWorkerExample.getInstance().cancel(true);
        
    }

Oke, sekarang kita coba running, maka hasilnya akan seperti berikut ini :




















  • struktur filenya :










Selamat mencoba, semoga bermanfaat.

Aplikasi Web Crawler Untuk Pengarsipan Konten Web

Berikut ini printscreen tampilan dari aplikasi web crawler : Gambar 1 Splashscreen Gambar 2  Halaman Utama Gambar 3  Pengat...