Java Basic - Bagaimana Cara Membalikan Kata di Java

Ada 2 metode yang sangat simple untuk membalikkan kata/String, yaitu :
  • Menggunakan method reverse pada kelas StringBuffer
  • Menggunakan method charAt(int i) pada kelas String

Menggunakan StringBuffer

Kelas StringBuffer menyediakan method reverse untuk membalikkan suatu String / kata.
Contoh :

package com.nursalim.javabae.string;
public class ReverseString1
{
   public static void main(String args[])
   {
      StringBuffer buff = new StringBuffer("Selamat Datang");
      System.out.println(buff.reverse());
   }
}

Menggunakan charAt(int i)

Contoh :

package com.nursalim.javabae.string;
 
import java.util.*;
 
public class ReverseString2{
 
public static void main(String args[])
 {
 String kata, dibalik = "";
 Scanner in = new Scanner(System.in);
 System.out.println("Masukkan kata");
 kata= in.nextLine();
 
 for ( int i = kata.length()-1 ; i >= 0 ; i-- )
 dibalik = dibalik + kata.charAt(i);
 
 System.out.println("Kata dibalik : -> "+dibalik );
 }
 
}

Sekian tutorial singkat Bagaimana Cara Membalikkan Kata di Java. Semoga bermanfaat

Java Basic - Looping (Perulangan) di Java

Looping / Perulangan adalah salah satu kegiatan yang sering dilakukan oleh programmer sehari-hari untuk melakukan perulangan terhadap statement program. Misalkan, untuk menampilkan gaji tiap-tiap pegawai pada Sistem Payroll (penggajian).

Ada beberapa jenis Looping, di Java yaitu :
  • For Looping
  • While Looping
  • Do While

For Looping

Sintak dasar :

   for (inisialisasi ekspresi; kondisi loop; ekspresi penambahan){
       // pernyataan
   }

Contoh :

  public class ForLoopDemo{
      public static void main(String[] args){
         // program mencetak bilangan 1 - 10;
         for (int i = 1; i <=10; i++){
            System.out.println("Bilangan : "+i);
         } 
      }
  }

While Looping

Sintak dasar :

   while(ekspresi){
        //statement
   }

Contoh :

public class WhileLoopDemo{
   public static void main(String[] args){
      int i = 0;
      while(i < 10){
         System.out.println("Bilangan : "+i);
         i++;
      }
   }
}

Do While Looping

Sintak dasar :

   do{
     //statement
   }while(ekspresi)


Contoh :

public class DoWhileLoopDemo{
   public static void main(String[] args){
      int i = 0;
      do{
         System.out.println("Bilangan "+i);
         i++;
      }while(i < 10);  
   }
}


Sekian tutorial singkat tentang Looping di Java. Semoga bermanfaat.

Oracle Administration - Menggunakan FLASHBACK TABLE untuk Mengembalikan Data yang Terhapus

Apabila kita tidak sengaja menghapus data di table pada database Oracle menggunakan perintah "DELETE FROM nama_table" itu tandanya anda akan kena marah oleh DBA ataupun Project Manager.

Terus bagaimana dong solusinya agar yang data yang terhapus bisa di kembalikan / recovery? Caranya mudah, yaitu menggunakan FLASHBACK TABLE.

Sebelum menggunakan FLASHBACK TABLE, Anda harus mengaktifkan terlebih dahulu ROW MOVEMENT-nya, karena kalau tidak di aktifkan akan muncul error "ORA-08189: cannot flashback the table because row movement is not enabled"

Untuk mengaktifkan ROW MOVENT, gunakan perintah dibawah ini:

    ALTER TABLE nama_tabel ENABLE ROW MOVEMENT;


Seteleh ROW MOVEMENT-nya diaktifkan, langkah selanjutnya adalah menjalankan perintah DBMS FLASHBACK.

     EXECUTE DBMS_FLASHBACK.ENABLE_AT_TIME(TO_TIMESTAMP('17-10-2014 06:00', 'DD-MM-YYYY HH:MI'));

Langkah selanjutnya adalah, Anda tinggal meng-query table yang terhapus seperti biasa menggunakan " SELECT " statement, setelah itu export ke file untuk backup dan insert ulang ke table yang datanya telah terhapus.

Setelah datanya kembali, langkah selanjutnya adalah men-disable kembali DBMS FLASHBACK seperti semula, menggunakan perintah:

      EXECUTE DBMS_FLASHBACK.DISABLE;


Sekian tutorial tentang Menggunakan Flash Back Table di Oracle, semoga bermanfaat.

Log4J - Cara Mudah Menggunakan Log4J

Download Log4J

Download file jar log4j versi 1.2 nya di official website di http://logging.apache.org/log4j/1.2/. Tambahkan file jar tersebut pada Eclipse Build Path.

Baca Juga : Menambahkan File Jar/External JAR di Eclipse Build Path.

Setting Project

Buatlah project baru di eclipse, seperti gambar di bawah ini.

log4j.properties

Buatlah file log4j.properties seperti di bawah ini, dan tempatkan file tersebut di bawah folder src seperti di atas.

Nama File : log4j.properties

# Root logger option
log4j.rootLogger=DEBUG, stdout, file
 
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
 
# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\application.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Contoh Program

Untuk menampilkan log di dalam program, kita harus mendefiniskan kelas logger pertama kali seperti di bawah ini.

	final static Logger logger = Logger.getLogger(namakelas.class);

Sedangkan cara menggunakannya, simple saja seperti dibawah ini.


        //menampilkan log debug message
	if(logger.isDebugEnabled()){
	    logger.debug("Ini adalah contoh debug message");
	}
 
	//menampilkan log error message dengan paramaeter
	logger.error("ini adalah log error : " + parameter);
 
	//menampikan info message
        logger.info("Ini contoh menggunakan info message");


Contoh lengkapnya, dapat di lihat seperti dibawah ini:

Nama File : Log4JDemo.java

public class Log4JDemo{
        final static Logger logger = Logger.getLogger(Log4JDemo.class);
 
	private void tampilkanLog(String param){
 
		if(logger.isDebugEnabled()){
			logger.debug("Ini adalah debug message : " + param);
		}
 
		if(logger.isInfoEnabled()){
			logger.info("Ini adalah info message : " + param);
		}

                logger.fatal("Ini adalah fatal message : " + param);
		logger.warn("Ini adalah warn message : " + param);
		logger.error("Ini adalah error message : " + param);
 
	}
	
	public static void main(String[] args) {
 
		Log4JDemo obj = new Log4JDemo();
		obj.tampilkanLog("Contoh Log4J");
 
	}
}


Output :

2014-07-02 20:52:39 DEBUG Log4JDemo:19 - Ini adalah debug message : Contoh Log4J
2014-07-02 20:52:39 INFO  Log4JDemo:23 - Ini adalah info message : Contoh Log4J
2014-07-02 20:52:39 WARN  Log4JDemo:26 - Ini adalah fatal message : Contoh Log4J
2014-07-02 20:52:39 ERROR Log4JDemo:27 - Ini adalah warn message : Contoh Log4J
2014-07-02 20:52:39 FATAL Log4JDemo:28 - Ini adalah error message : Contoh Log4J


Sekian Tutorial dasar penggunakan Log4J kali ini, semoga bermanfaat.

Quartz Scheduler - Menampilkan Seluruh Job Pada Quartz Scheduler

Quartz Scheduler adalah salah satu Framework Java yang digunakan menangani aplikasi penjadwalan job/scheduler. Dengan framework ini, kita dapat menjalankan job sesuai dengan waktu yang kita inginkan.

Satu lagi yang sangat penting, Quartz Scheduler dapat diintegrasikan dengan Java framework lainnya, seperti Struts, Spring, JSF, dan lain lain.

Dibawah ini adalah contoh program Java untuk menampilkan Job menggunakan Quart Scheduler. Ada beberapa perbedaan yang sangat mencolok pada versi Quartz 2.1.5 dan Quartz 1.8.6. Untuk lebih jelasnya, bisa dilihat pada contoh dibawah ini:

Quartz 2.1.5

Nama File : GetLitJobDemo.java

public class GetListJobDemo{
   public static void main(String[] args){
      Scheduler scheduler = new StdSchedulerFactory().getScheduler();
 
      for (String groupName : scheduler.getJobGroupNames()) {
 
          for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) {
 
	     String jobName = jobKey.getName();
	     String jobGroup = jobKey.getGroup();
 
	     //mendapatkan list trigger job
 	     List triggers = (List) scheduler.getTriggersOfJob(jobKey);
	     Date nextFireTime = triggers.get(0).getNextFireTime(); 
 
	     System.out.println("[Nama Job] : " + jobName + " [Nama Group] : "
			+ jobGroup + " - " + nextFireTime);
 
	  }
 
     }
  }
}

Quartz 1.8.6

Nama File : GetListJobDemo2.java

public class GetListJobDemo2{
  public static void main(String[] args){
    Scheduler myScheduler = new StdSchedulerFactory().getScheduler();
 
    //loop all group
    for (String groupName : myScheduler.getJobGroupNames()) {
 
	//loop all jobs by groupname
	for (String jobName : myScheduler.getJobNames(groupName)) {
 
          //mendapatkan trigger
	  Trigger[] triggers = myScheduler.getTriggersOfJob(jobName,groupName);
	  Date nextFireTime = triggers[0].getNextFireTime();
 
	  System.out.println("[Nama Job] : " + jobName + " [Nama Group] : "
			+ groupName + " - " + nextFireTime);
 
	}
 
    }
  }
}

Sekian tutorial mengenai Mendapatkan Seluruh Job Pada Quart Scheduler. Semoga bermanfaat.

Java IO - Write File Menggunakan BufferedWriter

BufferedWriter adalah salah satu kelas Character Stream yang digunakan untuk menulis file di Java.

Dibawah ini adalah contoh program Java untuk menulis file menggunakan BufferedWriter,

File Name : BufferedWriterDemo.java

package com.nursalim.javabae.io;
 
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
 
