10 June 2008

Membuat Menu Console Generator untuk aplikasi JAVA Console

Menu console pada Java, biasanya sering kali digunakan untuk untuk membuat aplikasi Java yang berjalan diatas console. Menu ini dipakai untuk menjalankan suatu bagian dari aplikasi yang kita buat, seperti menu baca data (Read Data), menu tulis data (Write Data), menu keluar aplikasi (Exit Application/Program) dan menu yang lain sesuai fungsi dengan aplikasi Java yang kita buat.

Jika kita sering membuat aplikasi console, dan aplikasi tersebut mempunyai banyak kegunaan, maka kita pasti menggunakan menu untuk memilih penggunaan fungsi aplikasi tersebut. Jika kita sering membuat aplikasi console, alangkah baiknya jika kita punya satu kelas yang bisa secara otomatis meng-generate menu, sehingga kita tidak perlu membuat menu lagi pada setiap aplikasi console yang kita buat. Kita tinggal pakai/import saja kelas itu dan pakai method-nya.

Kali ini kita akan mencoba membuat Menu Console Generator untuk mewujudkan ide diatas. Skenario dari Menu Console Generator ini adalah :

  1. Menu Console Generator ini akan mencetak pada layar console, menu-menu apa saja yang ingin kita tampilkan. Itu artinya kita akan membutuhkan parameter pada method utama dari Menu Console Generator ini. Karena menu yang ingin ditampilkan bisa lebih dari satu, maka kita harus buat parameternya ini berupa Array, boleh Array of String, boleh juga Array of Object. Kita tentukan saja sekarang bahwa parameter pertama untuk Menu Console Generator ini adalah Array of String saja. Tapi jika ingin membuat Array of Object pun silahkan, semua terserah anda.

  2. Saat menu console tampil maka user akan memilih salah satu menu tersebut dengan mengetikkan kode menu, dari sini kita bisa ambil kesimpulan, method utama Menu Console Generator ini harus mengembalikan suatu nilai (return) yang berupa String, untuk kemudian nilai kembaliannya itu bisa diproses pada aplikasi selanjutnya. Jika anda ingin membuat nilai kembaliannya berupa Integer, silahkan saja, bebas, tidak ada larangan. Kita menjadikan String sebagai nilai kembalian dari method ini karena menu console kan bisa saja tidak berupa angka, tapi bisa juga berupa karakter huruf dan lain-lain.

  3. Ketika user mengetikkan kode menu, Menu Console Generator kita ini akan membacanya sebagai sebuah InputStream dan memasukkannya ke dalam sebuah variabel dan kemudian variabelnya itu yang akan menjadi nilai kembalian.

Berdasarkan skenario tsb kita bisa langsung membuat kelas Menu Console Generator ini. Dibawah ini adalah file MenuConsoleGenerator dengan syntax-syntax di dalamnya :


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class MenuConsoleGenerator {
public static String menuConsoleGenerator(String[] menuTemp){
String sMenu ="";
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Menu ");
for (int i = 0; i < menuTemp.length; i++) {
String s = menuTemp[i];
System.out.println(s);
}

System.out.print("Type Code Of Menu : ");
try {
sMenu = in.readLine();
} catch (IOException e) {
System.out.println("Error : " + e);
}
return sMenu;
}
}

Kita akan bahas satu demi satu Code diatas.


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

Baris ini adalah code dimana kita meng-import package standar java.io.* yang nantinya akan kita butuhkan, yaitu BufferedReader, InputStreamReader dan IOException.


public class MenuConsoleGenerator {
......
}

Ini adalah kelas utama dari Menu Console Generator yang akan kita buat. Ingat : jika kita membuat kelas seperi diatas, maka nama file java-nya harus sama dengan nama kelas yang kita buat yaitu MenuConsoleGenerator.java. Dan nantinya didalamnya akan diisi oleh syntax-syntax selanjutnya.

Selanjutnya kita akan membuat satu method statis yang menjadi inti dari kelas ini. Yaitu:

public static String menuConsoleGenerator(String[] menuTemp){
......
}

Di sini kita dapat melihat bahwa method statis ini mengembalikan nilai String : public static String sebagai return value-nya dan membutuhkan String Array sebagai parameternya : (String[] menuTemp).


String sMenu ="";
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println(" Menu ");

Pada baris ini kita menginisialisasi sebuah variabel bernama sMenu dan mengisinya dengan string empty ("") untuk menghindari Exception JavaNullPointer variabel sMenu ini. Kemudian kita menginisialisasi object BufferedReader menjadi sebuah variabel bernama in. Lalu variabel in ini harus kita jadikan sebuah objeck baru dengan cara memanggil konstruktornya dengan perintah new, dan konstruktor BufferedReader ini juga mempunyai parameter yang berupa object Reader, langsung saja parameter ini kita isi dengan object baru berupa InputStreamReader yang juga punya parameter berupa InputStream. Dimana InputStream kita langsung masukkan saja dengan Input-an dari system dengan memasukan System.in sebagai isian parameternya. Kemudian baris selanjutnya kita mencetak ke layar console string “Menu” dengan menuliskan syntax System.out.println(“menu”);

Selanjutnya kita akan mencetak ke layar console menu-menu yang berasal dari parameter String Array dengan cara me-looping satu demi satu array tsb untuk kemudian menggunakan System.out.println, sebagai methode pencetakannya ke layar console. Berikut syntax-nya:



for (int i = 0; i < menuTemp.length; i++) {
String s = menuTemp[i];
System.out.println(s);
}

Setelah itu kita meminta user untuk mengetikan kode menu dengan menuliskan di layar konsole System.out.println(“Type Code Of Menu”); kemudian kita akan menangkap inputan dari user, dan memasukkannya kedalam variable String sMenu yang sebelumnya sudah kita inisialisai dengan tidak lupa menempatkannnya ke dalam blok try-catch yang memungkinkan program untuk mencegah user tidak salah mengetikkan kode, seperti syntax berikut:


try {
sMenu = in.readLine();
}catch (IOException e) {
System.out.println("Error : " + e);
}


Kemudian yang terakhir adalah kita membuat statement kembalian dari fungsi menuConsoleGenerator yang baru saja kita buat dengan syntax:
return sMenu;

Sampai disini kita telah selesai membuat method statis dalam kelas MenuConsoleGenerator yang bernama menuConsoleGenerator.

Nah sekarang kita tinggal mencoba kelas ini. Terserah bagaimana cara anda mencoba kelas ini. Tapi disini kita akan mencobanya dengan cara membuat aplikasi sederhana yang method utamanya memanggil kelas ini untuk kemudian memakai method menuConsoleGenerator sebagai percobaan dalam mengetes Menu Console Generator yang baru saja kita buat. Dibawah ini source code lengkap contoh aplikasi yang memanggil kelas MenuConsoleGenerator dan menggunakan method statis menuConsoleGenerator yang kita buat tadi


public class GunakanMenu {

private static String showMenu() {
String[] tempMenu = {"1. read", "2. write", "3. EXIT"};
String sResult = "";
sResult = MenuConsoleGenerator.menuConsoleGenerator(tempMenu);
return sResult;
}

public static void main(String[] args) {
String comand = "";
do {
comand = showMenu();
if (comand.equals("1")) {
System.out.println("Anda Ketik SATU / Bisa letakkan Method untuk di proses disini");
} else if (comand.equals("2")) {
System.out.println("Anda Ketik DUA / Bisa letakkan Method untuk di proses disini ");
}
} while (!comand.equals("3"));

{
System.out.println("Anda Ingin Keluar");
}
}
}


Terima Kasih
Semoga Bermanfaat

Josescalia

No comments: