SPERS MABES TNI DAN UNKRISNA ADALAH PERGURUAN TINGGI YANG BEKERJASAMA DENGAN MABES TNI

SPER MABES TNI DAN UNKRISNA ADALAH PERGURUAN TINGGI YANG BEKERJA SAMA DENGAN MABES TNI

Jumat, 28 Januari 2011

Membuat program perpustakaan sederhana dengan JAVA console

Membuat program perpustakaan sederhana dengan JAVA console

Requirment program:
Program perpustakaan sederhana berbasis text (bukan GUI) dengan menggunakan input data dari keyboard
1.Perpustakaan ini memiliki 10 koleksi buku. 10 buku tadi terdiri dari 3 kamus, 3 majalah dan 4 textbook (silakan ditentukan sendiri judulnya)
2.Peraturan peminjaman buku adalah:


  • Biaya peminjaman untuk 1 minggu adalah: kamus Rp 3000, majalah Rp 1000, textbook 2000





  • Denda terlambat pengembalian adalah Rp 500 perhari




  • 3.Program perpustakaan sederhana ini memiliki fitur untuk menampilkan buku dan fitur sirkulasi peminjaman buku termasuk dendanya dengan berbasis text

    Program terdiri dari 2 buah file, yaitu 
    Buku.java dan mainPerpustakaan.java.
    Buku.java berisi definisi objek dari buku, sekaligus menu dan proses pminjaman buku.
    mainPerpustakaan.java berisi program induk sebagai trigger dari Buku.java.
    Berikut penjelasan bagian-bagian dari kedua file tersebut.1.Buku.java
    package perpustakaan;
    import java.util.Scanner;
    import java.util.Date;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;

    class Buku{
    /**
    * @param args the command line arguments
    */
    String userName;
    String userId;
    String[] subject={“KAMUS BAHASA INGGRIS”,”KAMUS BAHASA JEPANG”,”KAMUS BAHASA JERMAN”,”MAJALAH KESEHATAN”,”MAJALAH KOMPUTER”,”MAJALAH FASHION”,”TUTORIAL JAVA BEGINNER”,”TUTORIAL JAVA INTERMEDIATE”,”TUTORIAL JAVA ADVANCED”,”TUTORIAL JAVA STRUTS”};
    String[] option={“”,”"};
    int prDenda=7;
    double fee=0;
    Keyword import digunakan untuk menambahkan function fasilitas yang sudah ada di API java. Penambahan keyword ini dilakukan saat develop code program berjalan dan sesuai dengan kebutuhan.
    Deklarasi variable userName, userID digunakan untuk menampung data user. Variable array subject digunakan untuk inisialisasi item menu buku. Inisialisasi dilakukan diawal program agar pengetikan coding tidak berulang, karena akan sangat membosankan.
    Variable option sebagai array yang dikosongkan untuk menyimpan data sementara dari menubuku dan nomor pilihan, yang akan diperlukan sebagai proses lanjutan.
    Variable 
    prDenda digunakan sebagai parameter perhitungan denda, inisialisasi 7 berarti jika peminjaman melebihi 7 hari akan dikenakan denda harian sebesar Rp. 500.
    Variable fee untukmenyimpan besaran biaya peminjaman per item buku yang bersifat dinamis sesuai menu pilihan yang diambil.
    private String getDateTime() {
    DateFormat dateFormat = new SimpleDateFormat(“dd/MM/yyyy”);
    Date date = new Date();
    return dateFormat.format(date);
    }
    Method getDateTime digunakan untuk mengambil tanggal dari system komputer saat ini. DateFormat adalah method yang terdapat pada API java.text.DateFormat. Hasil dari method ini berupa tanggal saat ini dengan format dd/mm/yyyy.
    public void initUser(){
    Scanner input = new Scanner(System.in);
    System.out.print(“Masukkan Nama User : “);
    userName=input.nextLine();
    System.out.print(“\n”);
    System.out.print(“Masukkan ID User : “);
    userId=input.nextLine();
    }
    Method initUser digunakan untuk proses pemasukan data nama dan id.
    public int MenuBukuUtama(){
    Scanner input = new Scanner(System.in);

    System.out.println(“DAFTAR BUKU PERPUSTAKAAN XYZ”);
    System.out.println(“============================”);
    System.out.println(“1. KAMUS(DICTIONARY)”);
    System.out.println(“2. MAJALAH”);
    System.out.println(“3. TEXTBOOK PEMROGRAMMAN”);
    System.out.println(“0. QUIT”);
    System.out.print(“SILAHKAN MASUKAN ANGKA PILIHAN ANDA : “);
    int pilih=input.nextInt();
    System.out.print(“\n\n\n”);
    return pilih;
    }
    Method MenuBukuUtama digunakan sebagai interface dengan user yang mengoperasikan system program perpustakaan, yang digunakan untuk memberikan pilihan jenis buku, majalah atau textbookyang akan dipinjam oleh customer perpustakaan.
    public int MenuBuku(int pilih){
    option[0]=String.valueOf(pilih);
    int pilihan=0;

    Scanner input = new Scanner(System.in);
    if(pilih==1){
    System.out.println(“DAFTAR BUKU KAMUS XYZ”);
    System.out.println(“============================”);
    System.out.println(“1. “+subject[0]);
    System.out.println(“2. “+subject[1]);
    System.out.println(“3. “+subject[2]);
    System.out.println(“0. QUIT”);
    System.out.print(“SILAHKAN MASUKAN ANGKA PILIHAN ANDA : “);
    pilihan=input.nextInt();
    System.out.print(“\n\n\n”);
    }else if(pilih==2){
    System.out.println(“DAFTAR MAJALAH XYZ”);
    System.out.println(“============================”);
    System.out.println(“1. “+subject[3]);
    System.out.println(“2. “+subject[4]);
    System.out.println(“3. “+subject[5]);
    System.out.println(“0. QUIT”);
    System.out.print(“SILAHKAN MASUKAN ANGKA PILIHAN ANDA : “);
    pilihan=input.nextInt();
    System.out.print(“\n\n\n”);
    }else if(pilih==3){
    System.out.println(“DAFTAR TEXTBOOK XYZ”);
    System.out.println(“============================”);
    System.out.println(“1. “+subject[6]);
    System.out.println(“2. “+subject[7]);
    System.out.println(“3. “+subject[8]);
    System.out.println(“4. “+subject[9]);
    System.out.println(“0. QUIT”);
    System.out.print(“SILAHKAN MASUKAN ANGKA PILIHAN ANDA : “);
    pilihan=input.nextInt();
    System.out.print(“\n\n\n”);
    }
    option[1]=String.valueOf(pilihan);
    return pilihan;
    }
    Method MenuBukuUtama digunakan sebagai interface pemilihan jenis/type buku yang akan dipinjam atau pengembalian. Pilihan 1 akan merujuk pada jenis kamus, 2 merujuk ke jenis majalah dan pilihan 3 merujuk ke jenis textbook. Variable option[0] menyimpan type buku(kamus, majalah dan textbook). Variable option[1] menyimpan judul buku yang akan dipinjam ataupun dikembalikan. Method ini akan mengembalikan judul buku yang terpilih, selanjutnya akan digunakan sebagai proses method berikutnya.
    public String select(String cat,String item){
    String temp;

    if(cat.equals(“1″)){
    if(item.equals(“1″))temp=subject[0];
    else if(item.equals(“2″))temp=subject[1];
    else temp=subject[2];
    fee=3000;
    }else if(cat.equals(“2″)){
    if(item.equals(“1″))temp=subject[3];
    else if(item.equals(“2″))temp=subject[4];
    else temp=subject[5];
    fee=1000;
    }else{
    if(item.equals(“1″))temp=subject[6];
    else if(item.equals(“2″))temp=subject[7];
    else if(item.equals(“3″))temp=subject[8];
    else temp=subject[9];
    fee=2000;
    }
    return temp;
    }
    Method select melakukan proses penyeleksian buku yaitu judul dan kategorinya serta memberikan fee yang harus dibayar oleh customer, bila kategori 1 maka fee untuk kamus Rp.3000, kategori 2 fee Rp.1000 untuk majalah dan lainnya fee textbook Rp.2000. Masing-masing fee untuk jangka waktu 7 hari peminjaman. Untuk variable item akan terisi judul buku yang dipinjamnya atau pengembaliaan buku. Dua variable ini passingan parameter dari method sebelumnya yaitu MenuBukuUtama yang menghasilkan option[0] dan option[1].
    public void subMenuBuku(String selectBook){
    int pil=0;
    int jmlHrDenda=0;
    double denda=0;

    Scanner input = new Scanner(System.in);
    System.out.println(“Sub Menu Peminjaman/Pengembalian buku”);
    System.out.println(“=====================================”);
    System.out.println(“1. Pinjam”);
    System.out.println(“2. Kembali”);
    System.out.println(“0. Quit”);
    System.out.print(“SILAHKAN MASUKAN ANGKA PILIHAN ANDA : “);
    pil=input.nextInt();
    String temp=getDateTime();
    if(pil==1)
    {
    System.out.println(userName+” dengan ID number : “+userId+” Meminjam “+selectBook);
    System.out.println(“Biaya Peminjaman Rp.”+fee);
    System.out.println(“Tanggal Hari Ini : “+temp);
    System.out.print(“\n\n\n”);
    }else if(pil==2){
    Scanner getManualDate = new Scanner(System.in);
    System.out.println(userName+” dengan ID number : “+userId+” Mengembalikan “+selectBook);
    System.out.println(“Tanggal Hari Ini : “+temp);
    System.out.print(“Tanggal Pinjam(Masukan tanggalnya saja DD): “);
    int oldDate=getManualDate.nextInt();
    int totHrDenda=hitungHariDenda(oldDate,temp);
    if(totHrDenda>prDenda){
    jmlHrDenda=totHrDenda-prDenda;
    denda=jmlHrDenda*500;
    }
    else{
    jmlHrDenda=0;
    denda=0;
    }
    System.out.println();
    System.out.println(“Biaya Peminjaman Rp.”+fee);
    System.out.println(“Anda Terlambat Mengembalikan : “+jmlHrDenda+” Hari”);
    System.out.println(“Denda Rp.”+denda);
    System.out.println(“Total Bayar Rp.”+(fee+denda));
    System.out.print(“\n\n\n”);
    }else{
    System.out.println(“Eng ing eeng bobok….”);
    System.exit(0);
    }
    }
    Method subMenuBuku melakukan proses lanjutan dari method sebelumnya. Pada method ini ada 2 pilihan menu yaitu Peminjaman dan Pengembalian buku. Bila pilihan yang diambil 1 maka proses peminjaman buku yang dikerjakan.
    Pada peminjaman buku pilihan kategori dan jenis buku telah dilakukan dan perhitungan fee juga telah di assignment sehingga option ini akan menghasilkan output nama, id, fee dan tanggalnya saat ini.




    Bila option 2 yang diambil maka diadakan perhitungan besar denda bila peminjaman sudah lebih dari 1 minggu(7 hari). Untuk menghitung besar denda maka akan dieksekusi method hitungHariDendadengan proses tanggal hari ini dikurangi dengan tanggal pinjam(tanggal pinjam diinput manual karena kesulitan tidak adanya database), bila hasil melebihi 7 hari maka akan dikenakan denda sebesar Rp.500 perharinya, sehingga didapat jumlah total fee yang harus dibayar. Pada method ini dihasilkan outputNama, id, total bayar, jumlah keterlambatan bila ada dan tanggal saat ini.
    public int hitungHariDenda(int dateOld, String dateNow){
    int result=0;
    String tmp=dateNow.substring(0,2);
    return result=Integer.parseInt(tmp) – dateOld;
    }
    Method hitungHariDenda sudah jelas seperti uraian method sebelumnya.
    public String YesNo(){
    String answ;
    Scanner inp = new Scanner(System.in);
    System.out.print(“Masih Ada Data Lagi[Y/N]—>”);
    answ=inp.nextLine();
    return answ;
    }
    Method YesNo digunakan untuk mengkonfirmasi apakah masih ada data customer atau tidak, jika dipilih Y/y maka proses akan berulang untuk menginut data user, tetapi bila dipilih t/T maka proses keluar dari system.
    Nah sampai disini dulu deh biar tidak pusing, nanti sambung lagi untuk main programnya, bila anda berkenan silahkan tinggalkan pesan atau ada question?. ADIOS…

    Tidak ada komentar:

    Posting Komentar