Minggu, 03 Oktober 2010

Menulis Program Aplikasi Java Sederhana (Bagian 3 - Akhir)

Pada tulisan sebelumnya, kita telah menyelesaikan sampai pada tahap 7.2 (lihat roadmap aplikasi), sekarang kita akan menyelesaikan keseluruhan tahap dari aplikasi (baca : Membuat Aplikasi Program Java Sederhana (Bagian 1).

Mari kita mulai ...

Langkah #10 : Membangun View Daftar Pegawai
13. Ubah dan tambahkan code pada class [Menu] agar ketika user memilih 'pilihan 2.Daftar Data Pegawai' maka user akan diarahkan ke menu daftar data pegawai.


private void showMenu(User user, int option) {
  switch(option) {
   case 1 :  showMenuEntryData(); break;
   case 2 : showMenuListData(); break; 
  }
 }
 
 private void showMenuListData() {
  ListData listData = new ListData();
  listData.showData();
 }

14. Buat class [ListData] di package[greenhornsjava.view]
package greenhornsjava.view;

import java.text.SimpleDateFormat;
import java.util.Scanner;
import greenhornsjava.db.InMemoryEmployeeDb;
import greenhornsjava.model.Employee;
import greenhornsjava.util.FileUtil;

public class ListData {
 private final String FILE_DIR = "C:/greenhornsjava/";  
 public void showData() {
  InMemoryEmployeeDb employeeTable = InMemoryEmployeeDb.getInstance();
  if(employeeTable.size() == 0) 
   System.out.println("Tidak Ada Pegawai!");
  else ListAllDataEmployee(employeeTable);
 }
 
 private void ListAllDataEmployee(InMemoryEmployeeDb employeeTable) {
  System.out.println("=======================================");
  for (Employee employee : employeeTable) {
   System.out.println("Nama : " + employee.getNama());
   System.out.println("Alamat : " + employee.getAlamat());
   System.out.printf("Tempat,Tanggal Lahir : %s, %s \n", 
         employee.getTempatLahir(), 
         new SimpleDateFormat("dd/MM/yyyy").format(employee.getTglLahir()));
   System.out.printf("User, Tgl Input: %s, %s \n", 
         employee.getCreatedBy(), 
         new SimpleDateFormat("dd/MM/yyyy").format(employee.getCreatedOn()));
   System.out.println("=======================================");
  }
  
  String reply = null;
  System.out.print("Simpan ke text[Y/N]?");
  reply = new Scanner(System.in).next();
  
  if(reply.equalsIgnoreCase("y")) {
   String fileName = new SimpleDateFormat("yyyyMMdd").
         format(System.currentTimeMillis()) + "_greenhornsjava.txt"; 
   FileUtil.persistArrayToFile(employeeTable, FILE_DIR + fileName);
  }
 }
}

15.Buat class [FileUtil] di package[greenhornsjava.util]
package greenhornsjava.util;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import greenhornsjava.model.Employee;

public class FileUtil {
 public static void persistArrayToFile(List<Employee> list, String fileName) { 
  FileWriter fstream = null;
  BufferedWriter out = null;
  File file = null;
  String COMMA_SEPARATOR = ",";
  
  try{
   file = new File(fileName);
   fstream = new FileWriter(file);    
   out = new BufferedWriter(fstream);
      
   for (int i=0;i<list.size();i++) {
    Employee employee = list.get(i);
    StringBuffer sb = new StringBuffer();
    sb.append(employee.getNama()).append(COMMA_SEPARATOR)
      .append(employee.getAlamat()).append(COMMA_SEPARATOR)
      .append(employee.getTempatLahir()).append(COMMA_SEPARATOR)
      .append(employee.getTglLahir()).append(COMMA_SEPARATOR)
      .append(employee.getCreatedBy()).append(COMMA_SEPARATOR)
      .append(employee.getCreatedOn());
    
    if( i < (list.size() - 1)) sb.append("\n");
    out.write(sb.toString()); 
   }
  }catch (Exception e){
      System.err.println("Error: " + e.getMessage());
  }finally {
   try {
    out.close();
   } catch (IOException e) {
    System.err.println("Error: " + e.getMessage());
   }
  }
 }
}


Sebelum melanjutkan, mari kita lihat sejenak struktur aplikasi kita sejenak. Pastikan struktur aplikasi anda sama sebelum melanjutkan.


Pada Tutorial Bagian 1 terdapat class [DisplayManager] yang direncanakan sebagai bagian dari Logic pada saat penampilan data yang tidak dibuat, akan tetapi digantikan dengan class [FileUtil] yang dirasakan lebih tepat dibandingkan dengan class [DisplayManager] yang telah direncanakan sebelumnya.
Dalam dunia Software development, perubahan rencana adalah hal yang wajar terjadi. Software yang dikembangkan oleh programmer harus dapat segera beradaptasi dengan perubahan yang ada.

Baiklah Kita telah menyelesaikan tahap akhir dari keseluruhan tahap dari aplikasi. Sekarang tiba saatnya kita menjalankan program yang telah kita tulis. Berikut adalah cuplikan gambar aplikasi.


Pada direktori yang telah ditentukan sebelumnya akan terbentuk sebuah file seperti pada gambar di bawah ini.




Berikut contoh isi dari file text yang digenerate oleh aplikasi :

Toni,Pacung-Bali,Palembang,Thu Aug 19 00:00:00 SGT 1982,admin,Sun Oct 03 22:53:45 SGT 2010
Haris,Dago-Bandung,Medan,Tue Oct 01 00:00:00 SGT 1985,admin,Sun Oct 03 22:54:12 SGT 2010
Frenti,Pacung-Bali,Bandung,Mon Nov 12 00:00:00 SGT 1984,admin,Sun Oct 03 22:54:37 SGT 2010


Sekian lengkap sudah seri "Menulis Program Aplikasi Java Sederhana". Semoga dapat membantu rekan-rekan dalam memahami Java programming secara lebih cepat dengan cara langsung membuat program. 
Jika terdapat saran, kritik atau pertanyaan silahkan tinggalkan pesan atau email. Saya akan mencoba untuk menanggapi secepat mungkin. Terima kasih.

2 komentar:

  1. bang, untuk munculin source code kaya gitu gimana caranya???

    poetra25.blogspot.com

    BalasHapus
  2. silahkan pelajari caranya di http://code.google.com/p/syntaxhighlighter/

    BalasHapus