Kamis, 16 April 2009

Program Perpustakaan Sederhana

PENDAHULUAN

Perpustakaan sebagai salah satu unit pelayanan memerlukan penatausahaan yang baik, hal ini dikarenakan data yang dikelola dalam perpustakaan sangat banyak. Jika Data tersebut tidak dikelola dengan baik maka akan menimbulkan in-efisiensi dan in-efektifitas.

Salah satu penatausahaan perpustakaan adalah dengan menyusun prosedur yang sistematis tentang data koleksi buku, data peminjaman, data pengembalian dan sebagainya. Untuk itu penulis mencoba menyajikan program perpustakaan berupa program perpustakaan sederhana berbasis text (bukan GUI) dengan menggunakan input data dari keyboard.

Ketentuan dari program ini adalah :

1. Perpustakaan ini memiliki 10 koleksi buku. 10 buku tadi terdiri dari 3 kamus, 3 majalah dan 4 textbook .

2. Peraturan peminjaman buku adalah:

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

b. 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.


Untuk memulai pembuatan program, kita harus mempersiapkan 3 file, yaitu:

1. InputKeyboard.java

2. Perpus.java

3. PerpusAksi.java

Source Code

A. InputKeyboard.java

1 import java.io.*;

2

3 public class InputKeyboard{

4 public static String inputString(){

5 int karakter; String str =""; boolean selesai = false;

6 while(!selesai){

7 try{

8 karakter = System.in.read();

9 if(karakter < karakter ="=" selesai =" true;

10 else if ((char) karakter != '\r') str = str + (char) karakter;

11 }catch(java.io.IOException e){

12 System.err.println("Ada kesalahan");

13 selesai = true;

14 }

15 }

16 return str;

17 }

18 }

B. Perpus.java

1 public class Perpus {

2 //deklarasi variabel umum

3 String dataString;

4 int a=0;

5 int dataBulat ;

6

7 //deklarasi variabel transaksi

8 String nomorAnggota,namaAnggota, tanggalPinjam;

9 int bpinjam=0,bayar=0,denda=0,jml=0,tbayar=0, lama=0,tarif=0;

10

11 public void menu() {

12 int menu = 0;

13 //membuat method menu utama

14 System.out.println ("\n");

15 System.out.println (" ********************************");

16 System.out.println (" * Menu Utama: *");

17 System.out.println (" * -------------------------*");

18 System.out.println (" * 1. Daftar Buku *");

19 System.out.println (" * 2. Peminjaman *");

20 System.out.println (" * 3. Pengembalian *");

21 System.out.println (" * 4. Exit *");

22 System.out.println (" * *");

23 System.out.println (" ********************************");

24 System.out.println ("\n");

25 System.out.print("\n Masukkan menu pilihan anda: ");

26 dataString=InputKeyboard.inputString();

27 menu = Integer.valueOf(dataString).intValue();

28 switch(menu) {

29 case 1 :

30 daftarBuku();// memanggil method Daftar Buku

31 break;

32 case 2 :

33 peminjaman(); //memanggil method Peminjaman

34 break;

35 case 3 :

36 pengembalian(); //memanggil method Pengembalian

37 break;

38 case 4 :

39 System.out.println("Terima kasih");

40 System.exit(0);

41 break;

42 default :

43 System.out.print("Maaf, pilihan yang Anda masukkan salah!");

44 pilihMenu();//memanggil method pilihMenu

45 }

46 }

47

48 public void pilihMenu(){

49 int pilihMenu = 0;

50 System.out.print("**)1. Kembali ke Menu Utama 2.Keluar ");

51 System.out.print("\n **)Masukkan menu pilihan anda: ");

52 dataString=InputKeyboard.inputString();

53 pilihMenu = Integer.valueOf(dataString).intValue();

54 switch(pilihMenu) {

55 case 1 :

56 menu();

57 break;

58 case 2 :

59 System.out.println("Terima kasih");

60 System.exit(0);

61 break;

62 default :

63 System.out.print("Maaf, pilihan yang Anda masukkan salah!");

64 pilihMenu();

65 }

66 }

67

68 public void daftarBuku(){

69 System.out.println ("\n");

70 System.out.println (" DAFTAR BUKU ");

71 System.out.println ("------------------------------------------------------------------");

72 System.out.println ("|No.| Jenis | Judul | Penerbit | Tahun |");

73 System.out.println ("|--------------------------------------------------------------------------|");

74 System.out.println ("| 1. |Kamus |Kamus Ingris-Indonesia |Balai Pustaka | 2009 |");

75 System.out.println ("| 2 .|Kamus |Kumpulan Istilah Komputer |Media Komputindo| 2006 |");

76 System.out.println ("| 3. |Kamus |Kamus Basa Jawi |Semar Mesem Pres | 2009 |");

77 System.out.println ("| 4. |Majalah |Komputex |Elex Media | 2009 |");

78 System.out.println ("| 5. |Majalah |Pria Dewasa |Tarsindo | 2009 |");

79 System.out.println ("| 6. |Majalah |Cempaka |Suara Merdeka Pr | 2009 |");

80 System.out.println ("| 7. |Textbook|Panduan Java |Andi Offset | 2005 |");

81 System.out.println ("| 8. |Textbook|Pemrograman Delphi |Setia Kawan Pres | 2006 |");

82 System.out.println ("| 9. |Textbook|Text Processing |Pramadya Press | 2008 |");

83 System.out.println ("| 10.|Textbook|Java Fundamental |Abadi Offset | 2009 |");

84 System.out.println ("----------------------------------------------------------------------------");

85 pilihMenu();

86 }

87

88 public void peminjaman(){

89 System.out.println("");

90 System.out.println("----------------------------------------");

91 System.out.println("| PEMINJAMAN BUKU |");

92 System.out.println("|--------------------------------------- |");

93 System.out.println("| Tarif Peminjaman per minggu: |");

94 System.out.println("| 1. Jenis Buku Majalah = Rp.1000,- |");

95 System.out.println("| 2. Jenis Buku Textbook = Rp.2000,-|");

96 System.out.println("| 3. Jenis Buku Kamus = Rp.3000,- |");

97 System.out.println("----------------------------------------");

98 System.out.print("1. Tanggal Pinjam = ");

99 tanggalPinjam = InputKeyboard.inputString();

100 System.out.print("2. Nomor Anggota = ");

101 nomorAnggota = InputKeyboard.inputString();

102 System.out.print("3. Nama Anggota = ");

103 namaAnggota = InputKeyboard.inputString();

104 System.out.print("4. Jenis buku = ");

105 String dataStringJenisBuku = InputKeyboard.inputString();

106 System.out.print("5. Jumlah Buku = ");

107 String dataStringJumlahBuku = InputKeyboard.inputString();

108 int jumlahBuku = Integer.valueOf(dataStringJumlahBuku).intValue();

109 int jenisBuku = Integer.valueOf(dataStringJenisBuku).intValue();

110 if ( jenisBuku == 1){

111 tarif = 1000;

112 }

113 if ( jenisBuku == 2){

114 tarif = 2000;

115 }

116 if ( jenisBuku == 3){

117 tarif = 3000;

118 }

119 System.out.println("----------------------------------------");

120 System.out.println("Biaya Peminjaman = "+ (jumlahBuku * tarif) );

121 System.out.println("----------------------------------------");

122 pilihMenu();

123 }

124

125 public void pengembalian(){

126 System.out.println("");

127 System.out.println ("--------------------------------------------");

128 System.out.println ("| PENGEMBALIAN BUKU |");

129 System.out.println ("| (Denda keterlambatan Rp. 500 per hari) |");

130 System.out.println ("--------------------------------------------");

131 System.out.print("1. Tanggal Kembali = ");

132 tanggalPinjam = InputKeyboard.inputString();

133 System.out.print("2. Nomor Anggota = ");

134 nomorAnggota = InputKeyboard.inputString();

135 System.out.print("3. Nama Anggota = ");

136 namaAnggota = InputKeyboard.inputString();

137 System.out.print("4. Jumlah Buku = ");

138 String dataStringJumlahBuku = InputKeyboard.inputString();

139 System.out.print("5. Jumlah Hari = ");

140 String dataStringJumlahHari = InputKeyboard.inputString();

141 int jumlahBuku = Integer.valueOf(dataStringJumlahBuku).intValue();

142 int jumlahHari = Integer.valueOf(dataStringJumlahHari).intValue();

143 if ( jumlahHari > 7){

144 denda = jumlahHari - 7;

145 }

146 System.out.println ("--------------------------------------------");

147 int totalDenda = denda * 500 * jumlahBuku;

148 System.out.println("Total Denda = Rp "+ totalDenda );

149 System.out.println("");

150 pilihMenu();

151 }

152 }


C. PerpusAksi.java

1 public class PerpusAksi {

2 public static void main(String[] args) {

3 Perpus menuUtama= new Perpus(); //membuat objek menu utama

4 menuUtama.menu(); //memanggil method menu() pada class Perpus

5 }

6 }


TAMPILAN PROGRAM

A. Menu Utama

Sesudah InputKeyboard.java, Perpus.java dan PerpusAksi di compile selanjutnya Perpus Aksi.java di run maka tampilan mukanya adalah:

Gambar 1. Tampilan Menu Utama


B. Menu Daftar Buku

Sesudah memasukkan menu pilihan (1) untuk menu Daftar Buku maka akan tampil seperti pada Gambar 2. Dalam tampilan tampak muncul dua menu pilihan (1) Kembali ke Menu Utama dan (2) Keluar. Ini adalah hasil dari method pilihMenu. Jika pustakawan memilih menu 1 maka akan kembali ke Menu Utama tetapi kalau memilih menu 2 maka keluar dan mengakhiri program.

Gambar 2. Tampilan Menu Daftar Buku


C. Menu Peminjaman

Menu ini jika dipilih akan tampak seperti Gambar 3, dan didalam menu ini pustakawan dapat memasukkan data Tanggal Pinjam, Nomor Anggota, Nama Anggota, Jenis Buku, Jumlah Buku dan Biaya Peminjaman.

Gambar 3. Tampilan Peminjaman


D. Menu Pengembalian

Menu pengembalian akan menginput maupun menampilkan data tentang Tanggal Kembali, Nomor Anggota, Nama Anggota, Jumlah Buku dan Jumlah Hari. Jika jumlah hari melebihi 7 hari maka akan dihitung denda keterlambatan sebesar Rp 500,- per hari. Menu Pengembalian seperti tampak pada Gambar 4.

Gambar 4. Tampilan Menu Pengembalian


E. Menu Keluar (Exit)

Menu ini jika dipilih maka akan keluar dari Program Perpustakaan Sederhana dan akan kembali ke Windows. Gambar 5 menunjukkan menu Exit.

Gambar 5. Tampilan Menu Exit