Jumat, 22 Maret 2013

Program Java Berbasis Array dalam Pengelolaan Perpustakaan Sederhana


PROGRAM JAVA BERBASIS ARRAY DALAM PENGIMPLEMENTASIAN PERPUSTAKAAN SEDERHANA
OLEH
1.       AJI HADI PRASETYO
2.       EKO RUDI SUTEJA
3.       MUHAMMAD ZAID TAUFIQ

Program perpustakaan ini terbagi oleh 3 sub program diantaranya
1.       InputKeyboard.java
2.       Perpus.java
3.       PerpusBeraksi.java

1.       InputKeyboard.java

public class InputKeyboard {
   
public static String inputString(){
int karakter; String str =""; boolean selesai = false;
while(!selesai){
try{
    karakter = System.in.read();
    if(karakter < 0 || (char) karakter == '\n') selesai = true;
    else if ((char) karakter != '\r') str = str + (char) karakter;
}catch (java.io.IOException e){
    System.err.println("Ada kesalahan");
    selesai = true;
}
}
return str;
}
}

2.       Perpus.java

// Program Ini Dibuat Oleh Aji Hadi Prasetyo, Eko Rudi Suteja dan Muhammad Zaid Taufiq kelas : 2IA26
public class Perpus {
// deklarasi variabel
String dataString;
int indexAng = 0; // memberi inisialisasi harga index anggota 0
int indexPjm = 0; // memberi inisialisasi harga index pinjam 0
// variabel array anggota, array pinjam
String[][] anggota = new String[10][2];
String[][] pinjam = new String[10][5];
// variabel array buku yaitu daftar buku yang dapat dipinjam
String[][] buku = {
    {"01","Kamus","Kamus Inggris-Indonesia"},
    {"02","Kamus","Kamus Indonesia-Inggris"},
    {"03","Kamus","Kamus Bahasa Jawa"},
    {"04","Majalah","Komputek"},
    {"05","Majalah","Chip"},
    {"06","Majalah","Info Linux"},
    {"07","Textbook","Algoritma & Pemrograman"},
    {"08","Textbook","Pemrograman Berorientasi Obyek"},
    {"09","Textbook","Database Managements System"},
    {"10","Textbook","Computer Network"}
};

// method Menu Utama
public void Menu() {
    int menu = 0;
       
    //membuat tampilan menu utama
    System.out.println ("\r");
    System.out.println (" Menu Utama: ");
    System.out.println (" -------------------------");
    System.out.println (" 1. Anggota ");
    System.out.println (" 2. Daftar Buku ");
    System.out.println (" 3. Peminjaman ");
    System.out.println (" 4. Pengembalian ");
    System.out.println (" 5. Exit ");
    System.out.println (" -------------------------");
    System.out.print("\r Masukkan menu pilihan anda: ");
    dataString = InputKeyboard.inputString();
    // ubah variabel dataString dari tipe data String ke int
    menu = Integer.valueOf(dataString).intValue();

    switch(menu) {
    case 1 :
    MenuAnggota(); // memanggil method Menu Anggota
    break;

    case 2 :
    DaftarBuku(); //memanggil method Daftar Buku
    break;

    case 3 :
    MenuPinjam(); //memanggil method Menu Pinjam
    break;

    case 4 :
    Pengembalian(); //memanggil method Pengembalian
    break;

    case 5 :
    System.out.println("Terima kasih");
    System.exit(0); // keluar dari program
    break;

    default :
              System.out.println ("\r");
    System.out.println("Maaf, pilihan yang Anda masukkan salah!");
    Menu(); //memanggil method pilihMenu jika pilihan selain 1 - 5
              break;
    }
}

// method Menu Anggota
public void MenuAnggota() {
    int menu = 0;

    //membuat tampilan menu anggota
    System.out.println ("\r");
    System.out.println (" Menu Anggota: ");
    System.out.println (" -------------------------");
    System.out.println (" 1. Pendaftaran Anggota");
    System.out.println (" 2. Daftar Anggota ");
    System.out.println (" 3. Menu Utama ");
    System.out.println (" -------------------------");
    System.out.print("\r Masukkan menu pilihan anda: ");
    dataString = InputKeyboard.inputString();
              // ubah variabel dataString dari tipe data String ke int
    menu = Integer.valueOf(dataString).intValue();

    switch(menu) {
    case 1 :
    PendaftaranAnggota();// memanggil method Pendaftaran Anggota
    break;

    case 2 :
    DaftarAnggota(); //memanggil method Daftar Anggota
    break;

    case 3 :
    Menu(); //memanggil method Menu Utama
    break;

    default :
              System.out.println ("\r");
    System.out.println("Maaf, pilihan yang Anda masukkan salah!");
    MenuAnggota(); //memanggil method Menu Anggota jika pilihan selain 1 - 3
              break;
    }
}

// method Menu Peminjaman Buku
public void MenuPinjam() {
    int menu = 0;

    //membuat tampilan Menu Peminjaman
    System.out.println ("\r");
    System.out.println (" Menu Peminjaman: ");
    System.out.println (" -------------------------");
    System.out.println (" 1. Peminjaman ");
    System.out.println (" 2. Daftar Peminjaman ");
    System.out.println (" 3. Menu Utama ");
    System.out.println (" -------------------------");
    System.out.print("\r Masukkan menu pilihan anda: ");
    dataString = InputKeyboard.inputString();
              // ubah variabel dataString dari tipe data String ke int
    menu = Integer.valueOf(dataString).intValue();

    switch(menu) {
    case 1 :
    Peminjaman();// memanggil method Peminjaman Buku
    break;

    case 2 :
    DaftarPinjam(); //memanggil method Daftar Peminjaman
    break;

    case 3 :
    Menu(); //memanggil method Menu Utama
    break;

    default :
              System.out.println ("\r");
    System.out.println("Maaf, pilihan yang Anda masukkan salah!");
    MenuPinjam(); //memanggil method Menu Pinjam jika pilihan selain 1 - 3
              break;
    }
}

// method Pendaftaran Anggota
public void PendaftaranAnggota(){
            
    //membuat tampilan Menu Pendaftaran Anggota
    System.out.println ("\r");
    System.out.println ("Pendaftaran Anggota ");
    System.out.println ("-------------------------");
    System.out.print("Nomor Anggota : ");
    String nomorAnggota = InputKeyboard.inputString(); // input nomor anggota
    System.out.print("Nama Anggota : ");
    String namaAnggota = InputKeyboard.inputString(); // input nama anggota

              // Data Anggota disimpan ke dalam variabel Array anggota[][]
    anggota[indexAng][0]=nomorAnggota;
    anggota[indexAng][1]=namaAnggota;

    System.out.println ("\r");
    System.out.println ("Data Anggota sudah tersimpan!");
   
              // indeks record array anggota ditambah 1
    indexAng++;
    PilihMenu("Menu Anggota"); // memanggil method Pilih Menu dengan variabel "Menu Anggota"
}

// method Pemilihan Menu
public void PilihMenu(String nmMenu){
    int pilihMenu = 0;
    String msgMenu = "" ;
  
              // cek isi variabe nmMenu
    if (nmMenu=="Menu Anggota"){
        msgMenu = "2.Kembali ke Menu Anggota ";
    }
    if (nmMenu=="Menu Peminjaman"){
        msgMenu = "2.Kembali ke Menu Peminjaman ";
    }
    if (nmMenu=="Menu"){
        msgMenu = "";
    }

    System.out.println ("\r");
    System.out.println("1.Kembali ke Menu Utama "+msgMenu+"3.Keluar"); // cetak daftar pemilihan menu
    System.out.print("Masukkan menu pilihan anda: ");
    dataString=InputKeyboard.inputString();
              // ubah variabel dataString dari tipe data String ke int
    pilihMenu = Integer.valueOf(dataString).intValue();

    switch(pilihMenu) {
    case 1 :
    Menu(); // memanggil method Menu Utama
    break;

    case 2 :
    if (nmMenu=="Menu Anggota"){
        MenuAnggota(); // jika nmMenu="Menu Anggota, panggil method Menu Anggota
    }
    if (nmMenu=="Menu Peminjaman"){
       MenuPinjam(); // jika nmMenu="Menu Peminjaman, panggil method Menu Peminjaman
    }
    break;
              
    case 3 :
    System.out.println("Terima kasih");
    System.exit(0); // keluar dari program
    break;

    default :
              System.out.println ("\r");
    System.out.print("Maaf, pilihan yang Anda masukkan salah!");
    PilihMenu(nmMenu); // memanggil method Pilih Menu dengan variabel isi variabel nmMenu
              break;
    }
}

// method Daftar Buku
public void DaftarBuku(){
       
                               //membuat tampilan Menu Pendaftaran Anggota
        System.out.println ("\r");
        System.out.println("No Kategori   Nama");
        System.out.println("------------------------------------------------------");
                              
                               // untuk setiap record buku yang ada di variabel array buku ditampilkan
        for (int i=0;i<buku.length;i++)
               System.out.println(buku[i][0]+"."+buku[i][1]+"   "+buku[i][2]);

        System.out.println("------------------------------------------------------");
        PilihMenu("Menu"); // memanggil method Pilih Menu dengan variabel "Menu"
}

// method Cari Buku
public void CariBuku(int no){
    no--; // variabel no dikurangi 1 untuk menyesuaikan urutan di array yg dimulai dgn angka 0
    System.out.println(">> "+buku[no][0]+"."+buku[no][1]+"   "+buku[no][2]);
}

// method Cari Anggota
public void CariAnggota(int no){
    no--; // variabel no dikurangi 1 untuk menyesuaikan urutan di array yg dimulai dgn angka 0
    System.out.println(">> "+anggota[no][0]+"."+anggota[no][1]);
}

// method Peminjaman
public void Peminjaman(){
   int noAnggota = 0, noBuku = 0, sewa =0;
   
              // membuat tampilan peminjaman buku
    System.out.println ("\r");
    System.out.println ("Peminjaman Buku: ");
    System.out.println ("-------------------------");
    System.out.print("Nomor Anggota : ");
    String nomorAnggota = InputKeyboard.inputString(); // input nomor anggota
    noAnggota= Integer.valueOf(nomorAnggota).intValue();
    CariAnggota(noAnggota); // memanggil method Cari Anggota dengan isi variabel noAnggota
    noAnggota--; // noAnggota dikurangi 1 utk proses cetak bukti pinjam
              
    System.out.print("Nomor Buku dipinjam  : ");
    String nomorBuku = InputKeyboard.inputString(); // input nomor buku
    noBuku= Integer.valueOf(nomorBuku).intValue();
    CariBuku(noBuku);
    noBuku--; // noBukua dikurangi 1 utk proses cetak bukti pinjam
              
    if (buku[noBuku][1]=="Kamus"){
        sewa = 3000; // jika kategori buku="Kamus", maka biaya sewa Rp.3000,-
    }
    if (buku[noBuku][1]=="Majalah"){
        sewa = 1000;  // jika kategori buku="Majalah", maka biaya sewa Rp.1000,-
    }
    if (buku[noBuku][1]=="Textbook"){
        sewa = 2000;  // jika kategori buku="Textbook", maka biaya sewa Rp.2000,-
    }
    System.out.println("Biaya sewa 1 minggu : ");
    System.out.println(">> Rp. "+sewa+",-"); // cetak biaya sewa

    System.out.print("Tanggal Pinjam (dd/mm/yy): ");
    String tglPinjam = InputKeyboard.inputString(); // input tanggal pinjam

    System.out.print("Tanggal Kembali (dd/mm/yy): ");
    String tglKembali = InputKeyboard.inputString(); // input tanggal kembali
   
              // mencetak bukti peminjaman buku
    System.out.println("\n");
    System.out.println("No Anggota   : "+anggota[noAnggota][0]+"                Tanggal Pinjam  : "+tglPinjam);
    System.out.println("Nama Anggota : "+anggota[noAnggota][1]+"       Tanggal Kembali : "+tglKembali);
    System.out.println("-------------------------------------------------------------------------------");
    System.out.println(" No    Kategori   Nama buku");
    System.out.println("-------------------------------------------------------------------------------");
    System.out.println(buku[noBuku][0]+"  "+buku[noBuku][1]+"   "+buku[noBuku][2]);
    System.out.println("-------------------------------------------------------------------------------");
    System.out.println("                                Total Biaya Sewa : Rp."+sewa+",-");
              
              // simpan data peminjaman ke variabel array pinjam[][]
    pinjam[indexPjm][0]=nomorAnggota;
    pinjam[indexPjm][1]=nomorBuku;
    pinjam[indexPjm][2]=tglPinjam;
    pinjam[indexPjm][3]=tglKembali;
    pinjam[indexPjm][4]=Integer.toString(sewa);

    System.out.println ("\r");
    System.out.println ("Data Pinjam sudah tersimpan!");

    indexPjm++; // indeks record variabel array pinjam ditambah 1

    PilihMenu("Menu Peminjaman"); // memanggil method Pilih Menu dengan variabel "Menu Peminjaman"
}

// method Daftar Peminjaman
public void DaftarPinjam(){
    int noAngg =0, noBuku = 0;
              
              // mencetak daftar peminjaman buku
    System.out.println ("\r");
    System.out.println("Daftar Peminjaman Buku");
    System.out.println("------------------------------------------------------------------------------");
    System.out.println(" No.Nama Ang  No.Nama Buku      Tgl.Pinjam   Tgl.Kembali         Biaya Sewa");
    System.out.println("------------------------------------------------------------------------------");
              
              // untuk setiap record pinjam yang ada di variabel array pinjam ditampilkan
    for (int i=0;i<indexPjm;i++) {

           noAngg = Integer.valueOf(pinjam[i][0]).intValue();
                                               noAngg--;
           noBuku = Integer.valueOf(pinjam[i][1]).intValue();
                                               noBuku--;
           System.out.println(pinjam[i][0]+"."+anggota[noAngg][1]+"      "+pinjam[i][1]+"."+buku[noBuku][1]+"."+buku[noBuku][2]+"    "+pinjam[i][2]+"    "+pinjam[i][3]+"    "+pinjam[i][4]);
          
    }
    System.out.println("------------------------------------------------------------------------------");
    PilihMenu("Menu Peminjaman"); // memanggil method Pilih Menu dengan variabel "Menu Peminjaman"
}

// method Daftar Anggota
public void DaftarAnggota(){
              
               // mencetak daftar anggota
    System.out.println ("\r");
    System.out.println("Daftar Anggota");
    System.out.println("------------------------------------------------------");
              
              // untuk setiap record anggota yang ada di variabel array anggota ditampilkan
    for (int i=0;i<indexAng;i++)
           System.out.println(anggota[i][0]+"."+anggota[i][1]);

    System.out.println("------------------------------------------------------");
    PilihMenu("Menu Anggota"); // memanggil method Pilih Menu dengan variabel "Menu Anggota"
}

// method Pengembalian
public void Pengembalian(){
              // deklrasi variabel
    int noAngg = 0, noBuku = 0;
    String noAng="";
   
              // membuat tampilan pengembalian buku
    System.out.println ("\r");
    System.out.println ("Pengembalian Buku: ");
    System.out.println ("-------------------------");
    System.out.print("Nomor Anggota : ");
    String nomorAnggota = InputKeyboard.inputString(); // input nomor anggota
   
    for (int i=0;i<indexPjm;i++){
        noAng = pinjam[i][0];
      
                               // mencari data peminjaman buku di variabel array pinjam berdasarkan nomor anggota
        if (noAng.equalsIgnoreCase(nomorAnggota)){
                                                            
                                                             // jika ketemu, maka data peminjaman akan dicetak
            System.out.println("------------------------------------------------------------------------------");
                             System.out.println(" No.Nama Ang  No.Nama Buku      Tgl.Pinjam   Tgl.Kembali         Biaya Sewa");
                             System.out.println("------------------------------------------------------------------------------");

            noAngg = Integer.valueOf(pinjam[i][0]).intValue();// ubah variabel string noAngg ke int
                                                noAngg--;
            noBuku = Integer.valueOf(pinjam[i][1]).intValue(); // ubah variabel string noBuku ke int
                                                noBuku--;
                                              
            System.out.println(pinjam[i][0]+"."+anggota[noAngg][1]+"      "+pinjam[i][1]+"."+buku[noBuku][1]+"."+buku[noBuku][2]+"    "+pinjam[i][2]+"    "+pinjam[i][3]+"    "+pinjam[i][4]);
            System.out.println("------------------------------------------------------------------------------");

            System.out.print("Terlambat (hari) : ");
            String jmlHari = InputKeyboard.inputString(); // input data keterlambatan dalam hari
            int noHari= Integer.valueOf(jmlHari).intValue();
            System.out.println("Denda : Rp. "+(noHari*500)+",-"); // cetak total denda dari rupiah denda per hari dikalikan dgn hari keterlambatan
        }      
    }
    PilihMenu("Menu"); // memanggil method Pilih Menu dengan variabel "Menu Anggota"
}

}

3.       PerpusBeraksi.java

public class PerpusBeraksi {

    public static void main(String[] args){
        Perpus perpusku=new Perpus();
       
        perpusku.Menu();
      
    }
}

Program yang dapat diexecute adalah PerpusBeraksi.java

OUTPUT YANG DIHASILKAN