public class BufferedWriterDemo {
 public static void main(String[] args) {
  try {
 
   String content = "Disini aku akan menunggumu";
   String content2 = "Untuk selamanya";
   File file = new File("C:\test\nursalim.txt");
 
   // if file doesnt exists, then create it
   if (!file.exists()) {
    file.createNewFile();
   }
 
   FileWriter fw = new FileWriter(file.getAbsoluteFile());
   BufferedWriter bw = new BufferedWriter(fw);
   bw.write(content);
   bw.newLine();
   bw.write(content2);
   bw.close();
 
   System.out.println("Selesai menulis file");
 
  } catch (IOException ex) {
   e.printStackTrace();
  }
 }
}

Baca juga Membaca File Menggunakan BufferedWriter.

Sekian tutorial kali ini, semoga bermanfaat

Hibernate - Contoh Program Hibernate + Oracle 11g Menggunakan XML Mapping

Pada tutorial kali ini, saya akan memperlihatkan bagaimana cara mengintegrasikan hibernate 3.6 dengan Oracle 11g disertai contohnya.

Tools yang digunakan yaitu:
  • Hibernate 3.6
  • Oracle 11g

1. Create Table MAHASISWA

Buatlah table Mahasiswa di Oracle 11g seperti dibawah ini
File : table_mahasiswa.sql

CREATE TABLE MAHASISWA ( 
  NPM       VARCHAR2 (10)  NOT NULL, 
  NAMA      VARCHAR2 (50)  NOT NULL,
  GENDER    CHAR (1)       NOT NULL,  
  FAKULTAS  VARCHAR2 (20)  NOT NULL, 
  JURUSAN   VARCHAR2 (20)  NOT NULL, 
  PRIMARY KEY ( NPM ) 
)

2. Create Kelas Mahasiswa (Model)

Buatlah kelas Mahasiswa seperti dibawah ini:
File: Mahasiswa.java

package com.nursalim.javabae.hibernate.model; 

public class Mahasiswa implements java.io.Serializable {
 
 private String npm;
 private String nama;
 private String gender;
 private String fakultas;
 private String jurusan;
 
 public Mahasiswa() {
 }
 
 public Mahasiswa(String npm, String nama, String gender) {
  this.npm = npm;
  this.nama = nama;
  this.gender = gender;
 }
 
 public String getNpm() {
  return this.npm;
 }
 
 public void setNpm(String npm) {
  this.npm = npm;
 }
 
 public String getNama() {
  return this.nama;
 }
 
 public void setNama(String nama) {
  this.nama = nama;
 }
 
 public String getGender() {
  return this.gender;
 }
 
 public void setGender(String gender) {
  this.gender = gender;
 }
 
 public String getFakultas() {
  return this.fakultas;
 }
 
 public void setFakultas(String fakultas) {
  this.fakultas = fakultas;
 }
 
 public String getFakultas() {
  return this.fakultas;
 }
 
 public void setFakultas(String fakultas) {
  this.fakultas = fakultas;
 }
 
 public String getJurusan() {
  return this.jurusan;
 }
 
 public void setJurusan(String jurusan) {
  this.jurusan = jurusan;
 }
 
}

3. Create Hibernate XML Mapping (Mahasiswa.hbm.xml)

Buatlah file Mahasiswa.hbm.xml, seperti dibawah ini:
Hibernate + oracle 11g Menggunakan XML Mapping
File Mahasiswa.hbm.xml

4. Create Hibernate Configuration File (hibernate.cfg.xml)

Buatlah file hibernate.cfg.xml, seperti dibawah ini
Hibernate Configuration File
File hibernate.cfg.xml


5. Create Hibernate Util Class untuk proses manajemen session

Buatlah kelas HibernateUtil untuk menghandle proses manajemen Session seperti dibawah ini:
File : HibernateUtil.java

package com.nursalim.javabae.hibernate.util;
 
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
 
public class HibernateUtil {
 
 private static final SessionFactory sessionFactory = buildSessionFactory();
 
 private static SessionFactory buildSessionFactory() {
  try {
   // Create the SessionFactory from hibernate.cfg.xml
   return 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 static SessionFactory getSessionFactory() {
  return sessionFactory;
 }
 
 public static void shutdown() {
  // Close caches and connection pools
  getSessionFactory().close();
 }
 
}

6. Final Project Structure


7. Create Test Class

Buatlah kelas HibernateTestDemo untuk memasukkan data ke table Mahasiswa seperti dibawah ini:
File : HibernateTestDemo.java


package com.nursalim.javabae.hibernate;
 
import java.util.Date;
import org.hibernate.Session;
import com.nursalim.javabae.hibernate.HibernateUtil;
import com.nursalim.javabae.hibernate.model.Mahasiswa;
 
public class HibernateTestDemo {
 public static void main(String[] args) {
  Session session = HibernateUtil.getSessionFactory().openSession();
 
  session.beginTransaction();
  Mahasiswa parman = new Mahasiswa();
 
  parman.setNpm("20144098989");
  parman.setNama("Suparman");
  parman.setGender("L");
  parman.setFakultas("Teknik");
  parman.setJurusan("Teknik Informatika");
 
  session.save(parman);
  session.getTransaction().commit();
 }
}
8. Download File Pendukung + Source Code