ta riri maiyuliani 2009-94293.pdf

247
“PERANCANGAN SISTEM INFORMASI PERPUSTAKAAN SMP NEGERI 1 KEC. MUNGKA KAB. LIMA PULUH KOTA” TUGAS AKHIR Diajukan Untuk Memenuhi Sebagian Persyaratan Memperoleh Gelar Sarjana Pendidikan DISUSUN OLEH : RIRI MAIYULIANI NIM. 94293/2009 PENDIDIKAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS NEGERI PADANG 2012

Upload: uchi-chayy

Post on 19-Jan-2016

133 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

“PERANCANGAN SISTEM INFORMASI PERPUSTAKAAN

SMP NEGERI 1 KEC. MUNGKA KAB. LIMA PULUH KOTA”

TUGAS AKHIR

Diajukan Untuk Memenuhi Sebagian Persyaratan Memperoleh

Gelar Sarjana Pendidikan

DISUSUN OLEH :

RIRI MAIYULIANI

NIM. 94293/2009

PENDIDIKAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS NEGERI PADANG

2012

Page 2: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

PERSETUJUAN TUGAS AKHIR

PERANCANGAN SISTEM INFORMASI PERPUSTAKAAN SMP NEGERI 1 KEC. MUNGKA KAB. LIMA PULUH KOTA

Nama : Riri Maiyuliani

Nim : 94293

Program Studi : Pendidikan Teknik Informatika

Jurusan : Teknik Elektronika

Fakultas : Teknik

Padang, Januari 2012

Disetujui Oleh :

Pembimbing I Pembimbing II

Muhammad Adri, S. Pd, MT Dony Novaliendry, S. Kom, M. Kom Nip : 19750514 200003 1 001 Nip :19751104 200604 1 002

Mengetahui,

Ketua Jurusan Teknik Elektronika

FT UNP

Drs. Putra Jaya, MT NIP. 19621020 198602 1 001

ii

Page 3: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

PENGESAHAN

Dinyatakan lulus setelah dipertahankan di depan Tim Penguji Tugas Akhir Program Studi Pendidikan Teknik Informatika Jurusan Teknik Elektronika

Fakultas Teknik Universitas Negeri Padang

Judul : Perancangan Sistem Informasi Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota

Nama : Riri Maiyuliani

Nim : 94293

Program Studi : Pendidikan Teknik Informatika

Jurusan : Teknik Elektronika

Fakultas : Teknik

Padang, Januari 2012

Tim Penguji

Nama Tanda Tangan

1. Ketua : Drs. Efrizon, MT 1

2. Sekretaris : Muhammad Adri, S. Pd, MT 2

3. Anggota : Dony Novaliendry, S. Kom, M. Kom 3

4. Anggota : Nurindah Dwiyani, S. Pd, MT 4

5. Anggota : Yasdinul Huda, S. Pd, MT 5

iii

Page 4: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

MOTTO DAN PERSEMBAHAN

MOTTO

Sukses tidak diukur dari posisi yang dicapai seseorang dalam hidup, tetapi diukur

dari kesulitan-kesulitan yang berhasil diatasi ketika berusaha meraih sukses.

Adakah hal yang lebih menyedihkan daripada pekerjaan yang

belum selesai? Ada, yaitu pekerjaan yang tidak pernah dimulai.

Anything is possible if you really want to!

Sesungguhnya sesudah kesulitan itu ada kemudahan. (QS. Al-Insyiroh: 6)

Dan bahwasanya seorang manusia tiada memperoleh selain apa yang telah

diusahakannya. (QS. An- Najm : 39)

iv

Page 5: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

PERSEMBAHAN

Karya ini ku persembahkan untuk:

1. Ibu dan Ayah, yang selalu membimbingku dan memberikan doa serta

motivasi tanpa lelah,

2. Keluarga besarku, yang telah memberikan pengertian, bantuan dan

dukungan selama ini,

3. Teman seperjuanganku, Keluargaku “BJJ 09”, Teman, kakak, adik di FTR

09”, Fotocopy Andeslim beserta uda-udanya, semoga Allah membalas

kebaikan kalian semua amin..

4. Teman, sahabat yang sudah dianggap sebagai keluarga sendiri Nadia

(Gapai cita-citamu, JEPANG !!!), Yosi Azwan (Master, tarimo kasih

banyak :D), ferica, Eel, ica, mbah Drubicza, kak Rossi, Ayu, Rica Amelia,

nelma, pipit (bu’ Alumni), rifka, kak Fitri dan bang Tata, nur, leni,

terima kasih *salam hormat.

5. Almamaterku UNP khususnya Fakultas Teknik yang menjadi

kebanggaanku.

6. Dan semua teman baik yang kenal maupun yang tiba-tiba kenal

mendadak hehehe.. terima kasih banyak..

Silaturahim with me ya.. @Facebook : Riri Maiyuliani @Email :[email protected] @Twitter :Maymunah99 @Blog :ririmaiyuliani.wordpress.com

Page 6: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

SURAT PERNYATAAN

Dengan ini Saya menyatakan bahwa Skripsi ini benar-benar karya Saya

sendiri. Sepanjang pengetahuan Saya tidak terdapat karya atau pendapat yang

ditulis atau diterbitkan orang lain kecuali sebagai acuan atau kutipan dengan

mengikuti tata penulisan ilmiah yang lazim.

Padang, Januari 2012

Yang menyatakan,

Riri Maiyuliani

vi

Page 7: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

ABSTRAK

Riri Maiyuliani: Perancangan Sistem Informasi Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota

Peran perpustakaan sebagai salah satu sarana untuk dapat mengakses

berbagai sumber ilmu pengetahuan menuntut adanya kemudahan proses peminjaman dan pengembalian buku serta data buku. Selama ini komputer yang ada di perpustakaan pada SMP Negeri 1 Kec. Mungka, Kab. Lima Puluh Kota, digunakan sebagai alat untuk mencetak kartu dan surat-surat lainnya. Proses peminjaman, pengembalian atau aktivitas transaksi perpustakaan masih dan belum memanfaatkan komputer yang ada. Dengan teknologi komputer serta aplikasi software yang mendukung, diharapkan dapat menggantikan sistem pustaka lama yang masih manual menjadi sistem yang terkomputerisasi untuk memudahkan proses transaksi yang berhubungan dengan perpustakaan. Penelitian ini merupakan jenis penelitian pengembangan perancangan aplikasi. Penelitian pengembangan adalah penelitian yang dilakukan untuk menemukan dan mengembangkan suatu prototipe baru atau yang sudah ada dalam rangka menyempurnakan dan mengembangkan sehingga, diperoleh hasil yang lebih baik. Dari hasil penelitian pengembangan aplikasi ini, mempermudah proses transaksi yang berhubungan dengan perpustakaan yaitu, proses peminjaman, pengembalian dan data buku yang tadinya menggunakan cara manual menjadi sistem yang terkomputerisasi.

Kata Kunci: Perancangan Sistem Informasi, Perpustakaan, Manual, Aplikasi Software

Page 8: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

KATA PENGANTAR

Puji syukur kehadirat Allah SWT atas petunjuk dan hidayah-Nya sehingga tugas

akhir ini dapat terselesaikan dengan baik. Keberhasilan penyusunan tugas akhir

ini tidak terlepas dari bantuan dan dukungan dari berbagai pihak. Oleh karena itu,

dalam kesempatan ini penulis mengucapkan terima kasih kepada:

1. Bapak Drs. H. Ganefri, M. Pd, Ph. D selaku Dekan Fakultas Teknik.

2. Bapak Drs. Putra Jaya, MT dan Bapak Yasdinul Huda, S. Pd, MT selaku

Ketua Jurusan dan Sekretaris Jurusan Teknik Elektronika.

3. Bapak Muhammad Adri, S. Pd, MT selaku Ketua Program Studi

Pendidikan Teknik Informatika, sekaligus sebagai pembimbing I yang

telah memberikan bimbingan, meluangkan waktu, fikiran sehingga

penulis bisa menyelesaikan tugas akhir ini.

4. Bapak Dony Novaliendry, S. Kom, M. Kom selaku pembimbing II yang

telah memberikan bimbingan, waktu dan fikiran sehingga penulis bisa

menyelesaikan Tugas Akhir ini.

5. Bapak Drs. Efrizon, MT, Ibu Nurindah Dwiyani, S. Pd, MT, Bapak

Yasdinul Huda, S. Pd, MT selaku penguji Tugas Akhir.

6. Seluruh staf pengajar, tenaga labor, tenaga administrasi Jurusan Teknik

Elektronika.

7. Bapak Asri, S. Pd selaku kepala sekolah SMP Negeri 1 Kec. Mungka,

yang telah memberikan izin untuk melakukan penelitian disekolah.

Page 9: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

8. Seluruh guru dan karyawan tata usaha serta karyawan perpustakaan SMP

Negeri 1 Kec. Mungka.

9. Semua pihak yang tidak dapat penulis sebutkan satu per satu, yang telah

membantu penyusunan tugas akhir ini.

Penulis menyadari bahwa dalam penyusunan tugas akhir ini masih banyak

kekurangan. Saran dan kritik yang membangun akan penulis terima demi

perbaikan penyusunan di masa yang akan datang. Akhir kata, semoga tugas akhir

ini dapat bermanfaat bagi yang berkepentingan.

Padang, Januari 2012

Penulis

Page 10: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

DAFTAR ISI

Halaman

HALAMAN JUDUL ...................................................................................... i

PERSETUJUAN ............................................................................................ ii

PENGESAHAN ........................................................................................... iii

PERSEMBAHAN ........................................................................................ iv

SURAT PERNYATAAN ............................................................................. vi

ABSTRAK .................................................................................................. vii

KATA PENGANTAR ................................................................................ viii

DAFTAR ISI ................................................................................................. x

DAFTAR TABEL ..................................................................................... xiii

DAFTAR GAMBAR .................................................................................. xiv

DAFTAR LAMPIRAN .................................................................................xix

BAB I PENDAHULUAN

A. Latar Belakang Masalah ........................................................... 2

B. Identifikasi Masalah .................................................................. 3

C. Batasan Masalah ........................................................................ 3

D. Rumusan Masalah ..................................................................... 4

E. Tujuan Penelitian ....................................................................... 4

F. Kegunaan Penelitian .................................................................. 5

G. Metodologi Penelitian ..................................................................5

Page 11: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

BAB II LANDASAN TEORI

A. Pengertian Sistem ..................................................................... 8

B. Pengertian Informasi ................................................................10

C. Pengertian Sistem Informasi .................................................... 11

D. Siklus Hidup Pengembangan Sistem (SDLC) .......................... 12

E. Konsep Dasar Tentang Jaringan ............................................... 15

F. Konsep Dasar Tentang Perpustakaan ....................................... 15

1. Pengertian Perpustakaan Sekolah ....................................... 15

2. Fungsi Perpustakaan Sekolah ............................................ 16

3. Klasifikasi Buku Perpustakaan .......................................... 17

G. Alat Bantu Pengembangan Sistem .......................................... 20

1. Aliran Sistem Informasi (ASI) .......................................... 20

2. Context Diagram dan Data Flow Diagram (DFD) ............ 21

3. Entity Relationship Diagram (ERD) ................................. 23

4. Program Flowchart (Aliran Program) ............................... 24

H. Konsep Dasar Database MySQL 25

I. Konsep Dasar Bahasa Pemrograman Java ............................... 28

1. Sekilas Tentang Java ......................................................... 28

2. Keuntungan Menggunakan Java ........................................ 32

3. Integrated Development Environment (IDE) NetBeans ..... 34

4. Sekilas Tentang XAMPP..................................................... 35

BAB III ANALISIS DAN PERANCANGAN SISTEM

A. Jenis Penelitian ........................................................................ 40

B. Analisis Sistem Yang Sedang Berjalan .................................... 40

C. Aliran Sistem Informasi (ASI) Yang Sedang Berjalan ............. 41

D. Usulan Sistem Baru ................................................................. 42

E. Desain Sistem .......................................................................... 43

1. Desain Global ................................................................... 44

a. Aliran Sistem Informasi Perpustakaan Baru . .............. 44

Page 12: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

b. Context Diagram ......................................................... 46

c. Data Flow Diagram (DFD) Level 0 ............................ 47

d. Entity Relationship Diagram (ERD) ............................ 50

e. Desain File .................................................................. 52

f. Struktur Program ......................................................... 55

2. Desain Terinci .................................................................. 56

a. Desain Output ............................................................. 57

b. Desain Input ................................................................ 58

c. Logika Program (Flowchart) ...................................... .61

BAB IV IMPLEMENTASI SISTEM

A. Perancangan Implementasi Sistem ........................................... 71

B. Hasil Uji Coba dan Pembahasan .............................................. 72

1. Program Server ................................................................. 72

a. Tampilan Login ..............................................................72

b. Menu Kepustakaan .......................................................118

c. MenuLaporan................................................................135

2. Program Client ...................................................................149

BAB V PENUTUP

A. Kesimpulan ........................................................................... 152

B. Saran-saran ............................................................................ 153

DAFTAR PUSTAKA

LAMPIRAN

Page 13: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

DAFTAR TABEL

Tabel Halaman

1. Simbol-simbol Aliran Sistem Informasi (ASI) ......................................... .... 21

2. Simbol-simbol Data Flow Diagram (DFD) .............................................. .... 22

3. Aturan Umum Penulisan Data Flow Diagram (DFD) .............................. .... 23

4. Simbol-simbol Entity Relationship Diagram (ERD) ................................. ..... 23

5. Simbol-simbol Flowchart ........................................................................ ..... 24

6. Fungsi MySQL ........................................................................................ ..... 28

7. Desain File Buku ..................................................................................... ..... 52

8. Desain File Kategori Buku ...................................................................... ..... 53

9. Desain File Peminjaman Buku ................................................................ ..... 53

10. Desain File Anggota ................................................................................ ..... 54

11. Desain File User ...................................................................................... ..... 54

Page 14: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

DAFTAR GAMBAR

Gambar Halaman

1. Karakteristik Sistem. .................................................................................. ..... 10

2. Siklus Informasi ........................................................................................ ..... 11

3. Siklus Hidup Pengembangan Sistem ......................................................... ..... 13

4. Aliran Proses Kompilasi dan Eksekusi Program Java ................................ ..... 33

5. Tampilan Java NetBeans 6.8 ..................................................................... ..... 35

6. Tampilan Home XAMPP ............................................................................ ..... 39

7. Aliran Sistem Informasi (ASI) Lama Perpustakaan SMP Negeri 1

Kec. Mungka ............................................................................................. ..... 43

8. Aliran Sistem Informasi (ASI) Baru Perpustakaan SMP Negeri 1

Kec. Mungka ............................................................................................. ..... 45

9. Context Diagram........................................................................................ ..... 47

10. Data Flow Diagram (DFD) Level 0 ........................................................... ..... 49

11. Entity Relationship Diagram (ERD) ........................................................... ..... 50

12. Struktur Program........................................................................................ ..... 56

13. Desain Output Laporan Buku ..................................................................... ..... 57

14. Desain Output Laporan Peminjaman .......................................................... ..... 57

15. Tampilan Login .......................................................................................... ..... 58

16. Desain Input Kategori Buku ....................................................................... ..... 58

17. Desain Input Buku ..................................................................................... ..... 59

18. Desain Input Data Anggota Pustaka ........................................................... ..... 59

Page 15: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

19. Desain Input Data Peminjaman Buku ......................................................... ..... 60

20. Desain Input Data Pengembalian Buku ...................................................... ..... 60

21. Desain Tampilan Pencarian Buku ............................................................... ..... 61

22. Flowchart Menu Utama ............................................................................. ..... 62

23. Flowchart Kategori Buku ........................................................................... ..... 63

24. Flowchart Buku ......................................................................................... ..... 64

25. Flowchart Anggota Pustaka ....................................................................... ..... 65

26. Flowchart Peminjaman Buku ..................................................................... ..... 66

27. Flowchart Pengembalian Buku .................................................................. ..... 67

28. Flowchart Laporan Buku ........................................................................... ..... 68

29. Flowchart Laporan Peminjaman Buku ....................................................... ..... 69

30. Tampilan Login .......................................................................................... ..... 72

31. Tampilan Menu Utama............................................................................... ..... 75

32. Tampilan Konfirmasi Tombol Keluar ......................................................... ..... 76

33. Tampilan Menu File Kategori Buku ........................................................... ..... 77

34. Tampilan Kotak Dialog Konfirmasi Tombol Simpan Pada Menu File

Kategori Buku ............................................................................................ ..... 79

35. Tampilan Kotak Dialog Konfirmasi Data Berhasil disimpan ...................... ..... 79

36. Tampilan Menu Kategori Buku Setelah Proses Simpan Data ...................... ..... 80

37. Tampilan Proses Mengubah Data Pada Menu File Kategori Buku .............. ..... 81

38. Tampilan Kotak Dialog Konfirmasi Data Beerhasil diubah ........................ ..... 83

39. Tampilan Menu Kategori Buku Setelah Proses Ubah ................................. ..... 84

40. Tampilan Proses Penghapusan Data Pada Menu File Kategori Buku .......... ..... 85

Page 16: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

41. Tampilan Kotak Dialog Data Berhasil disimpan ......................................... ..... 86

42. Tampilan Menu File Kategori Buku Setelah Proses Hapus ........................ ..... 87

43. Tampilan Proses Reset Data Pada Menu File Kategori Buku ..................... ..... 88

44. Tampilan Proses Keluar Pada Menu File Kategori Buku ........................... ..... 89

45. Tampilan Menu File Buku ......................................................................... ..... 90

46. Tampilan Proses Penginputan Data Buku .................................................. ..... 91

47. Tampilan Kotak Dialog Data Berhasil disismpan Pada Menu File

Buku ......................................................................................................... ..... 93

48. Tampilan Menu Proses Simpan Data Buku ................................................ ..... 94

49. Tampilan Kotak Dialog Proses Ubah Data Pada Menu File Buku ............... ..... 95

50. Tampilan Kotak Dialog Data Berhasil diubah ........................................... ..... 97

51. Tampilan Proses Ubah Data Pada Menu File Buku .................................... ..... 98

52. Tampilan Kotak Dialog Hapus Data Buku ................................................. ..... 99

53. Tampilan Kotak Dialog Data Berhasil dihapus .......................................... .... 100

54. Tampilan Proses Hapus Data Pada Menu File Buku .................................. .... 101

55. Tampilan Kotak Dialog Reset Data Buku .................................................. .... 102

56. Tampilan Kotak Dialog Keluar Data Buku ................................................ .... 103

57. Tampilan Menu File Anggota Pustaka ....................................................... .... 104

58. Tampilan Kotak Dialog Simpan Data Anggota .......................................... .... 107

59. Tampilan Koatak Dialog Data Anggota Berhasil disimpan ........................ .... 108

60. Tampilan Proses Simpan Menu File Anggota Pustaka ............................... .... 109

61. Tampilan Kotak Dialog Ubah Data Anggota ............................................. .... 111

62. Tampilan Kotak Dialog Data Anggota Berhasil Diubah ............................ .... 111

Page 17: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

63. Tampilan Proses Ubah Data Anggota Pustaka ........................................... .... 112

64. Tampilan Kotak Dialog Proses Hapus Data Anggota Pustaka .................... .... 113

65. Tampilan Kotak Dialog Data Anggota Pustaka Berhasil dihapus ............... .... 114

66. Tampilan Proses Hapus Data Anggota Pustaka .......................................... .... 115

67. Tampilan Proses Reset Data Anggota Pustaka ........................................... .... 116

68. Tampilan Kotak Dialog Proses Keluar File Menu Data Anggota

Pustaka ..................................................................................................... .... 117

69. Tampilan Menu Kepustakaan Peminjaman Buku ...................................... .... 118

70. Tampilan Kotak Dialog Proses Simpan Pada Data Peminjaman Buku

.................................................................................................................. .... 120

71. Tampilan Proses Simpan Data Peminjaman Buku ..................................... .... 121

72. Tampilan Proses Ubah Data Peminjaman Buku ......................................... .... 122

73. Tampilan Kotak Dialog Proses Hapus Data Peminjaman Buku ................. .... 124

74. Tampilan Proses Hapus Data Peminjaman Buku ....................................... .... 124

75. Tampilan Proses Reset Data Peminjaman Buku ........................................ .... 125

76. Tampilan Proses Keluar Data Peminjaman Buku ....................................... .... 126

77. Tampilan Menu Kepustakaan Pengembalian Buku .................................... .... 127

78. File Menu Laporan Buku .......................................................................... .... 135

79. Tampilan Laporan Buku ............................................................................ .... 136

80. File Menu Laporan Peminjaman Buku ....................................................... .... 137

81. Tampilan Laporan Peminjaman Buku ....................................................... .... 138

82. File Menu Laporan Peminjaman Buku/ 3Bulan .......................................... .... 139

83. Halaman Tampilan Laporan Peminjaman Buku/ 3 Bulan ........................... .... 142

Page 18: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

84. File Menu Laporan Peminjaman Buku/ 6 Bulan ......................................... .... 143

85. Halaman Tampilan Laporan Peminjaman Buku/ 6 Bulan ........................... .... 146

86. File Menu Laporan Peminjaman Buku/ Tahun ........................................... .... 146

87. Halaman Tampilan Laporan Peminjaman Buku/ Tahun .............................. .... 148

88. Tampilan Program Client Cari Buku .......................................................... .... 149

Page 19: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

DAFTAR LAMPIRAN

Lampiran Halaman

1. Lampiran 1. Listing Program Login .............................................................. .... 157

2. Lampiran 2. Listing Program Menu Utama .................................................. .... 160

3. Lampiran 3. Listing Program Kategori Buku ................................................. .... 162

4. Lampiran 4. Listing Program Buku ............................................................... .... 171

5. Lampiran 5. Listing Program Anggota Pustaka ............................................. .... 183

6. Lampiran 6. Listing Program Peminjaman Buku .......................................... .... 203

7. Lampiran 7. Listing ProgramPengembalian Buku ........................................ .... 207

8. Lampiran 8. Listing Program Laporan Buku ................................................. .... 214

9. Lampiran 9. Listing Program Laporan Peminjaman Buku/ Bulan .................. .... 215

10. Lampiran 10. Listing Program Laporan Peminjaman Buku/ 3Bulan .............. .... 217

11. Lampiran 11. Listing Program Laporan Peminjaman Buku/ 6Bulan ............. .... 220

12. Lampiran 12. Listing Program Laporan Peminjaman Buku/ Tahun .............. .... 223

13. Lampiran 13. Listing Program Pencarian Buku ............................................. .... 225

Page 20: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

BAB I

PENDAHULUAN

A. Latar Belakang Masalah

Ilmu pengetahuan dan teknologi selalu mengalami perkembangan secara

dinamis, salah satu dari sekian banyak perkembangan teknologi adalah komputer.

Komputer sebagai alat bantu manusia memiliki kelebihan diantaranya kecepatan,

keakuratan, serta keefisienan dalam pengolahan data dibandingkan dengan sistem

manual.

Pengolahan data menjadi terkomputerisasi inilah yang sangat dibutuhkan

untuk membantu dalam penyampaian informasi sacara cepat tepat dan akurat.

Komputer sudah merambat dalam berbagai bidang, baik dalam dunia kerja

maupun dunia pendidikan.

Dalam institusi pendidikan selalu membutuhkan sistem untuk

mengumpulkan, mengelola, menyimpan, melihat kembali dan menyalurkan

informasi. Komputer merupakan salah satu sarana yang dapat membantu kegiatan

tersebut. Hasilnya sistem informasi berdasarkan komputer akan mempunyai nilai

lebih dari pada sistem yang diolah secara manual, seperti pada suatu organisasi

yang memiliki jumlah data cukup banyak maka perlu penanganan khusus.

Sekolah Menengah Pertama Negeri 1 Kec. Mungka, adalah salah satu

sekolah menengah pertama yang belum memakai sistem informasi berbasis

komputer pada bagian perpustakaannya, di mana sistem pengolahan datanya

sampai saat ini masih bersifat manual.

Page 21: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Sistem manual ini membuat lambatnya informasi data yang dihasilkan. Hal

ini dianggap kurang efisien, karena dalam pencatatan data secara manual akan

membutuhkan waktu yang lama. Sehingga sering terjadi kesalahan dalam

pencarian data. Seperti dalam pencarian data buku, data peminjam, data

pengembalian.

Sistem ini memerlukan sebuah sistem yang dapat mempermudah dalam

pengolahan data buku, data peminjam buku, dan data pengembalian buku dengan

menggunakan sistem komputer yang lebih komprehensif sehingga dapat

menampilkan informasi data-data perpustakan secara cepat, tepat dan akurat.

Berdasarkan latar belakang yang telah dikemukakan di atas maka penulis

merasa tertarik untuk melakukan penelitian dengan judul “PERANCANGAN

SISTEM INFORMASI PERPUSTAKAAN SMP. NEGERI 1 KEC.

MUNGKA KAB. LIMA PULUH KOTA”.

B. Identifikasi Masalah

Berdasarkan latar belakang masalah yang dikemukakan dapat di

identifikasi masalah sebagai berikut:

1. Sistem pengelolaan data perpustakaan masih manual.

2. Bagaimana merancang sistem informasi dengan menggunakan bahasa

pemrograman Java, Integrated Development Environment (IDE)

NetBeans.

C. Batasan Masalah

Berdasarkan identifikasi masalah, maka batasan masalah dibatasi pada

perancangan sistem informasi perpustakaan pada SMP Negeri 1 Kec. Mungka

Kab. Lima Puluh Kota, yang terdiri dari proses peminjaman dan pengembalian

Page 22: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

buku, data buku, data anggota dan laporan buku dan peminjaman buku dengan

menggunaan bahasa pemrograman Java, Integrated Development

Environment (IDE) NetBeans.

D. Rumusan Masalah

Berdasarkan batasan masalah, maka rumusan masalahnya adalah,

“Bagaimana merancang sistem perpustakaan yang tadinya manual menjadi

sebuah sistem terkomputerisasi dapat memberikan manfaat terutama bagi

anggota perpustakaan dan pegawai pustaka pada SMP Negeri 1 Kec. Mungka,

Kab. Lima Puluh Kota Puluh Kota ? ”.

E. Tujuan Penelitian

Adapun tujuan dari perancangan sistem informasi perpustakaan ini adalah

sebagai berikut :

1. Menggantikan sistem pustaka lama yang masih manual menjadi sistem

yang terkomputerisasi untuk memudahkan proses transaksi yang

berhubungan dengan perpustakaan.

2. Sistem informasi yang baru ini dapat memberikan informasi tentang buku

yang tersedia pada perpustakaan SMP Negeri 1 Kec. Mungka.

3. Sistem Informasi yang baru ini dapat memudahkan pekerjaan pegawai

pustaka dalam melakukan transaksi peminjaman, pengembalian buku dan

menginvetarisasi buku-buku perpustakaan

F. Kegunaan Penelitian

Adapun kegunaan dari perancangan sistem informasi perpustakaan ini

adalah sebagai berikut :

Page 23: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

1. Bagi anggota perpustakaan

Memudahkan proses peminjaman, pengembalian buku dan bisa

mengetahui dengan mudah buku yang ada diperpustakaan.

2. Bagi pegawai pustaka

a. Memudahkan dalam proses pencatatan transaksi kepustakaan

b. Tidak memerlukan arsip berupa kertas yang banyak

c. Memudahkan mendata anggota pustaka

3. Bagi Guru

Dengan adanya kemudahan dalam proses peminjaman buku, maka

kegiatan PBM (Proses Belajar Mengajar) jadi lancar karena ditunjang oleh

buku-buku yang sesuai dengan pelajaran yang diajarkan.

G. Metodologi Penelitian

Untuk memperoleh data-data sehubungan dengan penulisan tugas akhir

ini penulis melakukan beberapa penelitian yaitu:

1. Penelitian Lapangan (Field Research)

Penelitian lapangan (Field Research) dilakukan dengan cara

meninjau langsung objek yang diteliti agar tercapainya tujuan dan hasil

yang maksimal. Adapun sistematikanya adalah sebagai berikut :

a. Observasi

Observasi merupakan cara mengumpulkan data dengan melakukan

pengamatan langsung dan disampaikan sebagai dasar dalam merancang

sistem informasi yang nantinya akan menunjang dalam pembuatan

sistem informasi yang baru.

Page 24: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

b. Wawancara

Wawancara adalah mengumpulkan data dengan cara komunikasi

langsung dengan pihak yang bersangkutan (pegawai pustaka dan

beberapa siswa) agar mendapatkan suatu hasil rancangan dan informasi

yang nantinya akan menjadi penunjang dalam perancangan sistem.

2. Penelitian kepustakaan (Library Research)

Penelitian kepustakaan adalah penelitian yang dilakukan dengan

mempelajari buku-buku, literatur-literatur dan sumber bacaan lainnya

yang erat hubungannya dengan penelitian yang dilakukan.

3. Penelitian Laboratorium (Laboratory Research)

Penelitian laboratorium (Laboratory Research) adalah penelitian

yang dilakukan di dalam pembuatan program, pengetikan, pengeditan

serta menguji rancangan sesuai dengan kebutuhan. Perangkat yang

digunakan untuk aplikasi ini adalah sebagai berikut :

a. Hardware (perangkat keras) yang digunakan adalah 1 unit laptop

dengan spesifikasi sebagai berikut :

1. Processor Intel Core ™ 2 Duo

2. Memory RAM : 3.00 GB

3. Monitor 15”

4. Keyboard

5. Mouse

Page 25: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

b. Software (perangkat lunak) yaitu :

1. Windows Vista Home Premium

2. Microsoft Office Word

3. Software JAVA NetBeans IDE 6.8

4. Software DataBase MySQL

5. Tool XAMPP

6. Microsoft Visio

Page 26: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

BAB II

LANDASAN TEORI

A. Pengertian Sistem

Pada dasarnya, sistem berasal dari bahasa Yunani systema yang berarti

kesatuan, yakni keseluruhan dari bagian-bagian yang mempunyai hubungan

satu sama lain.

Menurut Jogiyanto (2005: 1) sistem adalah “suatu jaringan kerja dari

prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk

melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu”.

Lebih lanjut, Menurut Leman (1998: 2) “Sistem terdiri dari komponen-

komponen yang saling berkaitan dan bekerja sama untuk mencapai suatu

tujuan. Sistem terdiri dari sistem alamiah (sistem tata surya, sistem galaksi)

dan sistem yang dibuat manusia (sistem penjualan, sistem akuntansi)”.

Jadi, dari beberapa pengertian diatas maka sistem adalah sekumpulan

unsur/ elemen yang saling berkaitan dan saling mempengaruhi dalam

melakukan kegiatan bersama untuk mencapai suatu tujuan. Sebagai contoh,

dalam sistem komputer terdapat software (perangkat lunak), hardware

(perangkat keras), dan brainware (sumber daya manusia).

Karakteristik sistem:

1. Komponen-komponen Sistem ( Component )

Komponen sistem yang saling bekerja sama untuk membentuk suatu

kesatuan.

Page 27: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

2. Batasan Sistem ( Boundary )

Merupakan daerah yang membatasi antara suatu sistem dengan sistem

yang lainnya atau lingkungan luarnya. Batas suatu sistem menunjukkan

ruang lingkup (scope) dari sistem tersebut.

3. Lingkungan Luar Sistem ( Environment )

Lingkungan luar sitem adalah apapun diluar batas sistem yang

mempengaruhi operasi sistem dan dapat bersifat menguntungkan atau

merugikan sistem.

4. Penghubung Sistem ( Interface )

Merupakan media penghubung antara satu subsistem dengan subsistem

lainnya dan dapat mengintegrasikan sub sistem-sistem yang ada pada

sistem.

5. Masukan Sistem ( Input )

Energi yang dimasukkan ke dalam sistem yang diterima oleh sistem dari

lingkungan luar untuk mencapai tujuan.

6. Keluaran Sistem ( Output )

Hasil dari energi yang telah diolah dan diklasifikasikan menjadi keluaran

yang berguna dari sisa pembuangan, hasil dari sistem dapat berupa

laporan, grafik atau gambar.

7. Pengolahan Sistem ( Proccess )

Bagian yang memproses masukan data menjadi keluaran yang berupa

informasi yang sesuai dengan keinginan penerima.

Page 28: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

8. Sasaran Sistem ( Object )

Sasaran dari sistem sangat menentukan sekali terhadap masukan yang

dibutuhkan sistem dan keluaran yang dihasilkan sistem.

Gambar 1. Karakteristik Sistem Sumber : Yogiyanto (2005: 6)

B. Pengertian Informasi

Informasi ibarat darah yang mengalir di dalam tubuh suatu organisasi

sehingga informasi sangat penting di dalam suatu organisasi. Informasi itu

sendiri adalah data yang diolah menjadi bentuk yang lebih berguna dan lebih

berarti bagi yang menerimanya.

Menurut Yogiyanto (2005: 8) “Informasi merupakan data yang telah

diproses ke dalam suatu bentuk yang mempunyai arti bagi sipenerima dan

mempunyai nilai nyata serta terasa bagi keputusan saat itu atau keputusan

yang akan datang”.

Page 29: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Informasi yang berkualitas ditentukan oleh beberapa faktor, yaitu:

1. Akurat (Accurate)

Informasi harus bebas dari kesalahan-kesalahan, jelas maksudnya karena

pada saat penyampaian dari pengirim ke penerima kemungkinan terjadi

banyak gangguan (noise) dapat mengubah atau merusak informasi.

2. Tepat waktu (Timeliness)

Informasi datang ke penerima tidak boleh terlambat.

3. Relevan (Relevance)

Informasi yang diterima harus bermanfaat. Berarti, informasi tersebut

mempunyai manfaat bagi pemakainya walaupun relevansi informasi untuk

tiap-tiap orang berbeda.

Gambar 2. Siklus Informasi Sumber : Yogiyanto (2005: 9)

C. Pengertian Sistem Informasi

Seperti yang kita ketahui bahwa informasi merupakan hal yang penting

bagi manajemen atau organisasi dalam pengambilan keputusan. Informasi

dapat diperoleh dari sistem informasi (information system). Sistem informasi

Page 30: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

di definisikan oleh Robert A. Leitch dan K. Roscoe Davis dalam (Yogiyanto,

2005: 11) “Sistem Informasi adalah suatu sistem di dalam suatu organisasi

yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung

operasi, bersifat manajerial dan kegiatan strategi dari suatu organisasi dan

menyediakan pihak luar tertentu dengan laporan yang diperlukan”.

Dari pengertian sistem informasi diatas, maka dapat disimpulkan bahwa,

sistem informasi menyediakan informasi untuk membantu pengambilan

keputusan manajemen, operasi perusahaan dari hari ke hari dan informasi

yang layak untuk pihak luar perusahaan.

D. Siklus Hidup Pengembangan Sistem (System Development Life Cycle /

SDLC)

SDLC adalah langkah-langkah (pedoman) yang harus diikuti untuk

mengembangkan dan merancang sebuah sistem. Siklus hidup pengembangan

sistem ini adalah seperti kompas di dalam merancang sistem. Adapun

langkah-langkah dari siklus hidup pengembangan sistem dapat dilihat pada

gambar. 3 :

Page 31: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Kebijakan dan Perencanaan Sistem

Analisis Sistem

Desain (perancangan) Sistem secaraumum

Desain (perancangan) Sistem terinci

Seleksi Sistem

Implementasi (penerapan) Sistem

Perawatan Sistem

Awal proyek sistem

Manajemen sistem

Pengembangan sistem

Gambar 3 . Siklus Hidup Pengembangan Sistem Sumber : Jogiyanto (2005: 52)

Berdasarkan gambar 3, dapat dijelaskan sebagai berikut :

1. Tahap Kebijakan dan Perencanaan Sistem

Merupakan tahap awal dalam siklus pengembangan sistem, sebelum

suatu sistem informasi dikembangkan, umumnya terlebih dahulu dimulai

dengan adanya suatu analisis, kebijakan dan perencanaan untuk

mengembangkan sistem itu. Tanpa adanya perencanaan sistem yang baik,

pengembangan sistem tidak akan dapat berjalan sesuai dengan yang

diharapkan. Perencanaan sistem (system planning) merupakan pedoman

untuk melakukan pengembangan sistem.

Page 32: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

2. Tahap Analisis Sistem

Analisis sistem adalah penguraian dari suatu sistem informasi yang utuh

kedalam bagian-bagian komponennya dengan maksud untuk

mengidentifikasi dan mengevaluasi permasalahan-permasalahan,

kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-

kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-

perbaikannya. Analisis sistem dilakukan setelah tahap perencanaan sistem

dan sebelum tahap disain sistem. Pada tahap ini diberikan penilaian terhadap

sistem yang lama dan dipelajari kelemahan yang ada serta mencari beberapa

alternatif pemecahan masalah. Di dalam tahap ini terdapat langkah-langkah

dasar yang harus dilakukan yaitu:

a. Identify, yaitu mengidentifikasi masalah, meliputi :

b. Understand, yaitu memahami kerja dari sistem yang ada.

c. Analyse, yaitu menganalisis sistem.

d. Report, yaitu membuat laporan hasil analisis

3. Tahap Perancangan Sistem Secara Umum

Setelah tahap analisis dilakukan, maka dilakukan pengembangan sistem

secara umum dan menjelaskan informasi yang dihasilkan sistem tersebut.

Tujuan tahap ini adalah untuk memberikan gambaran umum kepada user

tentang sistem yang baru. Desain sistem secara umum mengidentifikasi

komponen-komponen sistem informasi yang akan didesain secara rinci.

Page 33: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

4. Tahap Perancangan Sistem Secara Terinci

Tahap ini merupakan perincian dari sistem secara umum, disain sistem

secara umum ditransformasikan ke dalam bentuk yang lebih spesifik untuk

membangun sebuah sistem. Desain terinci dimaksudkan untuk pemrogram

komputer dan ahli teknik lainnya yang akan mengimplementasi sistem.

Tujuan dari tahap ini adalah mendesain sistem baru yang dapat

menyelesaikan masalah-masalah yang dihadapi organisasi secara logis.

5. Tahap Seleksi Sistem

Tahap ini mencari beberapa penyebab permasalahan pada sistem lama

dan memilih satu pemecahan masalah dari beberapa alternatif yang ada.

6. Tahap Implementasi Sistem

Tahap ini merupakan tahap dimana suatu sistem siap untuk

dioperasikan.

7. Tahap Perawatan Sistem

Tahap ini adalah merupakan tahap akhir dalam sebuah pengembangan

sistem.

E. Konsep Dasar Tentang Perpustakaan

1. Pengertian Perpustakaan Sekolah

Perpustakaan sekolah pada hakekatnya adalah sistem pengelolaan

informasi oleh sumber daya manusia yang terdidik dalam bidang

perpustakaan, dokumentasi, dan informasi.

Menurut Lasa Hs (2007: 20) menyatakan bahwa “perpustakaan

merupakan sistem informasi yang didalamnya terdapat aktivitas

Page 34: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

pengumpulan, pengolahan, pengawetan, pelestarian, penyajian, dan

penyebaran informasi”.

2. Fungsi Perpustakaan Sekolah

Secara umum fungsi perpustakaan memiliki fungsi sebagai berikut:

a. Fungsi Informasi

Perpustakaan menyediakan berbagai informasi yang meliputi bahan

tercetak, terekam maupun koleksi lainnya.

b. Fungsi Pendidikan

Perpustakaan menyediakan berbagai informasi agar pengguna

perpustakaan mendapat kesempatan untuk mendidik diri sendiri secara

berkesinambungan, mempertinggi kreativitas dan intelektualitas,

mempertajam sikap social dan mempercepat penguasaan ilmu dan

teknologi baru.

c. Fungsi Kebudayaan

Meningkatkan mutu kehidupan dengan memanfaatkan berbagai

informasi sebagai rekaman budaya bangsa untuk meningkatkan taraf hidup

dan mutu kehidupan manusia baik secara individu maupun kelompok serta

mengembangkan sikap dan sifat hubungan manusia yang positif serta

menunjang kehidupan antar budaya secara harmonis.

d. Fungsi Rekreasi

Menciptakan kehidupan yang seimbang antara jasmani dan rohani,

mengembangkan minat rekreasi pengguna melalui berbagai bacaan dan

Page 35: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

pemanfaatan waktu senggang, menunjang berbagai kegiatan kreatif serta

hiburan yang positif.

e. Fungsi Penelitian

Fungsi penelitian perpustakaan menyediakan berbagai informasi

untuk menunjang kegiatan penelitian. Informasi yang disajikan meliputi

berbagai jenis bentuk informasi sesuai dengan kebutuhan pengguna

pustaka.

f. Fungsi Deposit

Fungsi deposit pustaka berkewajiban menyimpan dan melestarikan

semua karya cetak dan karya rekam yang diterbitkan di wilayah Indonesia.

Fungsi perpustakaan sekolah diharapkan berfungsi sebagai media

pendidikan, tempat belajar, penelitian sederhana, pemanfaatan teknologi

informasi, kelas alternatif dan sumber informasi.

3. Klasifikasi Buku Perpustakaan

a. Klasifikasi Persepuluh Dewey Decimal Classification (DCC)

Klasifikasi Persepuluh Dewey Decimal Classification (DCC)

diciptakan oleh Melvil Dewey pada tahun 1873 dan pertama kali

diterbitkan pada tahun 1876. Dari edisi pertama yang hanya terdiri dari 52

halaman itu sistem ini terus dikembangkan sehingga edisi mutakhir yaitu

edisi 20 diterbitkan tahun 1989 terdiri dari 4 jilid masing-masing untuk

pendahuluan, bagan dan indeks relatif yang tebalnya lebih dari 52 kali dari

edisi pertama. DCC adalah salah satu klasifikasi yang paling banyak

dipakai diseluruh dunia dan sudah diterjemahkan kedalam berbagai

Page 36: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

bahasa. Disamping edisi lengkapnya, DCC juga menerbitkan edisi ringkas

yang dimulai pada tahun 1894 dan telah mencapai edisi ke 12 pada tahun

1989. Edisi ini diterbitkan untuk perpustakaan- perpustakaan yang tidak

terlalu besar koleksinya.

b. Prinsip Dasar Desimal Dewey Decimal Classification (DCC)

1) Klasifikasi persepuluh Dewey pertama-tama membagi ilmu pengetahuan

kedalam 10 kelas utama. Kemudian masing-masing kelas utama itu dibagi

lagi kedalam 10 devisi, dan selanjutnya masing-masing divisi dibagi

kedalam 10 seksi. Sehingga dengan demikian, DCC masih memungkinkan

diadakannya pembagian lebih lanjut daripada seksi menjadi sub-seksi, dari

sub-seksi menjadi sub-sub-seksi dan seterusnya. Oleh karena pola

pencarian ilmu pengetahuan ang berdasarkan kelipatan 10 inilah maka

DCC disebut klasifikasi persepuluh atau klasifikasi decimal.

2) Kelas Utama (Main Classes)

Sepuluh kelas utama diberi nomor urut 0,1,2,3,4,5,6,7,8, dan 9 akan

tetapi didalam praktek selalu dituliskan dalam bentuk notasi dengan tiga

bilangan dan tidak boleh kurang, dimana no kelas utama memempati

posisi pertama. Sepuluh kelas utama tersebut biasanya dinamakan

ringkasan pertama (First Summary) yang terdiri dari

a) Kelas Utama (Ringkasan I)

000 – Karya Umum

100 – Filsafat

200 – Agama

Page 37: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

300 – Ilmu Sosial

400 – Bahasa

500 – Ilmu Penetahuan Murni

600 – Ilmu Pengetahuan Terapan/ Teknologi

700 – Seni, Olahraga

800 – Kesusateraan

900 – Sejarah, Geografi

b) Devisi (Devision)

600 – Ilmu Terapan/ Teknologi

610 – Ilmu Kedokteran

620 – Ilmu Teknik

630 – Ilmu Pertanian dan Perternakan

640 – Kesejahteraan Rumah Tangga

650 – Manajemen

660 – Industri dan Teknologi Kimia

670 – Pengolahan Bahan Industri dan Pabrik

680 – Industri- industri Lain

690 – Bangunan

c) Seksi (Sections)

620 – Ilmu Teknik

621- Teknik Mesin

622 – Teknik Pertambangan

623 – Teknik Militer/ Perkapalan dan Pelayaran

Page 38: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

624 – Teknik Sipil/ Bangunan

625 – Teknik Perkeretaapian

626 - -

627 – Teknik Bangunan Air

628 – Teknik Kesehatan Lingkungan

629 – Cabang- cabang Teknik

d) Pembagian Lebih Lanjut

612 – Fisiologi Manusia

612.1 – Darah dan Peredaran darah

612. 2 – Pernafasan

…………

612. 8 – Susunan Saraf dan Alat-alat Indera

612.81 – Susunan Saraf dan Alat-alat Indera

G. Alat Bantu Pengembangan Sistem

1. Aliran Sistem Informasi (ASI)

Aliran sistem informasi merupakan bagan alir yang menunjukkan

arus data dari laporan dan formulir termasuk tembusan-tembusannya.

Simbol-simbol yang digunakan antara lain :

Page 39: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Tabel 1. Simbol-simbol Aliran Sistem Informasi (ASI)

2. Context Diagram dan Data Flow Diagram (DFD )

Context Diagram merupakan gambaran secara global atau umum dari

sistem yang dirancang secara logika tanpa mempertimbangkan lingkungan

fisik tempat data itu mengalir atau tempat data itu disimpan.

Jika Context Diagram adalah gambaran umum sistem yang dirancang,

maka Data Flow Diagram (DFD) adalah rincian atau penjelasan dari

Context Diagram. Simbol-simbol yang digunakan dalam pembuatan Context

Diagram dan DFD adalah sama, hanya ada beberapa simbol tambahan

untuk DFD yang dapat dilihat pada tabel 2.

Page 40: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Tabel 2. Simbol-simbol yang digunakan pada Data Flow Diagram (DFD)

Aturan Umum Penggambaran DFD:

a. Tidak boleh menghubungkan eksternal entity lainnya secara langsung.

b. Tidak boleh menghubungkan secara langsung antara data store dengan

data store yang lainnya.

c. Tidak boleh menghubungkan data store dengan eksternal entity secara

langsung.

d. Pada setiap proses harus ada data yang masuk dan keluar demikian juga

sebaliknya.

e. Tidak boleh ada proses dan arus data yang tidak memiliki nama, karena

dapat mengakibatkan arus data.

f. Proses harus mempunyai nama dan nomor

Page 41: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Tabel 3. Aturan Umum Penulisan Data Flow Diagram (DFD)

3. Entity Relathionship Diagram (ERD)

ERD adalah sebuah model konseptual yang mendiskripsikan hubungan

antar penyimpanan. ERD menggunakan sejumlah notasi dan simbol untuk

menggambarkan struktur dan hubungan antar data yaitu:

Tabel 4. Simbol-simbol Entity Relationship Diagram (ERD)

Gambar Keterangan Fungsi

Simbol Entitas Menunjukkan suatu entitas

Simbol satu kesatu atau

one to one

Menunjukkan hubungan satu

kesatu

Simbol satu kebanyak

Atau one to many

Menunjukkan hubungan satu

kebanyak

Simbol banyak

kebanyak atau many to

many

Menunjukkan hubungan banyak

kebanyak

Page 42: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

4. Program Flowchart (Aliran Program)

Program Flowchat merupakan bagan yang menjelaskan secara terinci

langkah-langkah dari proses program. Flowchart dapat dibuat dengan

menggunakan simbol-simbol sebagai berikut:

Tabel 5. Simbol- simbol Program Flowchart

Simbol Keterangan

Simbol input/ output digunakan untuk mewakili data input dan output

Simbol proses untuk mewakili sebuah proses

Simbol garis alir digunakan untuk menunjukan arus dari proses

Simbol conector digunakan untuk menunjukan sambungan dari bagan alir yang terputus di halaman yang sama atau halaman yang berbeda

Simbol keputusan yang digunakan untuk suatu penyelesaian kondisi dalam program

Simbol titik terminal digunakan untuk menunjukan awal dan akhir suatu proses

Page 43: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

H. Konsep Dasar Database MySQL

Database merupakan kumpulan data yang setiap perintahnya

menggunakan SQL. SQL (structured query langunge) merupakan bahasa ANSI

(American National Standard Institute) yang digunakan untuk melakukan

query data pada database. Hampir semua software database

mengimplementasikan bahasa ini sebagai komponen utama dari produknya.

MySQL (My Stucture Query Language) merupakan software RDBMS open

source. Pada awalnya MySQL dikembangkan pada platform sistem operasi

Linux namun kemudian dikembangkan untuk penggunaan pada platform

Windows.

1. Kelebihan MySQL

Sebagai software database dengan konsep database modern, MySQL

memiliki banyak kelebihan antara lain :

a. Protability

MySQL dapat digunakan dengan stabil tanpa kendala, berarti pada

berbagai sistem operasi diantaranya seperti Windows, Linux, Mac OS X

Server, Solaris, Amiga HP-UX dan masih banyak lagi.

b. Open source

MySQL didistribusikan secara open source di bawah lisensi GPL,

sehingga dapat memperoleh menggunakannya secara cuma-cuma tanpa

dipungut biaya sepeserpun.

Page 44: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

c. Multiuser

MySQL dapat digunakan untuk menangani beberapa user dalam

waktu yang bersamaan tanpa mengalami masalah atau konflik. Hal ini

akan memungkinkan sebuah database server MySQL dapat diakses

client secara bersamaan dalam waktu yang bersamaan pula.

d. Performance Tuning

MySQL memiliki kecepatan yang cukup menakjubkan dalam

menangani query sederhana, serta mampu memproses lebih banyak

SQL persatuan waktu.

e. Column Types

MySQL didukung tipe kolom (tipe data) yang sangat kompleks.

f. Command dan Functions

MySQL memiliki operator dan fungsi secara penuh yang

mendukung perintah SELECT dan WHERE dalam query.

g. Scalability dan Limits

Dalam hal batas kemampuan, MySQL terbukti mampu menangani

database dalam skala yang besar dengan jumlah record lebih dari 50

juta dan 60 ribu tabel serta 5 miliar baris. Selain itu batas indeks yang

dapat ditampung mencapai 32 indeks pada setiap tabelnya.

h. Interface

Sama halnya dengan software database lainnya, MySQL memiliki

interface (antarmuka) terhadap berbagai aplikasi dan bahasa

Page 45: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

pemrograman dengan menggunakan fungsi API (Aplication

Programming Interface).

i. Struktur tabel

Struktur tabel MySQL cukup baik, serta cukup fleksibel. Misalnya

ketika menangani Alter Table, dibandingkan database lainnya semacam

PostgreSQL ataupun Oracle.

2. Fungsi MySQL

Ada beberapa fungsi yang digunakan dalam MySQL. Fungsi tersebut

sangat erat kaitannya dengan query SQL. Akan tetapi user tidak dapat

langsung menggunakan perintah SQL pada script PHP. Di sini fungsi MySQL-

lah yang digunakan sebagai penghubung antar SQL sehingga query tersebut

dapat dijalankan pada server dan dapat dilihat hasilnya oleh client.

Fungsi MySQL dapat juga dikatakan sebagai interpreter query karena

setiap user menggunakan query SQL, maka fungsi ini harus diletakkan.

Dengan kata lain query SQL tidak dapat dijalankan tanpa adanya fungsi

MySQL. Fungsi MySQL antara lain seperti pada tabel berikut ini:

Page 46: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Tabel 6 . Beberapa Fungsi MySQL

Fungsi MySQL Penggunaan

mysql_close() Untuk menutup koneksi dengan MySQL

mysql_connect() Untuk membuka koneksi dengan database MySQL

mysql_create_db() Untuk membuat database

mysql_db_name() Untuk menghasilkan hasil data

mysql_db_query() Untuk mengantarkan query MySQL

mysql_error() Untuk menampilkan pesan kesalahan dalam bentuk teks dari server MySQL

mysql_field_name() Menampilkan nama field khusus pada database MySQL

mysql_free_result() Untuk menghasilkan keadaan memori yang bebas

mysql_list_dbs() Untuk menampilkan database di server MySQL

mysql_query() Untuk mengirimkan perintah SQL

I. Konsep Dasar Bahasa Pemograman Java

1. Sekilas Tentang Java

a. Sejarah Java

Java dipelopori oleh James Gosling, Patrick Naughton, Chris

Warth, Ed Frank, dan Mike Sheridan dari Sun Microsystems, Inc pada

tahun 1991. Mereka membutuhkan kurang lebih 18 bulan untuk

membuat versi pertamanya. Bahasa ini pada awalnya disebut “Oak”

Page 47: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

tapi kemudian diubah menjadi “Java” pada tahun 1995 karena nama

Oak telah dijadikan hak cipta dan digunakan sebagai bahasa

pemrograman lainnya. Antara pembuatan Oak pada musim gugur 1992

hingga diumumkan ke publik pada musim semi 1995, banyak orang

yang terlibat dalam desain dan evolusi bahasa ini. Bill Joy, Arthur van

Hoff, Jonathan Payne, Frank Yellin, dan Tim Lindholm merupakan

kontributor kunci yang mematangkan prototipe aslinya.

b. Java Modern

Java telah digunakan dalam banyak hal dan telah membuktikan

keberadaannya pada abad ke 21. Saat ini, Java digunakan bermacam

jenis aplikasi seperti aplikasi embedded, aplikasi keuangan, desktop,

simulasi pesawat, pemrosesan citra, game, aplikasi perusahaan

terdistribusi yang disebut J2EE dan masih banyak lagi.

c. Java Virtual Machine (JVM)

Java Virtual Machine (JVM) merupakan aplikasi sederhana yang

ditulis dalam bahasa C untuk mengeksi program yang ditulis dalam

bahasa Java. Pada saat kompilasi (perubahan dari bahasa tingkat tinggi

ke bahasa lebih rendah), program tersebut diubah menjadi kode byte.

Kemudian pada saat eksekusi, JVM membaca kode byte tersebu dan

mengubahnya menjadi bahasa mesin yang dimengerti oleh sistem

operasi tempat program tersebut dijalankan. Karena JVM sangat

bergantung pada platformnya (bahasa mesin merupakan bahasa level

rendah yang hanya dimengerti oleh suatu mesin tertentu, misalnya Intel,

Page 48: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

tapi tidak dapat dimengerti oleh mesin lain, seperti Macintosh), byte

code ini dapat dibuat untuk terbebas dari kungkungan platform tertentu.

Code byte yang dihasilkan dalam proses kompilasi bahasa Java akan

selalu sama untuk setiap sistem operasi atau jenis mesinnya, tetapi JVM

akan mengubah kode byte tersebut menjadi bahasa mesin tujuannya.

d. Just In Time Compiler (JIT)

Meskipun Java didesain untuk diinterpretasi, secara teknis tidak

ada yang menghalangi Java untuk dikompilasi menjadi bahasa mesin

seperti bahasa-bahasa pemrograman lainnya. Sun menyediakan

kompiler Just In Time Compiler (JIT) untuk mengkompilasi kode byte

itu menjadi bahasa mesinnya pada saat yang bersamaan dengan

eksekusinya. Walaupun demikian, pendekatan JIT ini menghasilkan

kemampuan yang lebih dibandingkan dengan interpretasi biasa.

e. Kelebihan Java

Bahasa pemrograman lain yang telah ada sebelum Java lahir sudah

merupakan bahasa yang baik dan mudah dipelajasi oleh programmer

profesional. Akan tetapi para programmer ini menginginkan sesuatu

yang baru yang memiliki banyak hal yang menyelesaikan masalah

mereka. Utamanya adalah keamanan kode mereka. Hal ini melahirkan

pikiran yang revolusioner untuk menemukan bahasa pemrograman lain

yang disebut Java. Tidak hanya keamanan tapi juga beberapa hal yang

sering disebut sebagai Java-Buzzwords. Kata-kata ini menjelaskan

berbagai fitur tambahan dan beberapa hal yang membuat Java demikian

Page 49: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

sukses dan diterima oleh dunia perangkat lunak. Berikut ini adalah

penjelasan serta keuntungan dari kata-kata tersebut.

f. Sederhana dan Berorientasi Objek

Seperti diuraikan sebelumnya, Java lahir dari suatu pemikiran

mendalam akan bahasa pemrograman yang ada pada saat itu, seperti C

dan C++. Hal ini akan memudahkan programmer profesional untuk

dapat mengerti lebih jelas tentang Java, fungsionalitas, dan lain

sebagainya apabila ia memiliki pengetahuan dasar tentang C++ dan

konsep pemrograman berorientasi objek. Tujuannya agar konsep dasar

dari teknologi Java dapat dimengerti dengan mudah, dan programmer

dapat segera menghasilkan sesuatu sedini mungkin. Tidak hanya ini,

penemu Java memastikan bahwa Java juga bermula dari bahasa

pemrograman dasar yang sudah ada pada saat itu. Kemudian mereka

membuang berbagai fitur yang rumit dan membingungkan.

Bahasa pemrograman Java didesain sejak awal untuk menjadi

bahasa yang berorientasi objek. Setelah kira-kira 30 tahun, akhirnya

teknologi objek menjadi kenyataan dan diterima oleh sebagian besar

komunitas pemrograman. Konsep berorientasi objek memungkinkan

pembuatan software yang kompleks, berbasis network, sehingga dapat

disimpulkan bahwa teknologi Java menghasilkan platform pembuatan

perangkat lunak yang baik dan efisien serta berorientasi objek.

Page 50: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

2. Keuntungan Java

a. Mulai dengan cepat

Java merupakan bahasa pemrograman berorientasi objek, mudah

dipelajari, terutama untuk programmer yang sudah menguasai C atau C++

b. Tulis lebih sedikit program

Jumlah kelas, jumlah metode, dll, menunjukkan bahwa program yang

ditulis dalam bahasa pemrograman Java memiliki jumlah 4 kali lipat lebih

kecil dari program sama yang ditulis dalam bahasa C++

c. Tulis program lebih baik

Bahasa pemrograman Java menganjurkan praktek membuat program

yang baik, dan automatic garbage collection membantu Anda untuk

menghindari kebocoran memori. Orientasi objeknya, arsitektur komponen

JavaBeans, dan jangkauannya yanga luas, API yang mudah diperluas,

memungkinkan Anda menggunakan kode yang ada.

d. Membuat program dengan lebih cepat

Bahasa pemrograman Java lebih mudah dari C++, pemrograman

akan menjadi 2 kali lipa lebih cepat, dengan jumlah baris yang jauh lebih

sedikit

e. Menghindari kebergantungan pada platform tertentu

Anda dapat menjalankan program Anda pada banyak platform dengan

tidak menggunakan library yang ditulis spesifik untuk platform tertentu.

Page 51: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

f. Tulis sekali, jalankan di mana saja

Aplikasi yang ditulis dalam bahasa Java dikompilasi ke dalam kode

byte yang bebas platform, aplikasi yang ditulis dapat jalan secara

konsisten pada platform apa saja.

g. Distribusikan software Anda dengan mudah

Java Web Start, pengguna program Anda akan dapat menggunakan

aplikasi Anda dengan mudah. Sistem pengecekan versi otomatis pada saat

program dimulai menjamin pengguna Anda selalu menjalankan versi

terkini. Apabila versi baru tersedia, Java Web Start akan melakukan

instalasi secara otomatis. Gambar dibawah ini menjelaskan aliran proses

kompilasi dan eksekusi sebuah program Java.

Gambar 4. Aliran Proses Kompilasi dan Eksekusi Program Java

Langkah pertama dalam pembuatan sebuah program berbasis Java adalah

menuliskan kode program pada text editor. Contoh text editor yang dapat

digunakan antara lain: notepad, vi, emacs dan lain sebagainya. Kode program

yang dibuat kemudian tersimpan dalam sebuah berkas berekstensi .java.

Setelah membuat dan menyimpan kode program, kompilasi file yang berisi

kode program tersebut dengan menggunakan Java Compiler. Hasil dari

kompilasi berupa berkas bytecode dengan ekstensi .class. Berkas yang

Page 52: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

mengandung bytecode tersebut kemudian akan dikonversikan oleh Java.

Interpreter menjadi bahasa mesin sesuai dengan jenis dan platform yang

digunakan.

3. Integrated Development Environment (IDE) NetBeans

NetBeans mengacu pada dua hal, yakni platform untuk pengembangan

aplikasi desktop Java, dan sebuah Integrated Development Environment (IDE)

yang dibangun menggunakan platform NetBeans.

Platform NetBeans memungkinkan aplikasi dibangun dari sekumpulan

komponen perangkat lunak moduler yang disebut ‘modul’. Sebuah modul

adalah suatu arsip Java (Java archive) yang memuat kelas-kelas Java untuk

berinetraksi dengan NetBeans Open API dan file manifestasi yang

mengidentifikasinya sebagai modul. Aplikasi yang dibangun dengan modul-

modul dapat dikembangkan dengan menambahkan modul-modul baru. Karena

modul dapat dikembangkan secara independen, aplikasi berbasis platform

NetBeans dapat dengan mudah dikembangkan oleh pihak ketiga secara mudah

dan powerful. Pengembangan NetBeans diawali dari Xelfi, sebuah proyek

mahasiswa tahun 1997 di bawah bimbingan Fakultas Matematika dan Fisika

Universitas Charles, Praha.

Sebuah perusahaan kemudian dibentuk untuk proyek tersebut dan

menghasilkan versi komersial NetBeans IDE hingga kemudian dibeli oleh Sun

Microsystem pada tahun 1999. Sun kemudian menjadikan NetBeans open

source pada bulan Juni tahun 2000. Sejak itu komunitas NetBeans terus

berkembang.

Page 53: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 5. Tampilan Java Netbeans 6.8

J. Sekilas Tentang XAMPP

Kepanjangan dari XAMPP yaitu Apache, PHP, MySQL dan phpMyAdmin.

XAMPP merupakan tool yang menyediakan paket perangkat lunak ke dalam

satu buah paket. Dengan menginstall XAMPP maka tidak perlu lagi

melakukan instalasi dan konfigurasi web server Apache, PHP dan MySQL

secara manual. XAMPP akan menginstalasi dan mengkonfigurasikannya

secara otomatis untuk anda atau auto konfigurasi. Software XAMPP versi ini

terdiri atas:

1. Apache versi 2.0.54

2. MySQL versi 4.1.12

3. PHP versi 5.0.4

4. PhpMyAdmin versi 2.6.2-p11

Page 54: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

1. APACHE

Apache sudah berkembang sejak versi pertamanya. Sampai saat

ditulisnya artikel ini versi terakhirnya yang ada yaitu Apache ver 2.0.54.

Apache bersifat open source, artinya setiap orang boleh menggunakannya,

mengambil dan bahkan mengubah kode programnya.Tugas utama apache

adalah menghasilkan halaman web yang benar kepada peminta,

berdasarkan kode PHP yang dituliskan oleh pembuat halaman web. Jika

diperlukan juga berdasarkan kode PHP yang dituliskan, maka dapat saja

suatu database diakses terlebih dahulu (misalnya dalam MySQL) untuk

mendukung halaman web yang dihasilkan.

2. PHP

Bahasa pemrograman PHP merupakan bahasa pemrograman untuk

mebuat web yang bersifat server-side scripting. PHP memungkinkan kita

untuk membuat halaman web yang bersifat dinamis. PHP dapat dijalankan

pada berbagai macam Operating System (OS), misalnya Windows, Linux

dan Mac OS. Selain Apache, PHP juga mendukung beberapa web server

lain, misalnya Microsoft IIS, Caudium, PWS dan lain-lain.Seperti pernah

disinggung sebelumnya bahwa PHP dapat memanfaatkan database untuk

menghasilkan halaman web yang dinamis. Sistem manajemen database

yang sering digunakan bersama PHP adalah MySQL. Namun PHP juga

mendukung system manajemen Database Oracle, Microsoft Acces,

Interbase, d-Base, PostgreSQL dan sebagainya.

Page 55: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Hingga kini PHP sudah berkembang hingga versi ke 5. PHP 5 mendukung

penuh Object Oriented Programing(OOP), integrasi XML, mendukung

semua ekstensi terbaru MySQL, pengembangan web services dengan SOAP

dan REST, serta ratusan peningkatan kemampuan lainnya dibandingkan versi

sebelumnya. Sama dengan web server lainnya PHP juga bersifat open source

sehingga setiap orang dapat menggunakannya dengan gratis.

3. MySQL

Perkembangannya disebut SQL yang merupakan kepanjangan dari

Structured Query Language. SQL merupakan bahasa terstruktur yang

khusus digunakan untuk mengolah database. SQL pertama kali

didefinisikan oleh American National Standards Institute (ANSI) pada

tahun 1986. MySQL adalah sebuah sistem manajemen database yang

bersifat open source. MySQL adalah pasangan serasi dari PHP. MySQL

dibuat dan dikembangkan oleh MySQL AB yang berada di Swedia.

MySQL dapat digunakan untuk membuat dan mengola database

beserta isinya. Kita dapat memanfaatkan MySQL untuk menambahkan,

mengubah dan menghapus data yang berada dalam database. MySQL

merupakan sisitem manajemen database yang bersifat at relational. Artinya

data-data yang dikelola dalam database akan diletakkan pada beberapa

tabel yang terpisah sehingga manipulasi data akan menjadi jauh lebih cepat.

MySQL dapat digunakan untuk mengelola database mulai dari yang kecil

sampai dengan yang sangat besar. MySQL juga dapat menjalankan

perintah-perintah Structured Query Language (SQL) untuk mengelola

Page 56: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

database-database yang ada di dalamnya. Hingga kini, MySQL sudah

berkembang hingga versi 5. MySQL 5 sudah mendukung trigger untuk

memudahkan pengelolaan tabel dalam database.

4. PHPMyAdmin

Pengelolaan database dengan MySQL harus dilakukan dengan

mengetikkan baris-baris perintah yang sesuai (command line) untuk setiap

maksud tertentu. Jika anda ingin membuat database, ketikkan baris perintah

yang sesuai untuk membuat database. Jika kita ingin menghapus tabel,

ketikkan baris perintah yang sesuai untuk menghapus tabel. Hal tersebut

tentu cukup menyulitkan karena kita harus hafal dan mengetikkan

perintahnya satu persatu.

Banyak sekali perangkat lunak yang dapat dimanfaatkan untuk

mengelola data base dalam MySQL, salah satunya adalah phpMyAdmin.

Dengan phpMyAdmin kita dapat membuat tabel, mengisi data dan lain-lain

dengan mudah tanpa harus hafal perintahnya. Untuk mengaktifkan

phpMyAdmin langkah-langkahnya adalah : yang pertama setelah XAMP

kita terinstall, kita harus mengaktifkan web server Apache dan MySQL dari

control panel XAMPP. Yang kedua, jalankan browser kesayangan Anda

(IE, Mozilla Firefox atau Opera) lalu ketikkan alamat web berikut :

http://localhost/phpmyadmin/ pada addressbar lalu tekan Enter. Langkah

ketiga apabila telah nampak interface (tampilan antar muka) phpMyAdmin

anda bisa memulainya dengan mengetikkan nama database, nama tabel dan

seterusnya.

Page 57: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 6. Tampilan Home XAMPP

Page 58: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

BAB III

METODOLOGI PERANCANGAN SISTEM

A. Jenis Penelitian

Penelitian ini merupakan jenis penelitian pengembangan perancangan

aplikasi. Penelitian pengembangan adalah penelitian yang dilakukan untuk

menemukan dan mengembangkan suatu prototipe baru atau yang sudah ada

dalam rangka menyempurnakan dan mengembangkan sehingga, diperoleh

hasil yang lebih baik.

B. Analisis Sistem yang Sedang Berjalan

Analisis sistem adalah penguraian dari suatu sistem informasi yang utuh

kedalam bagian-bagian komponennya dengan maksud untuk mengidentifikasi

dan mengevaluasi permasalahan-permasalahan, kesempatan-kesempatan,

hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan

sehingga dapat diusulkan perbaikan-perbaikannya. Dalam tahap ini penulis

dapat menganalisis sistem yang sedang berjalan yaitu :

1. Identify , mengidentifikasi masalah.

Adapun identifikasi masalahnya adalah selama ini sistem yang sedang

berjalan yaitu sistem peminjaman dan pengembalian buku pada

perpustakaan SMP Negeri 1 Kec. Mungka dilakukan secara manual dan

belum terkomputerisasi. Dan komputer di perpustakaan kurang

dimanfaatkan. Dengan pemrosesan transaksi peminjaman dan

Page 59: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

pengembalian buku secara manual tidak menutup kemungkinan data-data

itu tidak terdokumentasi dengan baik atau data-data bisa hilang.

2. Understand, memahami kerja sistem yang sedang berjalan

Sistem peminjaman dan pengembalian buku pada perpustakaan

SMP.N 1 Kec. Mungka, Kab. Lima Puluh Kota dilakukan secara manual.

Dimana siswa datang ke perpustakaan, meminjam buku, mengembalikan

buku dicatat pada sebuah form yang berisi NIS, Nama siswa, tanggal

pinjam, tanggal kembali, kolom denda dan kolom paraf petugas pustaka.

3. Analyze, menganalisis hasil terhadap sistem yang sedang berjalan

Pada tahap analyze ini, penulis menemukan kelemahan dari sistem

yang sedang berjalan ini yaitu, dengan sistem pencatatan secara manual,

kemungkinan data-data yang berkenaan dengan perpustakaan sewaktu-

waktu bisa hilang. Dan penulis juga melihat belum di maksimalkannya

penggunaan komputer di perpustakaan SMP Negeri 1 Kec. Mungka, Kab.

Lima Puluh Kota.

C. Aliran Sistem Informasi (ASI) yang Sedang Berjalan

Dalam sistem informasi perpustakaan SMP Negeri 1 Kec. Mungka, Kab.

Lima Puluh Kota saat ini melibatkan beberapa entity. Adapun entity-entity

tersebut adalah siswa, pegawai perpustakaan, kepala perpustakaan, dan kepala

sekolah. Adapun gambaran dan aliran sistem informasi Perpustakaan pada

SMP Negeri 1 Kec. Mungka adalah sebagai berikut :

1. Siswa datang ke perpustakaan, membuat kartu pustaka dengan mengisi form

berupa biodata.

2. Pegawai Pustaka mencatat data siswa berupa biodata, dan membuat kartu

Page 60: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

pustaka, dan menyerahkan kepada siswa.

3. Siswa menyerahkan kartu pustaka melakukan peminjaman, pengembalian

buku, dan kartu diserahkan kembali ke siswa.

4. Pegawai Pustaka mencatat data anggota transaksi peminjaman/ pengembalian

dan buku.

5. Pegawai Pustaka membuat laporan transaksi peminjaman/ pengembalian,

diberikan kepada Kepala Pustaka.

6. Kepala mengesahkan / ACC laporan.

7. Jika ada kesalahan dalam pembuatan laporan, maka laporan tidak di ACC oleh

Kepala Pustaka dan laporan diserahkan kembali kepada Pegawai Pustaka dan

Pegawai Pustaka membuat laporan baru.

8. Jika laporan tidak ada kesalahan lagi, maka laporan tersebut di ACC dan

Kepala Pustaka memberikan laporan pertanggung jawaban perpustakaan

kepada Kepala Sekolah.

Agar lebih jelas, bentuk Aliran Sistem Informasi (ASI) yang sedang

berjalan pada perpustakaan SMP Negeri 1 Kec. Mungka, Kab. Lima Puluh Kota

dapat dilihat pada Gambar 12.

D. Usulan Sistem Baru

Setelah melakukan pengamatan terhadap segala permasalahan mengenai

sistem informasi perpustakaan yang lama, maka diperlukan perancangan

sistem baru yaitu sistem yang manual atau paper based ke sistem yang

terkomputerisasi. Sistem baru yang diusulkan akan disajikan dalam bentuk

Page 61: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

rancangan fisik dan rancangan logika sehingga kelemahan-kelemahan dan

hambatan yang terjadi dapat diperkecil bahkan diharapkan tidak ada lagi.

Gambar 7. Aliran Sistem Informasi ( ASI ) Lama Perpustakaan SMP Negeri

1 Kec. Mungka Kab. Lima Puluh Kota

E. Desain Sistem

Desain sistem merupakan tahap setelah analisa sistem. Tujuan dari disain

sistem ini yaitu untuk mempercepat pengambilan keputusan. Disain sistem

pada hakekatnya bukanlah sekedar mempercepat atau mengoptimalisasikan

Page 62: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

kegiatan operasi tapi juga mencakup standarisasi dengan hasil dalam

penghematan tenaga, waktu dan biaya. Disain sistem terdiri dari dua tahap

yaitu tahap disain secara global dan tahap disain secara terinci.

1. Disain Global

Tujuan dari disain global adalah memberikan gambaran secara umum

kepada user tentang sistem yang baru. Rancangan sistem

mengidentifikasikan komponen-komponen sistem informasi yang akan

didisain secara rinci.

Perancangan sistem yang dilakukan di dalam tahap disain global ini

terdiri dari rancangan Aliran Sistem Informasi (ASI) baru, Context

Diagram, Data Flow Diagram (DFD) level 0 dan 1, Entity Relationship

Diagram (ERD) dan Struktur Program.

a. Aliran Sistem Informasi Perpustakaan Baru

Pada Aliran sistem Informasi baru ini, terdapat perbedaan dari sistem

informasi lama yaitu pada proses pencatatan peminjaman, pengembalian

buku, buku dan anggota diinputkan melalui komputer dan disimpan dalam

database sistem informasi perpustakaan.

Pada Gambar 8. dapat dilihat Aliran Sistem Informasi (ASI) baru pada

sistem informasi Perpustakaan SMP Negeri 1 Kec. Mungka, Kab. Lima

Puluh Kota.

Page 63: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 8. Aliran Sistem Informasi ( ASI ) Baru Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota

Keterangan :

1) Anggota pustaka memberikan kartu pustaka kepada Pegawai Pustaka untuk

melakukan proses peminjaman atau pengembalian buku.

2) Pegawai Pustaka menginputkan data anggota pustaka.

3) Kartu pustaka diberikan ke anggota Pustaka.

4) Proses input dan penyimpanan data maupun transaksi peminjaman atau

pengembalian buku disimpan didalam database.

Page 64: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

5) Pegawai Pustaka membuat laporan buku dan peminjaman dan mencetaknya

6) Laporan diserahkan kepada Kepala Pustaka untuk di ACC, jika laporan di

ACC, maka laporan tersebut diserahkan kepada Kepala Sekolah, 1 (satu)

untuk Pegawai Pustaka dan 1 (satu) untuk Kepala Pustaka sebagai arsip.

7) Jika laporan yang dibuat oleh Pegawai Pustaka tidak di ACC, maka Pegawai

Pustaka membuat kembali laopran tersebut.

b. Context Diagram

Context Diagram merupakan alat bantu perancangan secara global yang

memperlihatkan sistem secara umum dan bagian-bagian dari sub sistem yang

terlibat dalam sistem secara keseluruhan, keterkaitan dan interaksi antar sub-

sub sistem.

Proses sistem informasi perpustakaan memiliki 4 (empat) terminator yang

terdiri dari entitas eksternal anggota pustaka, pegawai pustaka, kepala pustaka

dan kepala sekolah. Entitas eksternal anggota pustaka login dan memberikan

input berupa data anggota pustaka dan sistem informasi perpustakaan

memberikan feedback atau output kepada anggota pustaka berupa informasi

buku, informasi transaksi peminjaman atau pengembalian buku. Entitas

eksternal pegawai pustaka memberikan input ke sistem data anggota, data

kategori buku, peminjaman, pengembalian dan buku kemudian sistem

informasi perpustakaan memberikan feedback atau output data anggota, data

kategori buku, laporan peminjaman buku dan laporan buku. Entitas eksternal

kepala pustaka dan kepala sekolah menerima output dari sistem berupa

laporan peminjaman buku dan laporan buku melalui pegawai pustaka. Untuk

Page 65: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

lebih jelasnya, dapat dilihat pada gambar context diagram Sistem Informasi

Perpustakaan SMP Negeri 1 Kec. Mungka, Kab. Lima Puluh berikut:

Gambar 9. Context Diagram Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota

c. Data Flow Diagram Level 0

Data Flow Diagram menggambarkan sebuah Sistem Informasi yang

menitikberatkan pada proses (fokus pada Proses). Dengan mengacu kepada

Context Diagram, proses yang terjadi diuraikan kedalam bentuk Data Flow

Diagram (DFD) level 0.

Pada DFD level 0 Sistem Informasi Perpustakaan SMPN. 1 Kec mungka

bahwa, entitas eksternal pegawai pustaka memberikan input ke sistem melalui

login, input data anggota, kategori buku, peminjaman dan pengembalian buku

dan data buku, setelah sistem melakukan pemrosesan 1.0, maka data-data

Page 66: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

tersebut disimpan pada data storage pada file anggota (F1), file buku (F2),

file kategori buku (F3) dan file data peminjaman/ pengembalian buku (F4).

Pada proses 2.0 yaitu proses cetak laporan peminjaman dan buku, data dibaca

dari file buku, file anggota, file kategori buku dan file peminjaman/

pengembalian buku dan menghasilkan output berupa laporan peminjaman,

pengembalian dan laporan buku. Dan Laporan peminjaman/ pengembalian

dan buku disimpan pada data storage file laporan peminjaman dan

pengembalian buku (F5). Kemudian laporan tersebut di ACC oleh kepala

pustaka, laporan yang telah di ACC diberikan kepada kepala sekolah dan

pegawai pustaka. Untuk lebih jelasnya berikut adalah gambar dari Data Flow

Diagram (DFD) level 0 Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima

Puluh Kota.

Page 67: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 10. Data Flow Diagram (DFD) Level 0 Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota

Page 68: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

d. Entity Relationship Diagram

Entity Relationship Diagram (ERD) merupakan suatu dokumentasi data

yang mengidentifikasikan entity data dan memperlihatkan hubungan yang ada

diantara entity tersebut dengan menggunakan atribut key field (Primary Key

Atribut) dari masing-masing entiti.

Pada gambar ini dijelaskan bahwa database yang dirancang terdiri dari

lima entity yaitu entity anggota, peminjaman, kategori buku, buku dan

pegawai pustaka. Setiap entity mempunyai atributnya masing-masing, salah

satunya berfungsi sebagai primary key atau sebagai foreign key. Adapun

bentuk hubungan dari masing-masing entiti dari sistem yang dirancang dapat

dilihat digambar berikut :

Gambar 11. Entity Relationship Diagram (ERD) Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota

Page 69: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Keterangan :

Pada gambar 11, terdapat 5 (Lima) entiti yaitu, anggota, peminjaman,

buku, kategori buku dan pegawai pustaka. Dimana entiti anggota terdiri dari 7

(Tujuh) atribut yaitu, anggota_ID, anggota_nama, anggota_jk, anggota_alamat,

anggota_cp, anggota_tipe, anggota_kelas. Entiti anggota memiliki primary key

anggota_ID. Adapun relasi antara entiti anggota dengan peminjam adalah one

to many artinya, 1 orang anggota pustaka bisa meminjam lebih dari satu buku

dan banyak proses peminjaman buku bisa dilakukan oleh 1 orang anggota.

Entiti peminjaman memiliki 5 (atribut) yaitu, tgl_pinjam, anggota_ID,

buku_ID, pinjam_tgl batas, pinjam_tglkembali. Pada entiti peminjaman ini

memiliki primary key tgl_pinjam dan foreign key anggota_ID dan buku_ID.

Entiti buku memiliki 10 (sepuluh) atribut yaitu, buku_ID, buku_judul,

buku_pengarang, buku_penerbit, buku_tahun, kategori_ID, buku sinopsis,

stok, sumber dan rak. Entiti buku memiliki primary key buku_ID, dan foreign

key kategori_ID. Relasi yang terjadi antara entiti peminjaman dengan buku

adalah many to one. Artinya, banyak peminjaman dimiliki oleh satu buku dan

sebaliknya.

Entiti kategori buku memiliki 2 (dua) atribut yaitu, kategori_id dan

kategori_nama. Primary keynya kategory_id. Relasi yang terjadi antara buku

dan kategori buku adalah many to one. Artinya, satu buku hanya memiliki satu

kategori. Sedangkan satu kategori bisa dimiliki oleh banyak buku. Dan entiti

pegawai pustaka memiliki 2 (dua) atribut yaitu, username dan password.

Entity pegawai pustaka memiliki hubungan relasional one to many atau satu

Page 70: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

ke banyak artinya, satu pegawai pustaka bisa menginputkan data anggota,

buku, pemeinjaman buku, dan data kategori buku.

e. Disain File

File adalah kumpulan dari record-record yang tersusun secara logis. File

tersebut digunakan untuk mendapatkan informasi yang diinginkan. Record-

record pada file akan tersimpan dalam suatu media penyimpanan (Harddisk,

dll). Agar lebih jelas mengenai desain file dari sistem informasi perpustakaan

SMP Negeri 1 kec. Mungka, dapat dilihat pada tabel-tabel berikut :

1) Desain File Buku

Nama Database : Pustaka

Nama Tabel : buku

Primary Key : buku_id

Tabel 7. Desain File Buku

No Field Type Width

1 Buku_id Varchar 20

2 Buku_judul Varchar 50

3 Buku_pengarang Varchar 50

4 Buku_penerbit Varchar 50

5 Buku_tahun int 11

6 Kategori_id varchar 20

7 Buku_sinopsis Varchar 500

8 Stok Int 11

9 Sumber Dana VarChar 150

10 Rak VarChar 5

Page 71: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

2) Desain File Kategori Buku

Nama Database : Pustaka

Nama Tabel : kategori

Primary key : Kategori_id

Tabel 8. Desain File Kategori Buku

No Field Type Width

1 Kategori_id Varchar 20

2 Kategori_Nama Varchar 50

3) Desain File Peminjaman Buku

Nama Database : Pustaka

Nama Tabel : pinjam

Primary Key : pinjam_tgl,

Foreign key : anggota_id dan buku_id

Tabel 9. Desain File Peminjaman Buku

No Field Type Width

1 Pinjam_tgl Date -

2 Anggota_id Varchar 20

3 Buku_id Varchar 20

4 Pinjam_tgl batas Date -

5 Pinjam_tgl kembali

Date -

Page 72: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

4) Desain File Anggota

Nama Database : Pustaka

Nama Tabel : anggota

Primary Key : Anggota_id

Tabel 10. Desain File Anggota

No Field Type Width

1 Anggota_id Varchar 20

2 Anggota_nama Varchar 25

3 Anggota_jekel Char 1

4 Anggota_almt Varchar 150

5 Anggota_cp Varchar 15

6 Anggota_tipe Varchar 6

7 Siswa_kelas Char 10

5) Desain File Pegawai Pustaka

Nama Database : Pustaka

Nama Tabel : user

Primary Key : Password

Tabel 11. Desain File User

No. Field Type Width

1 Username Varchar 30

2 Password Varchar 30

Page 73: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

f. Struktur Program

Stuktur Program adalah gambaran dari sebuah rangkaian modul-

modul program yang saling terkait satu sama lain yang terlihat dalam

proses pengolahan data. Pembuatan struktur program ini dimaksudkan

untuk mempermudah dalam memahami keterkaitan modul-modul program

dan untuk memperlihatkan jenjang atau hirarki dari program yang

dirancang. Dengan demikian dapat dijabarkan urutan kerja dari tiap modul

program.

Struktur program terdiri dari 3 (tiga) menu utama yaitu, menu file,

menu kepustakaan, dan menu laporan. Pada menu file, terdapat 4 (empat)

sub menu yaitu, submenu kategori buku, buku, anggota pustaka, dan exit

untuk keluar dari program. Pada menu kepustakaan terdapat 2 (dua)

sebmenu yaitu submenu peminjaman buku dan pengembalian buku. Pada

menu laporan terdapat 2 (dua) submenu yaitu laporan buku dan laporan

peminjaman buku. Menu laporan peminjaman buku terdiri atas laporan

perbulan, per- 3 bulan, per- 6 bulan dan 1 tahun. Adapun bentuk struktur

program dapat dilihat pada gambar dibawah ini :

Page 74: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Gambar 12. Struktur Program Sistem Informasi Perpustakaan SMP Negeri 1 Kec. Mungka Kab. Lima Puluh Kota

2. Desain Terinci

Desain terinci disebut juga dengan sistem secara fisik (phisical system

design) atau desain internal (internal design). Disain ini terdiri dari disain

output, disain input dan disain file. Rancangan-rancangan dari disain ini akan

dijadikan sebagai acuan dalam perancangan sistem baru untuk memperoleh

hasil yang semaksimal mungkin.

Page 75: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

a. Desain Output

Rancangan output merupakan bentuk laporan dari sistem yang

dirancang sedemikian rupa, sehingga dapat memberikan informasi yang

diperlukan dan diinginkan oleh user. Berikut gambar disain output yang

dirancang:

1) Desain Output Laporan Buku

Gambar 13. Desain Output Laporan Buku

2) Desain Output Laporan Peminjaman Buku

Gambar 14. Desain Output Laporan Peminjaman

Page 76: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

b. Disain Input

Pada bagian perancangan input ini, dirancang bentuk format yang

nantinya menjadi penghubung antara user dengan program aplikasi yang

digunakan. Format ini akan meminta user untuk menginputkan data sesuai

dengan permintaan. Adapun bentuk dari rancangan input ini adalah :

1) Desain Input Login

Gambar 15. Halaman Login

2) Desain Input Kategori Buku

Gambar 16. Desain Input Kategori Buku

Page 77: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

3) Desain Input Buku

Gambar 17. Desain Input Buku

4) Desain Input Data Anggota Pustaka

Gambar 18. Desain Input Data Anggota

Page 78: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

5) Input Data Peminjaman Buku

Gambar 19. Desain Input Data Peminjaman Buku

6) Desain Input Data Pengembalian Buku

Gambar 20. Desain Input Data Pengembalian Buku

Page 79: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

7) Desain Input Cari Data Buku

Gambar 21. Desain Input Pencarian Buku

c. Logika Program ( Flowchart )

Program flowchart adalah suatu bagian yang menggambarkan arus

logika dari data yang akan diproses dari awal suatu program sampai akhir

program. Bagan alir terdiri dari simbol-simbol yang akan dikerjakan. Adapun

flowchart yang dirancang pada sistem informasi yang baru ini adalah:

Page 80: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

1) Flowchart Menu Utama

Mulai

Kategori

menu=2

Buku

Anggota

Berhenti

Menu File

Tampilkan Menu kategori(1), buku(2),

anggota(3)

Tidak

Ya

Tampilkan Menu File, Kepustakaan dan Laporan

menu=1

menu=3

Laporan Buku

Laporan Peminjaman

Menu Laporan

Tampilkan Menu Laporan Buku(6) dan Peminjaman(7)

menu=6

menu=7

Menu Kepustakaan

Tampilkan Menu Peminjaman(4) dan Pengembalian(5)

Peminjaman

menu=5

Siswa

menu=4

Tidak

Tidak

Tidak

Tidak

Tidak

Tidak

Tidak

Tidak

TidakYa

Ya

Ya

Ya

Ya

Ya

Ya

Ya

Ya

Gambar 22. Flowchart Menu Utama

Keterangan :

Pada gambar diatas, gambar 22 Flowchart Menu utama dimulai dari start

program, lalu perintah untuk menampilkan menu file, kepustakaan, dan laporan.

Jika yang dipilih menu file, dan kondisinya Ya (benar) maka akan menampilkan

submenu dari file yaitu kategori buku (1), file buku (2) dan file anggota (3). Jika

kondisi (1) benar maka akan diteruskan ke kategori buku. Jika tidak, pindah ke

menu lain (2) atau (3). Jika kondisi (2) benar maka file buku akan dijalankan dan

jika kondisi (3) benar, maka file anggota bisa dijalankan.

Page 81: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Jika kondisi pada menu file tidak, maka program melanjutkan menu

berikutnya yaitu menu kepustakaan dan akan menampilkan sub menu peminjaman

(4) dan pengembalian (5). Jika kondisi pada submenu (4) ya, maka program akan

ke program peminjaman. Dan jika kondisi submenu (4) tidak maka program

dilanjutkan ke submenu (5) dan jika (4) dan (5) tidak maka program berhenti.

Jika kondisi pada menu laporan dipilih maka program akan menampilkan menu

laporan buku (7) dan laporan peminjaman buku (8).

2) Flowchart Kategori Buku

Gambar 23. Flowchart Kategori Buku

Page 82: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Keterangan :

Pada gambar 23. Flowchat kategori buku, file kategori buku dilakukan

proses menginputkan id kategori. Jika konsisinya ya, maka akan ditampilkan data

kategori buku dan ada dua kondisi yaitu ubah dan hapus. Jika kondisinya tidak

maka akan dilakukan input data kategori ada satu kondisi yaitu simpan dan bersih

data jika pegawai pustaka salah dalam menginputkan data.

3) Flowchart Buku

Gambar 24. Flowchart Buku

Page 83: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Keterangan :

Pada gambar 24. Flowchart Buku diatas, dapat dilihat pada file buku

dilakukan proses input kode buku dan jika kondisinya ada maka data buku

ditampilkan dan memiliki dua kondisi ubah data buku dan hapus data buku. Jika

kondisi proses input kode buku tidak maka akan dilakukan proses input data buku

dan ada kondisi simpan data buku jika tidak maka akan kembali ke menu file

buku.

4) Flowchart Anggota Pustaka

Gambar 25. Flowchart Anggota Pustaka

Page 84: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Keterangan :

Pada gambar 25. Flowchat Anggota Pustaka, dimulai dari menu utama,

lalu menu file dan submenu anggota pustaka. Pada file anggota pustaka dilakukan

proses penginputkan kode anggota. Jika kondisinya ada maka data anggota akan

ditampilkan dan memiliki dua kendisi ubah dan hapus data anggota. Jika

kondisinya tidak berarti ditampilakan proses input data anggota dan pada kondisi

simpan, maka dilakukan proses penyimpanan data anggota dan bersih data. jika

tidak maka akan ada pilihan keluar dan kembali ke menu anggota, dan berhenti.

5) Flowchart Peminjaman Buku

Gambar 26. Flowchart Peminjaman Buku

Page 85: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Keterangan :

Pada gambar 26. Flowchart Peminjaman Buku, dimulai dari menu utama,

lalu menu kepustakaan dan submenu peminjaman. dapat dijelaskan data pada file

peminjaman diinputkan tgl peminjaman, identitas anggota dan kode buku. Jika

data ada maka akan ditampilan data peminjaman dan dalam data peminjaman

terdapat dua kondisi ubah dan hapus data. Jika kondisinya ubah maka dilakukan

proses ubah data peminjaman buku dan kembali pada menu file peminjaman. Jika

kondisinya hapus maka dilakukan proses penghapusan data peminjaman dan

kembali ke menu file peminjman. Pada kondisi data tidak maka ditampilkan

proses input data peminjaman lalu ada kondisi simpan data pemninjaman jika

diteruskan maka data disimpan jika tidak maka akan kembali ke menu file

peminjaman buku.

6) Flowchart Pengembalian Buku

Gambar 27. Flowchart Pengembalian Buku

Page 86: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Keterangan :

Pada gambar 27. Flowchart Pengembalian buku, dimulai dari menu utama,

lalu menu kepustakaan dan submenu pengembalian dan dicari data peminjaman

jika data ada, maka data ditampilkan jika tidak program keluar dan berhenti.

Setelah data ditampilkan lalu diproses data pengembalian atau tidak.

7) Flowchart Laporan Buku

Gambar 28. Flowchart Laporan Buku

Page 87: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Keterangan :

Pada gambar 28. Flowchart Laporan Buku, dimulai menampilkan menu

utama, menu laporan buku, jika data ada, maka data buku akan ditampilkan dan

ada pilihan cetak jika ya maka laporan dicetak kalau tidak program akan keluar

dan berhenti.

8) Flowchart Laporan Peminjaman Buku

Gambar 29. Flowchart Laporan Peminjaman Buku

Page 88: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Keterangan :

Pada gambar 29. Flowchart Laporan Peminjaman Buku, dimulai pada

menu utama, menu laporan peminjaman buku. Jika data ada maka data akan

ditampilkan sesuai dengan periode peminjaman, ada pilihan cetak laporan jika ya,

maka laporan akan dicetak dan jika tidak maka program keluar dan berhenti.

Page 89: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

BAB IV

IMPLEMENTASI SISTEM

A. Perancangan Implementasi Sistem

Tahap implementasi sistem merupakan tahap meletakkan sistem supaya

siap untuk dioperasikan. Tahap ini termasuk juga kegiatan menulis kode

program jika tidak digunakan paket perangkat lunak aplikasi.

Tahap implementasi sistem terdiri dari langkah-langkah sebagai berikut ini :

1) Menerapkan rencana implementasi

Rencana Implementasi dimaksudkan terutama untuk mengatur biaya

dan waktu yang dibutuhkan selama implementasi. Dalam rencana

implementasi ini, semua biaya yang akan dikeluarkan untuk kegiatan

implemntasi perlu dianggarkan dalam bentuk anggaran biaya. Anggaran

biaya ini selanjutnya juga berfungsi sebagai pengendalian terhadap biaya-

biaya yang harus dikeluarkan. Waktu yang diperlukan untuk melakukan

kegiatan juga perlu diatur dalam rencana implementasi dalam bentuk

jadwal waktu. jadwal waktu berfungsi sebagai pengendalian terhadap

waktu implementasi

2) Melakukan kegiatan implementasi

a. Pemilihan dan pelatihan personil

b. Pemilihan tempat dan instalasi perangkat keras dan perangkat lunak

c. Pemrograman dan pengetesan program

d. Pengetesan sistem

Page 90: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

e. Konversi sistem

3) Tindak lanjut implementasi

Analis sistem masih perlu melakukan tindak lanjut berikutnya seteleh

sistem baru diimplementasikan. Analis sistem masih perlu melakukan

pengetesan penerimaan sistem. Pengetesan ini berbeda dengan pengetesan

sistem yang telah dilakukan sebelumnya. Jika pada pengetesan

sebelumnya digunakan data test/semu, tapi pada pengetesan ini dilakukan

dengan menggunakan data sesungguhnya dalam jangka waktu tertentu

yang dilakukan oleh analis sistem bersama-sama dengan user.

B. Hasil Uji Coba Program dan Pembahasan

1. Program Server

Program pada komputer server terdiri dari halaman login, menu

utama dan menu utama terdiri dari file, kepustakaan, dan laporan

a. Tampilan Login

Gambar 30. Tampilan Halaman Login

Page 91: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Keterangan :

1) Pada halaman Login, proses login memberikan dua opsi pilihan yaitu, login

sebagai Admin atau pegawai pustaka (pada komputer server) dan login

sebagai guest (pada komputer client). Sebelum melakukan perintah login,

pegawai pustaka terlebih dahulu memasukan username dan password lalu

melakukan login. Adapun script eksekutor dari tombol login adalah sebagai

berikut :

import javax.swing.*; public class Login extends javax.swing.JFrame { /** Creates new form Login */ public Login() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LOGIN"); private void btnLoginKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { caridata(); } private void btnExitKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { keluarform(); } } private void loginasActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(loginas.getSelectedIndex()==0) { username.setText(""); password.setText(""); } else { username.setText("Guest"); password.setText("Guest"); } } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() {

Page 92: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

public void run() { Login x = new Login(); x.setVisible(true); x.show(); x.toFront(); x.setSize(490, 330); } }); } private void caridata() { if(loginas.getSelectedIndex()==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("Select * from user where username='"+username.getText()+"' and password='"+password.getText()+"'")==1) { if(db.rs.next()) { MenuUtama x = new MenuUtama(false); x.setSize(1024,768); x.setExtendedState(MAXIMIZED_BOTH); x.setVisible(true); x.show(); this.dispose(); } else { new cfg().msgbox("Username / Password Salah...", 'i'); } } } db.CloseRS(); db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } else { MenuUtama x = new MenuUtama(true); x.setSize(1024,768); x.setExtendedState(MAXIMIZED_BOTH); x.setVisible(true); x.show(); this.dispose(); } }

Page 93: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari program... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { System.exit(0); } } private void tampilCariBuku() { CariBuku x = new CariBuku(); x.setSize(709, 664); x.setVisible(true); x.show(); this.dispose(); }

2) Setelah melakukan login, maka muncul tampilan menu utama seperti gambar

dibawah ini

Gambar 31. Tampilan Halaman Menu Utama

Keterangan :

Ada 3 (tiga) menu yang terdapat pada menu utama yaitu, menu file,

menu kepustakaan, dan menu laporan. Dimana pada menu file, terdapat 4

(empat) submenu yaitu, file kategori buku, file buku, file anggota pustaka

Page 94: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

dan exit untuk keluar dari program. Pada menu kepustakaan terdapat 2

(dua) submenu yaitu, menu peminjaman buku dan pengembalian buku

sedangkan pada menu laporan terdapat 2 (dua) submenu yaitu, laporan

buku dan laporan peminjaman buku.

3) Jika admin tidak jadi melakukan login untuk masuk ke menu utama, maka

admin menekan tombol keluar. Maka akan muncul tampilan konfirmasi

sebagai berikut.

Gambar 32. Tampilan Konfirmasi Tombol Keluar

Adapun script eksekutor dari tombol keluar adalah sebagai berikut :

private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari program... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { System.exit(0); } }

b. Menu File

1) File Kategori Buku

Pada Menu File Kategori Buku, Admin atau pegawai pustaka

melakukan entri data (input Kategori Buku) dengan mengisi No.

Page 95: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Kategori Buku dan Nama Kategori Buku. Ada 5 pilihan proses

yang terjadi pada input kategori buku ini yaitu :

Gambar 33. Tampilan Menu File Kategori Buku

Keterangan :

a) Proses simpan

Ketika admin atau pegawai pustaka telah melakukan input no.

kategori buku dan nama kategori buku maka admin melakukan

penyimpanan data dengan cara mengklik tombol simpan. Contoh disini

admin menginputkan no. kategori buku = 000 dengan nama kategori =

Karya Umum. Adapun script eksekutor dari proses simpan paa menu

file kategori buku adalah sebagai berikut :

private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); private void simpandata() {

Page 96: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nmKategori.getText().length()==0) { new cfg().msgbox("Nama Kategori kosong...",'w'); nmKategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "values('"; query = query + idKategori.getText() + "','"; query = query + nmKategori.getText() + "')"; String SQL = "insert into kategori " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } db.CloseDB(); bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } }}

Ketika mengklik tombol simpan maka muncul kotak dialog konfirmasi

seperti gambar dibawah ini.

Page 97: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 34. Tampilan Kotak Dialog Konfirmasi Tombol Simpan Pada Menu File Kategori Buku

Ketika admin mengklik tombol Yes, maka akan muncul kotak dialog

Gambar 35. Tampilan Kotak Dialog Konfirmasi Data Berhasil disimpan

Page 98: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Setelah mengklik tombol OK, maka data no. kategori buku = 209 dengan

nama kategori buku = Ilmu Bumi telah tersimpan.

Gambar 36. Tampilan Menu Kategori Buku Setelah Proses Simpan Data

b) Proses Ubah Data

Proses merubah data dilakuan apabila admin salah dalam

melakukan input data kategori buku, sehingga dilakukan perubahan

data dengan cara mengklik tombol Ubah. Contohnya, admin ingin

merubah data no. kategori buku 209 dengan nama kategori buku Ilmu

Bumi kenjadi Karya sastra. Untuk lebih jelasnya dapat dilihat pada

gambar dibawah ini.

Page 99: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 37. Tampilan Proses Mengubah Data Pada Menu File Kategori Buku

Adapun script eksekutor dari tombol Ubah adalah sebagai berikut :

private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ubahdata(); private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nmKategori.getText().length()==0) { new cfg().msgbox("Nama Barang kosong...",'w'); nmKategori.requestFocus(); } else {

Page 100: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "kategori_nama='"+nmKategori.getText()+"'"; String SQL = "update kategori set "+query+" where kategori_id='"+ idKategori.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } }

Setelah mengklik tombol Yes pada kotak dialog tombol Ubah, maka

muncul kotak dialog data berhasil diubah seperti dibawah ini.

Page 101: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 38. Tampilan Kotak Dialog Konfirmasi Data Berhasil diubah

Setelah mengklik tombol OK, maka terlihat bahwa data no. kategori buku

209 dengan nama kategori buku Ilmu Bumi, sekarang berubah menjadi

Karya Saatra.

Page 102: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Gambar 39. Tampilan Menu Kategori Buku Setelah Proses Ubah

c) Proses Hapus Data

Proses Hapus data dilakukan apabila admin ingin menghapus data-

data yang telah tersimpan namun salah dalam proses pengentrian data.

Contonya, admin ingin menghapus data no. Kategori buku 100 dengan

nama kategori buku Filsafat. Maka admin bisa mengklik pada tabel no.

kategori buku 100 dengan nama kategori buku filsafat maka akan

muncul tampilan seperti dibawah ini.

Page 103: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 40. Tampilan Proses Penghapusan Data Pada Menu File Kategori Buku

Adapun script eksekutor tombol proses hapus data adalah sebagai berikut:

private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from kategori where kategori_id='"+ idKategori.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } db.CloseDB(); bersih(); aktif(false);

Page 104: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

idKategori.setText(""); idKategori.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } }

Setelah mengklik tombol Yes, maka akan muncul tampilan kotak dialog

seperti gambar dibawah ini.

Gambar 41. Tampilan Kotak dialog Data Berhasil Dihapus

Setelah mengklik tombol OK, maka data no. kategori buku dengan nama

Filsafat sudah tidak ada lagi

Page 105: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 42. Tampilan Menu File Kategori Buku Setelah Proses Hapus

d) Proses Reset Data Kategori Buku

Proses reset data dilakukan apabila admin salah menginputkan

salah satu dari entitas input kategori buku. Contohnya, admin ingin

mengimputkan data dengan no. kategori buku 100, nama kategori buku

Filsafat, tapi karena salah menginputkan data no. kategori buku 100,

nama kategori buku Agama. Maka admin bisa membatalkanya dengan

cara mengklik tombol reset.

Page 106: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Gambar 43. Tampilan Proses Reset Data Pada Menu File Kategori Buku

Adapun script eksekusi dari proses tombol reset adalah sebagai berikut

private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: resetdata(); private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } }

Setelah mengklik tombol Yes maka input no. kategori dan nama buku tadi

dibatalkan.

Page 107: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

e) Proses Keluar Kategori Buku

Proses tombol keluar merupan tombol yang digunakan admin untuk

keluar dari menu file kategori buku. Ketika admin mengklik tombol

keluar maka akan muncul kotak dialog seperti dibawah ini

Gambar 44. Tampilan Proses Keluar Pada Menu File Kategori Buku

Adapun script eksekutor dari proses tombol keluar adalah sebagai berikut

private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } } private void bersih() { nmKategori.setText("");

Page 108: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

} private void aktif(boolean yes) { nmKategori.setEnabled(yes); if(yes==false) { tombol(0,0); tampilTabel(); idKategori.setEditable(true); } } private void tombol(int x,int y ) { if(x==1){ btnSimpan.setEnabled(true); } else{ btnSimpan.setEnabled(false); } if(y==1){ btnUbah.setEnabled(true); btnHapus.setEnabled(true);} else{ btnUbah.setEnabled(false); btnHapus.setEnabled(false); } }

Setelah mengklik tombol Yes, maka admin akan kembali ke menu utama

2) File Buku

Gambar 45. Tampilan Menu File Buku

Page 109: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Keterangan :

Pada Menu File buku ini, admin atau pegawai pustaka melakukan

mengentrikan data buku (input data buku). Adapun entitas yang diinputkan terdiri

dari ID Buku, judul, pengarang, penerbit, tahun terbit, dan kategori buku.

Sedangkan untuk proses

Ada 5 pilihan proses yang terjadi pada input data buku ini yaitu :

a) Proses Simpan Data Buku

Proses simpan data dilakukan oleh admin untuk menyimpan data buku

yang telah dientrikan. Admin mengentikan ID buku, judul, pengarang,

penerbit, tahun terbit, dan kategori buku. Untuk kategori buku, admin hanya

memilih dari list kategori yang telah di entrikan sebelumnya pada menu file

kategori buku. Contohnya, admin ingin memasukan data ID buku 488336,

judul 1001 Dongeng Mancanegara, pengarang MB. Rumansyah. AR, penerbit

Bintang Usaha Jaya, tahun terbit kategori Karya Umum.

Gambar 46. Tampilan Proses Penginputan data Buku

Page 110: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Adapun script eksekutor dari tombol proses simpan adalah sebagai berikut

private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(judul.getText().length()==0) { new cfg().msgbox("Judul Buku kosong...",'w'); judul.requestFocus(); } else if(pengarang.getText().length()==0) { new cfg().msgbox("Pengarang kosong...",'w'); pengarang.requestFocus(); } else if(penerbit.getText().length()==0) { new cfg().msgbox("Penerbit kosong...",'w'); penerbit.requestFocus(); } else if(kategori.getSelectedIndex()<=0) { new cfg().msgbox("Pilih Kategori Buku...",'w'); kategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "values('"; query = query + idBuku.getText() + "','"; query = query + judul.getText() + "','"; query = query + pengarang.getText() + "','";

Page 111: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

query = query + penerbit.getText() + "','"; query = query + tahun.getYear() + "','"; query = query + new cfg().GetID(kategori) + "')"; String SQL = "insert into buku " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } db.CloseDB(); bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } }

Setelah admin mengklik tombol Yes, maka muncul tampilan kotak dialog

data berhasil disimpan seperti dibawah ini

Page 112: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Gambar 47. Tampilan Kotak Dialog Data Berhasil didimpan Pada Menu File Buku

Setelah admin mengklik tombol OK, maka data buku yang diinputkan

tadi akan tersimpan. Seperti gambar dibawah ini

Gambar 48. Tampilan Menu Proses Simpan Data Buku

b) Proses Ubah Data Buku

Proses merubah data dilakuan apabila admin salah dalam melakukan

input data buku, sehingga dilakukan perubahan data dengan cara mengklik

tombol Ubah. Contohnya, admin ingin merubah judul buku pada data

kode buku 45836, judul Atlas, pengarang Tim Penyusun, penerbit Pustaka

Amani menjadi stok yang tadi 14 menjadi 15. Pada peoses ubah ini, admin

mengklik row/ baris item yang akan di rubah, lalu mengklik tombol ubah.

Maka akan muncul tampilan sebagai berikut.

Page 113: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 49. Tampilan Kotak Dialog Proses Ubah data Pada Menu File Buku

Adapun script eksekutor dari tombol proses ubah data buku adalah sebagai

berikut:

private void

btnUbahActionPerformed(java.awt.event.ActionEvent evt)

{

// TODO add your handling code here: ubahdata(); private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(judul.getText().length()==0) { new cfg().msgbox("Judul Buku kosong...",'w'); judul.requestFocus(); } else if(pengarang.getText().length()==0) { new cfg().msgbox("Pengarang kosong...",'w');

Page 114: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

pengarang.requestFocus(); } else if(penerbit.getText().length()==0) { new cfg().msgbox("Penerbit kosong...",'w'); penerbit.requestFocus(); } else if(kategori.getSelectedIndex()<=0) { new cfg().msgbox("Pilih Kategori Buku...",'w'); kategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "buku_judul='"+judul.getText()+"',"; query = query + "buku_pengarang='"+pengarang.getText()+"',"; query = query + "buku_penerbit='"+penerbit.getText()+"',"; query = query + "buku_tahun='"+tahun.getYear()+"',"; query = query + "kategori_id='"+new cfg().GetID(kategori)+"'"; String SQL = "update buku set "+query+" where buku_id='"+ idBuku.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } }

Page 115: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Setelah admin mengklik tombol Yes, pada kotak dialog diatas maka akan

muncul kotak dialog data telah berhasil dihapus. Seperti tampilan dibawah

ini

Gambar 50. Tampilan Kotak Dialog Data Berhasil diubah

Setelah admin mengklik tombol OK, maka dapat kita lihat data pada

baris pertama pada kolom judul telah berubah, dari judul Einstain aja ga

tahu menjadi Einstain aja ga tahu edisi 2. Untuk lebih jelasnya dapat

dilihat pada gambar dibawah ini

Page 116: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Gambar 51. Tampilan Proses Ubah data pada Menu File Buku

c) Poses Hapus Data Buku

Proses Hapus data dilakukan apabila admin ingin menghapus data-data

yang telah tersimpan namun salah dalam proses pengentrian data.

Contonya, admin ingin menghapus data pada baris pertama. Maka admin

mengklik baris yang akan dihapus, lalu mengklik tombol hapus. Untuk

lebih jelasnya dapat dilihat pada gambar dibawah ini

Page 117: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 52. Tampilan Kotak Dialog Hapus Data Buku

Adapun script eksekutor dari tombol proses Hapus adalah sebagai berikut

private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from buku where buku_id='"+ idBuku.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } db.CloseDB();

Page 118: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } } private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } }

Setelah mengklik tombol Yes, maka mucul kotak dialog bahwa data telah

berhasil dihapus.

Gambar 53. Tampilan Kotak Dialog Data Berhasil dihapus

Page 119: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Setelah admin mengklik tombol OK, maka akan terlihat bahwa data pada

baris no 1 dengan judul buku 1001 Dongeng Mancanegara tidak ada lagi.

Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini:

Gambar 54. Tampilan Proses Hapus Data Pada Menu File Buku

d) Proses Reset Data Buku

Proses reset data dilakukan apabila admin salah menginputkan salah

satu dari entitas input kategori buku. Contohnya, admin ingin

mengimputkan data ID Buku 48341, judul Panduan MC dan Pidato, tapi

terinputkan dana dari Bos padahal beli dari dana SSN maka admin bisa

mengklik tombol reset untuk membantalkanya. Untuk lebih jelasnya dapat

dilihat pada gambar dibawah ini

Page 120: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Gambar 55. Tampilan Kotak Dialog Reset Data Buku

Adapun script eksekutor untuk tombol proses reset data buku adalah

sebagai berikut

private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: resetdata(); private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } }

Setelah admin mengklik tombol Yes, maka akan data yang diinputkan

tadi akan reset.

Page 121: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

e) Proses Keluar Data Buku

Proses tombol keluar merupan tombol yang digunakan admin untuk

keluar dari menu file Data buku. Ketika admin mengklik tombol keluar

maka akan muncul kotak dialog seperti dibawah ini

Gambar 56. Tampilan Kotak Dialog Keluar Data Buku

Adapun script eksekutor untuk tombol proses keluar dari data buku adalah

sebagai berikut :

private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } }

Page 122: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Setelah admin mengklik tombol OK, maka admin akan berada pada menu

utama

3) File Anggota Pustaka

Gambar 57. Tampilan Menu File Anggota Pustaka

Keterangan :

Pada menu file anggota pustaka, admin melakukan entri data anggota

berupa, Identitas anggota, nama anggota, jenis kelamin, alamat, contact

person, kategori anggota (siswa, guru dan umum). Adapun proses yang

dilakukan adalah sebagai berikut.

a) Proses Simpan Data Anggota

Proses simpan data anggota dilakukan oleh admin untuk

mengimputkan data anggota perpustakaan. Contoh, Admin menginputkan

Identitas anggota 02-456, nama anggota Werslita, jenis kelamin

perempuan, alamat Jl. Raya Mungka No. 23, contact person

Page 123: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

081363785145, kategori anggota guru, lalu mengklik tombol proses

simpan.

Gambar 58. Tampilan Kotak dialog Simpan Data Anggota

Adapun script eksekutor untuk tombol proses simpan pada menu file data

anggota adalah sebagai berikut

private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nama.getText().length()==0) { new cfg().msgbox("Nama kosong...",'w'); nama.requestFocus(); } else if(alamat.getText().length()==0) { new cfg().msgbox("Alamat kosong...",'w');

Page 124: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

alamat.requestFocus(); } else if(cp.getText().length()==0) { new cfg().msgbox("Contact Person kosong...",'w'); cp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "values('"; query = query + id.getText() + "','"; query = query + nama.getText() + "','"; query = query + new cfg().getJK(radL, radP) + "','"; query = query + alamat.getText() + "','"; query = query + cp.getText() + "','"; JRadioButton[] rad = {radSiswa,radGuru,radUmum}; query = query + new cfg().getRad(rad) + "','"; if(radSiswa.isSelected()==true) { query=query+kelas.getSelectedItem()+"')"; } else { query=query+"')"; } String SQL = "insert into anggota " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } db.CloseDB(); bersih(); aktif(false);

Page 125: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

id.setText(""); id.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } }

Setelah mengklik tombol Yes, Maka akan muncul kotak dialog data

berhasil disimpan

Gambar 59. Tampilan Kotak Dialog Data Anggota berhasil disimpan

Setelah mengklik tombol OK, maka dapat dilihat bahwa data yang

diinputkan admin telah tersimpan. Untuk lebih jelasnya dapat dilihat pada

gambar dibawah ini :

Page 126: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Gambar 60. Tampilan Proses Simpan Menu File Anggota Pustaka

b) Proses Ubah Data Anggota

Proses ubah data anggota digunakan untuk merubah data anggota

pustaka yang salah dalam proses pengentrian data oleh admin. Contohnya

admin ingin mengubah data Contact Person dari anggota bernama

Werslita. Semula data Contact Person Werslita 081363785145, akan

dirubah menjadi 081363112165. Untuk lebih jelasnya dapat dilihat pada

gambar dibawah ini

Page 127: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 61. Tampilan Kotak Dialog Ubah Data Anggota

Adapun script eksekutor dari tombol proses ubah data anggota pustaka

adalah sebagai berikut

private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ubahdata(); private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nama.getText().length()==0) { new cfg().msgbox("Nama kosong...",'w'); nama.requestFocus(); } else if(alamat.getText().length()==0) { new cfg().msgbox("Alamat kosong...",'w'); alamat.requestFocus(); } else if(cp.getText().length()==0) { new cfg().msgbox("Contact Person kosong...",'w');

Page 128: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

cp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "anggota_nama='"+nama.getText()+"',"; query = query + "anggota_jk='"+new cfg().getJK(radL, radP)+"',"; query = query + "anggota_alamat='"+alamat.getText()+"',"; query = query + "anggota_cp='"+cp.getText()+"',"; JRadioButton[] rad = {radSiswa,radGuru,radUmum}; query = query + "anggota_tipe='"+new cfg().getRad(rad)+"',"; if(radSiswa.isSelected()==true) { query=query+"anggota_kelas='"+kelas.getSelectedItem()+"'"; } else { query=query+"anggota_kelas=''"; } String SQL = "update anggota set "+query+" where anggota_id='"+ id.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); bersih(); aktif(false); id.setText(""); id.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); }

Page 129: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

} } }

Setelah admin mengklik tombol Yes, muncul kotak dialog data

berhasil diubah.

Gambar 62. Tampilan Kotak Dialog Data Anggota Berhasil Diubah

Setelah admin mengklik tombol OK, maka dapat kita lihat data

Anggota dengan identitas Anggota 02-456, berubah. Untuk lebih

jelasnya dapat dilihat pada gambar dibawah ini

Page 130: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Gambar 63. Tampilan Proses Ubah Anggota Pustaka

c) Proses Hapus Data Anggota

Proses hapus data pustaka dilakukan oleh admin untuk menghapus

data anggota pustaka, contohnya admin ingin menghapus data anggota

Werslita, maka admin mengklik baris anggota yang akan dihapus dan

mengklik tombol hapus. Untuk lebih jelasnya dapat dilihat pada gambar

dibawah ini

Page 131: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 64. Tampilan Kotak Dialog Proses Hapus Data Anggota Pustaka

Adapun script eksekutor untuk tombol proses hapus data anggota pustaka

adalah sebagai berikut

private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from anggota where anggota_id='"+ id.getText()+"'"; if(db.STUpdate(SQL)==1) {

Page 132: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

new cfg().msgbox("Data berhasil dihapus...",'i'); } db.CloseDB(); bersih(); aktif(false); id.setText(""); id.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } }

Setelah admin mengklik tombol Yes, muncul kotak dialog, data

berhasil dihapus

Gambar 65. Tampilan Kotak Dialog Data Anggota Pustaka Berhasil Dihapus

Setelah admin mengklik tombol OK, maka data anggota Werslita

telah dihapus.

Page 133: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 66. Tampilan Proses Hapus Data Anggota Pustaka

d) Proses Reset Data Anggota Pustaka

Proses reset data anggota digunakan admin apabila admin ingin

membatalkan penginputan data yang dianggap salah. Contohnya, admin

ingin menginputkan ID anggota Rahmadi Zaki dengan alamat Jl. Raya

Mungka, tapi karena terjadi kesalahan admin mengimputkan ID anggota

Ramadi Zaki dengan alamat Payakumbuh, maka admin bisa

membatalkannya dengan mengklik tombol reset

Page 134: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Gambar 67. Tampilan Proses Reset Data Anggota Pustaka

Adapun script eksekutor dari tombol proses reset data anggota pustaka

adalah sebagai berikut

private void

btnResetActionPerformed(java.awt.event.ActionEvent

evt) {

// TODO add your handling code here: resetdata(); } private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); id.setText(""); id.requestFocus(); } }

Page 135: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

e) Proses Keluar Data Anggota Pustaka

Proses Keluar Data anggota digunakan oleh admin untuk keluar dari menu

File data anggota pustaka.

Gambar 68. Tampilan Kotak Dialog Proses Keluar File Menu Data Anggota Pustaka

Script eksekutor untuk tombol proses keluar data anggota pustaka

private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } }

Page 136: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Setelah admin mengklik tombol Yes, maka admin berada pada menu utama

c. Menu Kepustakaan

1) Peminjaman Buku

Gambar 69. Tampilan Menu Kepustakaan Peminjaman Buku

Keterangan :

Pada menu kepustakaan peminjaman buku, admin melakukan proses

input data peminjaman buku yang terdiri dari tanggal pinjam, kategori

anggota (dipilh dengan mengklik salah satu pilihan radio bottom),

identitas peminjam, buku, dan batas pinjam, pengarang, penerbit, tahun

terbit buku, kategori buku (admin tanpa menginputkan data)

Adapun proses yang ada pada menu kepustakaan peminjaman buku

adalah sebagai berikut :

Page 137: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

a) Tombol Simpan Data Peminjaman

Ketika admin menginputkan data peminjaman maka admin mengklik

tombol simpan. Script eksekutor dari tombol proses simpan pada data

peminjaman adalah sebagai berikut

private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(tglBatas.getDate()==null) { new cfg().msgbox("Isi Tanggal Batas Peminjaman...",'w'); tglBatas.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "(pinjam_tgl,anggota_id,buku_id,pinjam_tglbatas) values('"; query = query + tglpinjam+ "','"; query = query + new cfg().GetID(peminjam) + "','"; query = query + new cfg().GetID(buku) + "','"; query = query + tglbts + "')"; String SQL = "insert into pinjam " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); }

Page 138: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

buku.setSelectedIndex(0); buku.requestFocus(); tampilTabel(); } db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } }

Gambar 70. Tampilan Kotak Dialog Proses Simpan Pada Data Peminjaman Buku

Setelah admin melakukan simpan data peminjaman maka dapat dilihat

data anggota Putri Rahayu telah tersimpan

Page 139: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar 71. Tamilan Proses Simpan Data Peminjaman Buku

b) Proses Ubah Data Peminjaman

Proses ubah data peminjaman digunakan admin untuk merubah data

peminjaman. Adapun script eksekutor untuk tombol proses ubah data

peminjaman adalah sebagai berikut :

private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ubahdata(); private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(tglBatas.getDate()==null) { new cfg().msgbox("Isi Tanggal Batas Peminjaman...",'w'); tglBatas.requestFocus(); } else { try

Page 140: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

{ mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "pinjam_tglbatas='"+tglbts+"'"; String SQL = "update pinjam set "+query+" where pinjam_tgl='"+ tglpinjam+"' and " + "anggota_id='"+new cfg().GetID(peminjam)+"' and " + "buku_id='"+new cfg().GetID(buku)+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } buku.setSelectedIndex(0); buku.requestFocus(); tampilTabel(); } db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } }

Gambar 72. Tampilan Proses Ubah data Peminjaman Buku

Page 141: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

c) Proses Hapus Data Peminjaman Buku

Proses hapus data peminjaman buku digunakan oleh admin untuk

menghapus data peminjaman buku. Adapun script eksekutor dari tombol

hapus data peminjaman buku adalah sebagai berikut :

private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from pinjam where pinjam_tgl='"+ tglpinjam+"' and " + "anggota_id='"+new cfg().GetID(peminjam)+"' and buku_id='"+new cfg().GetID(buku)+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } buku.setSelectedIndex(0); buku.requestFocus(); tampilTabel(); } db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } }

Page 142: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Gambar 73. Tampilan Kotak Dialog Proses Hapus Data Peminjaman Buku

Setelah admin mengklik tombol Yes, maka data Putri Rahayu,

meminjam buku Contextual Teaching Learning akan terhapus.

Gambar 74. Tampilan Proses Hapus Data Peminjaman Buku

Page 143: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

d) Proses Reset Data Peminjaman Buku

Proses reset data peminjaman buku ini berfungsi untuk membatalkan

entri data yang diinputkan oleh admin. Adapun script eksekutor untuk

tombol proses reset adalah sebagai berikut :

private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: reset(); } private void reset() { int pil = JOptionPane.showConfirmDialog(null,"Reset Order di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersihPinjam(); aktifPinjam(false); resetPinjam(); tampilTabel(); tombol(0, 0); } }

Gambar 75. Tampilan Proses Reset Data Peminjaman Buku

Page 144: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

e) Proses Keluar Data Peminjaman Buku

Proses Keluar Data Peminjaman Buku berfungsi untuk keluar dari

menu data peminjaman buku. Adapun script eksekutor untuk tombol

proses keluar adalah sebagai berikut.

private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); } private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } }

Gambar 76. Tampilan Proses Keluar Data Peminjaman Buku

Page 145: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

2) Pengembalian Buku

Gambar 77. Tampilan Menu Kepustakaan Pengembalian Buku

Page 146: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Keterangan :

Pada menu kepustakaan pengembalian buku, terdapat 2 (dua) tab. Tab

pertama, cari data peminjam buku dan data pengembalian buku. Pada Tab cari

data peminjam buku digunakan untuk melihat data peminjam buku dan dilkukan

dengan menginputkan nama anggota pustaka lalu dengan mengklik tombol proses

peminjaman maka ditampilakan data peminjam buku yang bersangkutan.

Sedangkan pada tab data pengembalian buku terdapat data peminjaman buku.

Adapun proses yang ada pada menu kepustakaan pengembalian buku adalah

sebagai berikut

a) Proses Cari Peminjam Buku

Adapun script eksekutor dari tombol proses simpan dari pengembalian

buku adalah sebagai berikut :

private void btnCariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(tampilTabel()==0) { JOptionPane.showMessageDialog(null, "Data tidak ada","Pesan",JOptionPane.INFORMATION_MESSAGE); } }

b) Proses Tombol Pemrosesan Peminjaman Buku

Adapun script eksekutor dari tombol proses pemrosesan peminjaman

buku dari pengembalian buku adalah sebagai berikut :

private void btnProsesActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here: Proses(); }

private void Proses() {

Page 147: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

if(myTabel.getSelectedRow()>=0) { String pinj = myTabel.getValueAt(myTabel.getSelectedRow(), 6).toString(); String angg = myTabel.getValueAt(myTabel.getSelectedRow(), 2).toString(); String buku = new cfg().GetID(myTabel.getValueAt(myTabel.getSelectedRow(), 4)); int ok = JOptionPane.showConfirmDialog(null, "Proses pengembalian buku untuk "+myTabel.getValueAt(myTabel.getSelectedRow(), 1) +" ?", "Update Data", JOptionPane.YES_NO_OPTION); if(ok==JOptionPane.YES_OPTION) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; String tgl = new mydate().curDate(); String bln = new mydate().curMonth(false); String thn = new mydate().curYear()+""; query = query + "pinjam_tglkembali='"+thn+"-"+bln+"-"+tgl+"'"; String SQL = "update pinjam set "+query+" " + "where pinjam_tgl='"+new mydate().mySQLDate(pinj)+"' and " + "anggota_id='"+angg+"' and " + "buku_id='"+buku+"'"; //System.out.println(SQL); if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } tampilTabel(); datakembali(); } private int tampilTabel() {

Page 148: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

int no=0 ; String cr = cari.getText(); String kriteria = ""; if(cr.length()>0) { kriteria = "and anggota_nama like '"+ cr + "%'"; } try { DefaultTableModel tabelku; Object[] row = { "No.", //0 "Nama Peminjam", //1 "ID Peminjam", //2 "Tipe", //3 "Buku", //4 "Kategori", //5 "Tanggal Pinjam", //6 "Tanggal Batas", //7 "Perkiraan Keterlambatan", //8 "Perkiraan Denda"}; //9 tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from pinjam t1, buku t2, anggota t3, kategori t4 " + "where t1.anggota_id=t3.anggota_id and " + "t1.buku_id=t2.buku_id and " + "t2.kategori_id=t4.kategori_id and " + "pinjam_tglkembali is null " + kriteria + "order by pinjam_tgl desc")==1) { String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7="",t8="",t9=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length(), row[8].toString().length(), row[9].toString().length()}; while(db.rs.next()) { no = no+1;

Page 149: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

nom=no+"."; t6 = new mydate().myTextDate(db.rs.getString("pinjam_tgl")); t7 = new mydate().myTextDate(db.rs.getString("pinjam_tglbatas")); String kembali = db.rs.getString("pinjam_tglkembali"); long lebih = 0; if(kembali==null){ //t8 = ""; Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = new java.sql.Date(new Date().getTime()); long lb = new mydate().LamaHari(batas, curdate); if(lb>=0){ lebih = lb; } } else{ //t8 = new mydate().myTextDate(kembali); Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = db.rs.getDate("pinjam_tglkembali"); lebih = new mydate().LamaHari(batas, curdate); } t1 = db.rs.getString("anggota_nama"); t2 = db.rs.getString("anggota_id"); t3 = db.rs.getString("anggota_tipe"); t4 = db.rs.getString("buku_id")+" -- "+db.rs.getString("buku_judul"); t5 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); t8 = lebih+" Hari"; t9 = ""+(lebih*500); String[] data = {nom,t1,t2,t3,t4,t5,t6,t7,t8,t9}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); }

Page 150: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#tabel",'e'); } return no; } private void datakembali() { try { DefaultTableModel tabelku; Object[] row = { "No.", //0 "Nama Peminjam", //1 "ID Peminjam", //2 "Tipe", //3 "Buku", //4 "Kategori", //5 "Tanggal Pinjam", //6 "Tanggal Batas", //7 "Tanggal Kembali", //8 "Keterlambatan", //9 "Denda"}; //10 tabelku = new DefaultTableModel(null, row); tabelkembali.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from pinjam t1, buku t2, anggota t3, kategori t4 " + "where t1.anggota_id=t3.anggota_id and " + "t1.buku_id=t2.buku_id and " + "t2.kategori_id=t4.kategori_id and " + "pinjam_tglkembali is not null "+ "order by pinjam_tglkembali desc")==1) { int no=0 ;

Page 151: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7="",t8="",t9="",t10=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length(), row[8].toString().length(), row[9].toString().length(), row[10].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t6 = new mydate().myTextDate(db.rs.getString("pinjam_tgl")); t7 = new mydate().myTextDate(db.rs.getString("pinjam_tglbatas")); String kembali = db.rs.getString("pinjam_tglkembali"); long lebih = 0; if(kembali==null){ t8 = ""; Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = new java.sql.Date(new Date().getTime()); long lb = new mydate().LamaHari(batas, curdate); if(lb>=0){ lebih = lb; } } else{ t8 = new mydate().myTextDate(kembali); Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = db.rs.getDate("pinjam_tglkembali"); lebih = new mydate().LamaHari(batas, curdate); } t1 = db.rs.getString("anggota_nama"); t2 = db.rs.getString("anggota_id"); t3 = db.rs.getString("anggota_tipe"); t4 = db.rs.getString("buku_id")+" -- "+db.rs.getString("buku_judul");

Page 152: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

t5 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); if(lebih<0){ lebih = 0; t9 = ""; }else{ t9 = lebih+" Hari"; } t10= ""+(lebih*500); String[] data = {nom,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } myTab.setTitleAt(1, "Data Pengembalian ( "+no+" )"); db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<tabelkembali.getColumnCount();i++) { col = tabelkembali.getColumnModel().getColumn(i); int fSize = tabelkembali.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#tabel",'e'); } }

Page 153: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

d. Laporan

1) Laporan Buku

Laporan Buku merupakan laporan ketersedian buku yang ada pada

SMP.N 1 Kec. Mungka.

Gambar 78. File Menu Laporan Buku

Keterangan :

Ketika admin mengklik tombol preview, maka script eksekutornya

adalah sebagai berikut

private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("pimp", pimp.getText());

Page 154: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getAbsolutePath("Program Pustaka")+"Laporan\\LaporanBuku.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); }

Tampilan setelah mengeksekusi tombol preview

Gambar 79. Tampilan Halaman Laporan Buku

Selanjutnya jika admin ingin keluar dari laporan, tinggal mengklik

tombol keluar adapun script eksekutor untuk tombol proses keluar adlah

sebagai berikut:

Page 155: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); }

2) Laporan Peminjaman Buku

Laporan Peminjaman Buku, merupakan laporan dari data peminjaman dan

pengambalian buku dan denda.

Gambar 80. File Menu Laporan Peminjaman Buku

Keterangan :

Ketika admin mengklik tombol preview untuk laporamn peminjaman

buku, script eksekutornya adalah sebagai berikut :

private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); }

Page 156: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("periode", tahun.getYear()+"-"+new mydate().zero_(bulan.getMonth()+1)+"%"); prs.put("pimp", pimp.getText()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getAbsolutePath("Program Pustaka")+"Laporan\\LaporanPeminjaman.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); }

Tampilan setelah mengeksekusi tombol preview

Gambar 81. Tampilan Laporan Peminjaman Buku

Page 157: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Selanjutnya jika admin ingin keluar dari menu laporan peminjaman buku

maka admin tinggal mengklik tombol keluar , adapun script eksekutornya adalah

sebagai berikut:

private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); }

3) Laporan Peminjaman Buku/ 3 Bulan

Gambar. 82 File Menu Laporan Peminjaman/ 3 Bulan

Keterangan :

Ketika admin mengklik tombol preview untuk laporamn peminjaman

buku, script eksekutornya adalah sebagai berikut :

public class lapPinjamPer3Bln extends javax.swing.JInternalFrame { public lapPinjamPer3Bln() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN BUKU / 3 BULAN");

Page 158: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

cmbperiode(); periode.setSelectedIndex(0); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("periode1", periode(1)); prs.put("pim","( "+pimp.getText()+" )"); prs.put("periode2", periode(2)); prs.put("periode3", periode(3)); prs.put("bulan", periode.getSelectedItem()+" "+tahun.getYear()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getReportPath()+"LapPinjamPer3Bln.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); }

Page 159: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void cmbperiode() { periode.removeAllItems(); periode.addItem("Januari, Februari, Maret"); periode.addItem("April, Mei, Juni"); periode.addItem("Juli, Agustus, September"); periode.addItem("Oktober, Nopember, Desember"); } private String periode(int p) { String per = "{tahun}-{b}%"; per = per.replace("{tahun}", tahun.getYear()+""); if(periode.getSelectedIndex()==0) { if(p==1) { per = per.replace("{b}", "01"); }else if(p==2) { per = per.replace("{b}", "02"); }else if(p==3) { per = per.replace("{b}", "03"); } }else if(periode.getSelectedIndex()==1) { if(p==1) { per = per.replace("{b}", "04"); }else if(p==2) { per = per.replace("{b}", "05"); }else if(p==3) { per = per.replace("{b}", "06"); } }else if(periode.getSelectedIndex()==2) { if(p==1)

Page 160: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

{ per = per.replace("{b}", "07"); }else if(p==2) { per = per.replace("{b}", "08"); }else if(p==3) { per = per.replace("{b}", "09"); } }else if(periode.getSelectedIndex()==3) { if(p==1) { per = per.replace("{b}", "10"); }else if(p==2) { per = per.replace("{b}", "11"); }else if(p==3) { per = per.replace("{b}", "12"); } } return per; }

Tampilan halaman laporan Peminjaman Buku/ 3Bulan

Gambar. 83 Halaman Tampilan Laporan Peminjaman Buku/ 3bulan

Page 161: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

4) Laporan Peminjaman Buku/ 6 Bulan

Gambar. 84 File Menu Laporan Peminjaman Buku/ 6Bulan

Keterangan :

Ketika admin mengklik tombol preview untuk laporamn peminjaman

buku, script eksekutornya adalah sebagai berikut :

import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.view.JasperViewer; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class lapPinjamPer6Bln extends javax.swing.JInternalFrame { public lapPinjamPer6Bln() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN BUKU / 6 BULAN"); cmbperiode(); periode.setSelectedIndex(0); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0)

Page 162: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

{ new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("periode1", periode(1)); prs.put("periode2", periode(2)); prs.put("periode3", periode(3)); prs.put("periode4", periode(4)); prs.put("periode5", periode(5)); prs.put("periode6", periode(6)); prs.put("pim","( "+pimp.getText()+" )"); prs.put("bulan", periode.getSelectedItem()+" "+tahun.getYear()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getReportPath()+"LapPinjamPer6Bln.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); } private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: }

Page 163: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void cmbperiode() { periode.removeAllItems(); periode.addItem("Januari s/d Juni"); periode.addItem("Juli s/d Desember"); } private String periode(int p) { String per = "{tahun}-{b}%"; per = per.replace("{tahun}", tahun.getYear()+""); if(periode.getSelectedIndex()==0) { if(p==1) { per = per.replace("{b}", "01"); }else if(p==2) { per = per.replace("{b}", "02"); }else if(p==3) { per = per.replace("{b}", "03"); }else if(p==4) { per = per.replace("{b}", "04"); }else if(p==5) { per = per.replace("{b}", "05"); }else if(p==2) { per = per.replace("{b}", "06"); } }else if(periode.getSelectedIndex()==1) { if(p==1) { per = per.replace("{b}", "07"); }else if(p==2) { per = per.replace("{b}", "08"); }else if(p==3) { per = per.replace("{b}", "09");

Page 164: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

}else if(p==4) { per = per.replace("{b}", "10"); }else if(p==5) {per = per.replace("{b}", "11"); }else if(p==2) {per = per.replace("{b}", "12"); }} return per;}

Tampilan Halaman Laporan Peminjaman Buku/ 6Bulan

Gambar.85 Halaman Tampilan Laporan Peminjaman

Buku/ 6Bulan

5) Laporan Peminjaman Buku/ Tahun

Gambar. 86 File Laporan Peminjaman Buku/ Tahun

Page 165: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Keterangan :

Ketika admin mengklik tombol preview untuk laporamn peminjaman

buku, script eksekutornya adalah sebagai berikut :

public class lapPinjamPerTahun extends javax.swing.JInternalFrame { public lapPinjamPerTahun() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN REKAP PEMINJAMAN / TAHUN"); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("tahun", tahun.getYear()+"%"); prs.put("pim", pimp.getText()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getReportPath()+"LapPinjamPerTahun.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } }

Page 166: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); } private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: }

Tampilan Halaman Laporan Peminjaman Buku/ Tahun

Page 167: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Gambar. 87 Halaman Tampilan Laporan Peminjaman Buku/ Tahun

2. Program Client

Program client merupakan program yang dirancang untuk client,

program client dibuat agar anggota pustaka mengetahui koleksi buku yang

ada pada perpustakaan SMP Negeri 1 Kec. Mungka. Adapun tampilan dari

program client sebagai berikut.

Gambar 88. Tampilan Program Client Cari Buku

Keterangan :

Pada program client cari buku, client menginputkan data pencarian

berupa kategori buku dan judul buku lalu mengklik tombol cari buku,

adapun script untuk tombol proses cari buku adalah sebagai berikut:

private void btnCariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

Page 168: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

tampilTabel(); } private void tampilTabel() { String cari = ""; if(cekKategori.isSelected()==true) { cari = " and t1.kategori_id='"+new cfg().GetID(kategori)+"' "; } if(cekJudul.isSelected()==true) { cari = cari+" and buku_judul like '%"+judul.getText()+"%'"; } try { DefaultTableModel tabelku; Object[] row = {"No.","Kode Buku","Judul","Pengarang","Penerbit","Tahun Terbit","Kategori"}; tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from buku t1, kategori t2 where t1.kategori_id=t2.kategori_id " + cari + "order by t1.kategori_id,buku_judul asc")==1) { int no=0 ; String nom="",t1="",t2="",t3="",t4="",t5="",t6=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+".";

Page 169: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

t1 = db.rs.getString("buku_id"); t2 = db.rs.getString("buku_judul"); t3 = db.rs.getString("buku_pengarang"); t4 = db.rs.getString("buku_penerbit"); t5 = db.rs.getString("buku_tahun"); t6 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); String[] data = {nom,t1,t2,t3,t4,t5,t6}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } }

Page 170: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

BAB V

PENUTUP

A. Kesimpulan

Berdasasrkan analisa perancangan dan implementasi sistem yang telak

dilakukan, maka dapat diambil kesimpulan sebagai berikut :

1. Kegiatan pengolahan data perpustakaan yang sebelumnya masih dilakukan

secara manual/ paper based dan sekarang beralih ke pengolahan data

berbasiskan komputer

2. Sistem Informasi Perpustakaan pada SMP Negeri. 1 Kec. Mungka

memberikan informasi tentang data buku pada komputer client sehingga

memberikan informasi tentang buku apa saja yang tersedia pada

perpustakaan SMP Negeri.1 Kec. Mungka

3. Sistem Informasi pustaka pada SMP Negeri.1 Kec. Mungka dapat

memberikan kemudahan bagi petugas pustaka dalam menginventarisasi

buku-buku perpustakaan

B. Saran

Berdasarkan Implementasi dan uji coba sistem maka penulis memberikan

saran yang dapat melengkapi dan memperbaiki sistem informasi

perpustakaan pada SMP Negeri.1 Kec. Mungka ini dimasa yang akan

datang adalah sebagai berikut :

Page 171: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

1. Proses input data harus dilakukan dengan teliti sehingga informasi yang

dihasilkan sesuai dengan yang diharapkan dalam transaksi peminjaman,

pengembalian dan data buku

2. Sistem informasi yang telah penulis buat dapat dikembangkan lagi seperti

menambah entitas pada program pencarian data buku

3. Akhirnya, semoga sistem informasi perpustakaan yang terkomputerisasi

ini dapat membantu segala civitas akademika pada SMP Negeri.1 Kec.

Mungka.

Page 172: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

DAFTAR PUSTAKA

Al-Ghazali, Abdul Katar. (2010). Jenis-jenis Metode Penelitian Pendidikan. http://www.akalgi.co.cc/2009/09/jenis-jenis-metode-penelitian.html Diakses tanggal 09 mei 2011, 14:22 WIB

Akib, Faisal. (2009). Topologi Jaringan http://teknik-informatika.com/topologi-jaringan/ Diakses tanggal, 31 Juli 2011, 15:08 WIB

Astika, Budi. (2008). Memahami Database Mysql http://budiastika.blogspot.com/2008/11/memahami-database-mysql.html Diakses tanggal 15 mei 2011, 08: 50 WIB

Darmono. (2002). Perpustakaan Sekolah. Jakarta: Grasindo

Fredynaonnya’s blog. (2010). Pengertian Informasi http://f123dynaonnya.wordpress.com/2010/07/11/pengertian-informasi/ Diakses tanggal 10 mei 2011, 11:30 WIB

Hakim S, Rachmad & Sutarto. (2008). Mastering Java. Jakarta : PT. Elex Media Komputindo

Hamakonda, P. Towa & Tairas. (2008). Pengantar Klasifikasi Persepuluh Dewey. Jakarta: Gunung Mulia

Harianto, Kristanto (2004). Konsep dan Perancangan Database. Yogyakarta: Andi

Husni, Iskandar Pohan & Kusnassriyanto, Saipul Bahri (2004). Pengantar

Perancangan Sistem. Yogyakarta : Andi Offset

Jogianto HM. (2005). Analisis dan Desain. Yogyakarta: Andi Offset

Lasa. Hs (2009). Manajemen Perpustakaan Sekolah. Yogyakarta: Pinus

Leman. (1998). Metodologi Pengembangan Sistem Informasi. Jakarta: PT. Elex Media Komputindo

Nurdiana R Lila Sinaga, Nurdiana R dan Brahmana, Rayenda Khresna MR. (2005). Analisis dan Desain Informasi

Page 173: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Nazir, Moh. (1998). Metode Penelitian. Jakarta: Ghalia Indonesia

Ramadhan, Arif. (2006). Pengenalan Jaringan Komputer. Jakarta: PT. Elex Media Komputindo

Randhi, Akbar. (2007). Definisi Komputer Menurut Para Ahli. http://wss-id.org/blogs/akbar_randhi_sby/archive/2007/09/25/definisi-komputer-menurut-para-ahli.aspx , Diakses tanggal 10 mei 2011, 11:05 WIB

Syafrizal, Melwin. (2005). Pengantar Jaringan Komputer. Yogyakarta: Andi

Supardi, Yuniar. (2007). Pemrograman Database dengan Java dan MySQL. Jakarta: PT. Elex Media Komputindo

Universitas Negeri Padang (2009). Buku Panduan Penulisan Tugas Akhir/ Skripsi Padang: UNP

http://id.wikipedia.org/wiki/Sistem. Diakses tanggal 10 mei 2011, 11:1

http://usupress.usu.ac.id/files/layout Analisis dan Desain Sistem Informasi_normal_awal.pdf Diakses tanggal 10 mei 2011, 11:00 WIB

http://f4bregaz.blogspot.com/2009/02/apa-itu-xampp-kepanjangan-dari-xampp.html. Diakses tanggal 01 Agustus 2011, 01:00 WIB

Page 174: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

Page 175: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Lampiran 1. Listing Program Login

import javax.swing.*; public class Login extends javax.swing.JFrame { /** Creates new form Login */ public Login() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LOGIN"); } private void usernameCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void usernameActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void usernameKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: caridata(); } private void btnLoginKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { caridata(); } } private void btnLoginKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); }

Page 176: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

private void btnExitKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { keluarform(); } } private void btnExitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void loginasActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(loginas.getSelectedIndex()==0) { username.setText(""); password.setText(""); } else { username.setText("Guest"); password.setText("Guest"); } } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { Login x = new Login(); x.setVisible(true); x.show(); x.toFront(); x.setSize(490, 330); } }); } private void caridata() { if(loginas.getSelectedIndex()==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("Select * from user where username='"+username.getText()+"' and password='"+password.getText()+"'")==1) { if(db.rs.next()) {

Page 177: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

MenuUtama x = new MenuUtama(false); x.setSize(1024,768); x.setExtendedState(MAXIMIZED_BOTH); x.setVisible(true); x.show(); this.dispose(); } else { new cfg().msgbox("Username / Password Salah...", 'i'); } } } db.CloseRS(); db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } else { MenuUtama x = new MenuUtama(true); x.setSize(1024,768); x.setExtendedState(MAXIMIZED_BOTH); x.setVisible(true); x.show(); this.dispose(); } } private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari program... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { System.exit(0); } } private void tampilCariBuku() { CariBuku x = new CariBuku(); x.setSize(709, 664); x.setVisible(true); x.show(); this.dispose(); } // Variables declaration - do not modify private javax.swing.JButton btnExit; private javax.swing.JButton btnLogin; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2;

Page 178: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblKode1; private javax.swing.JLabel lblNama1; private javax.swing.JComboBox loginas; private javax.swing.JPasswordField password; private javax.swing.JTextField username; // End of variables declaration } Lampiran 2. Listing Program Menu Utama public class MenuUtama extends javax.swing.JFrame { public MenuUtama(boolean guest) { initComponents(); this.setTitle(".: " + new SoftID().NamaPerusahaan+" :."); this.img.setSize(1800, 800); if(guest==true) { myPil.setVisible(false); Cari x = new Cari(); dp.add(x); x.setSize(980, 675); x.show(); x.toFront(); } } private void mkKembaliActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: filePengembalian x = new filePengembalian(); dp.add(x); x.setSize(1045, 620); x.show(); x.toFront(); } private void mkPinjamActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: filePeminjaman x = new filePeminjaman(); dp.add(x); x.setSize(990, 620); x.show(); x.toFront();

Page 179: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

} private void mlBukuActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: lapBuku x = new lapBuku(); dp.add(x); x.setSize(520, 330); x.show(); x.toFront(); } private void mlPinjamActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: lapPinjam x = new lapPinjam(); dp.add(x); x.setSize(520, 330); x.show(); x.toFront(); } private void mfExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: System.exit(0); } private void mfAnggotaActionPerformed(java.awt.event.ActionEvent evt) { fileAnggota x = new fileAnggota(); dp.add(x); x.setSize(809, 680); x.show(); x.toFront(); } private void mfBukuActionPerformed(java.awt.event.ActionEvent evt) { fileBuku x = new fileBuku(); dp.add(x); x.setSize(720,680); x.show(); x.toFront(); } private void mfKategoriActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: fileKategoriBuku fbrg = new fileKategoriBuku(); dp.add(fbrg); fbrg.setSize(525, 680); fbrg.show(); fbrg.toFront(); }

Page 180: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { } }); } // Variables declaration - do not modify private javax.swing.JDesktopPane dp; private javax.swing.JLabel img; private javax.swing.JSeparator jSeparator1; private javax.swing.JMenu mFile; private javax.swing.JMenu mLap; private javax.swing.JMenu mOrder; private javax.swing.JMenuItem mfAnggota; private javax.swing.JMenuItem mfBuku; private javax.swing.JMenuItem mfExit; private javax.swing.JMenuItem mfKategori; private javax.swing.JMenuItem mkKembali; private javax.swing.JMenuItem mkPinjam; private javax.swing.JMenuItem mlBuku; private javax.swing.JMenuItem mlPinjam; private javax.swing.JMenuBar myPil; // End of variables declaration } Lampiran 3. Listing Program Kategori Buku import javax.swing.*; import javax.swing.table.*; public class fileKategoriBuku extends javax.swing.JInternalFrame { public fileKategoriBuku() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("FILE > KATEGORI BUKU"); } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); tampilTabel(); }

Page 181: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

private void idKategoriActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(idKategori.getText().length()>0) { caridata(); } } private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); } private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: resetdata(); } private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); } private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ubahdata(); } private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); } private void idKategoriCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void idKategoriKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: // new cfg().limtext_jtf(kode_barang, 20); // new cfg().deltabu_jtf(kode_barang); } private void btnSimpanKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: }

Page 182: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

private void btnUbahKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnHapusKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnResetKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnExitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnUbahKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { ubahdata(); } } private void btnSimpanKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { simpandata(); } } private void btnHapusKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { hapusdata(); } } private void btnResetKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { resetdata(); } } private void btnExitKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here:

Page 183: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

if(evt.getKeyCode()==10) { keluarform(); } } private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: bersih(); aktif(false); idKategori.setText(""); } private void myTabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: idKategori.setText(""+myTabel.getValueAt(myTabel.getSelectedRow(), 1)); caridata(); } private void nmKategoriActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void nmKategoriKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void caridata() { bersih(); aktif(true); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("Select * from kategori where kategori_id='"+idKategori.getText()+"'")==1) { if(db.rs.next()) { idKategori.setEditable(false); nmKategori.setText(db.rs.getString("kategori_nama")); tombol(0,1); } else { idKategori.setEditable(false);

Page 184: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

tombol(1,0); } } } db.CloseRS(); db.CloseDB(); nmKategori.requestFocus(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nmKategori.getText().length()==0) { new cfg().msgbox("Nama Kategori kosong...",'w'); nmKategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "values('"; query = query + idKategori.getText() + "','"; query = query + nmKategori.getText() + "')"; String SQL = "insert into kategori " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } db.CloseDB(); bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } }

Page 185: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

} private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nmKategori.getText().length()==0) { new cfg().msgbox("Nama Barang kosong...",'w'); nmKategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "kategori_nama='"+nmKategori.getText()+"'"; String SQL = "update kategori set "+query+" where kategori_id='"+ idKategori.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) {

Page 186: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

String SQL = "delete from kategori where kategori_id='"+ idKategori.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } db.CloseDB(); bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } } private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); idKategori.setText(""); idKategori.requestFocus(); } } private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } } private void bersih() { nmKategori.setText(""); } private void aktif(boolean yes) { nmKategori.setEnabled(yes); if(yes==false) { tombol(0,0); tampilTabel(); idKategori.setEditable(true); }

Page 187: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

} private void tombol(int x,int y ) { if(x==1){ btnSimpan.setEnabled(true); } else{ btnSimpan.setEnabled(false); } if(y==1){ btnUbah.setEnabled(true); btnHapus.setEnabled(true);} else{ btnUbah.setEnabled(false); btnHapus.setEnabled(false); } } private void tampilTabel() { try { DefaultTableModel tabelku; Object[] row = {"No.","Kode Kategori","Nama Kategori"}; tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from kategori order by kategori_id asc")==1) { int no=0 ; String nom="",t1="",t2=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t1 = db.rs.getString("kategori_id"); t2 = db.rs.getString("kategori_nama"); String[] data = {nom,t1,t2}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); }

Page 188: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } // Variables declaration - do not modify private javax.swing.JButton btnExit; private javax.swing.JButton btnHapus; private javax.swing.JButton btnReset; private javax.swing.JButton btnSimpan; private javax.swing.JButton btnUbah; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JTextField idKategori; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel4; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblNama1; private javax.swing.JTable myTabel; private javax.swing.JTextField nmKategori; // End of variables declaration }

Page 189: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Lampiran 4. Listing Program Buku import javax.swing.*; import javax.swing.table.*; public class fileBuku extends javax.swing.JInternalFrame { public fileBuku() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("FILE > BUKU"); } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: cmbKategori(); bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); tampilTabel(); } private void idBukuActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(idBuku.getText().length()>0) { caridata(); } } private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); } private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: resetdata(); } private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); }

Page 190: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ubahdata(); } private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); } private void judulActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void idBukuCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void idBukuKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: new cfg().limtext_jtf(idBuku, 20); new cfg().deltabu_jtf(idBuku); } private void judulKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnSimpanKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnUbahKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnHapusKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnResetKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnExitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here:

Page 191: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

} private void btnUbahKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { ubahdata(); } } private void btnSimpanKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { simpandata(); } } private void btnHapusKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { hapusdata(); } } private void btnResetKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { resetdata(); } } private void btnExitKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { keluarform(); } } private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: bersih(); aktif(false); idBuku.setText(""); } private void penerbitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: }

Page 192: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

private void penerbitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void myTabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: idBuku.setText(""+myTabel.getValueAt(myTabel.getSelectedRow(), 1)); caridata(); } private void pengarangActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pengarangKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void stokActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void stokKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void sumberActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void sumberKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void rakActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void rakKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void cmbKategori() { for(int i=0;i<kategori.getItemCount();) {

Page 193: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

kategori.removeItemAt(i); } kategori.addItem(""); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from kategori order by kategori_id asc")==1) { while(db.rs.next()) { kategori.addItem(db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama")); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#Combo Kategori",'e'); } } private void caridata() { bersih(); aktif(true); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("Select * from buku t1, kategori t2 where t1.kategori_id=t2.kategori_id and " + "buku_id='"+idBuku.getText()+"'")==1) { if(db.rs.next()) { idBuku.setEditable(false); judul.setText(db.rs.getString("buku_judul")); pengarang.setText(db.rs.getString("buku_pengarang")); penerbit.setText(db.rs.getString("buku_penerbit")); tahun.setYear(db.rs.getInt("buku_tahun")); kategori.setSelectedItem(db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama")); sinopsis.setText(db.rs.getString("buku_sinopsis")); stok.setText(db.rs.getString("stok")); sumber.setText(db.rs.getString("sumber")); rak.setText(db.rs.getString("rak"));

Page 194: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

tombol(0,1); } else { idBuku.setEditable(true); tombol(1,0); } } } db.CloseRS(); db.CloseDB(); judul.requestFocus(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(judul.getText().length()==0) { new cfg().msgbox("Judul Buku kosong...",'w'); judul.requestFocus(); } else if(pengarang.getText().length()==0) { new cfg().msgbox("Pengarang kosong...",'w'); pengarang.requestFocus(); } else if(penerbit.getText().length()==0) { new cfg().msgbox("Penerbit kosong...",'w'); penerbit.requestFocus(); } else if(kategori.getSelectedIndex()<=0) { new cfg().msgbox("Pilih Kategori Buku...",'w'); kategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "values('"; query = query + idBuku.getText() + "','"; query = query + judul.getText() + "','"; query = query + pengarang.getText() + "','";

Page 195: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

query = query + penerbit.getText() + "','"; query = query + tahun.getYear() + "','"; query = query + new cfg().GetID(kategori) + "','"; query = query + sinopsis.getText() + "','"; query = query + stok.getText() + "','"; query = query + sumber.getText() + "','"; query = query + rak.getText() + "')"; String SQL = "insert into buku " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } db.CloseDB(); bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(judul.getText().length()==0) { new cfg().msgbox("Judul Buku kosong...",'w'); judul.requestFocus(); } else if(pengarang.getText().length()==0) { new cfg().msgbox("Pengarang kosong...",'w'); pengarang.requestFocus(); } else if(penerbit.getText().length()==0) { new cfg().msgbox("Penerbit kosong...",'w'); penerbit.requestFocus(); } else if(kategori.getSelectedIndex()<=0) { new cfg().msgbox("Pilih Kategori Buku...",'w');

Page 196: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

kategori.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "buku_judul='"+judul.getText()+"',"; query = query + "buku_pengarang='"+pengarang.getText()+"',"; query = query + "buku_penerbit='"+penerbit.getText()+"',"; query = query + "buku_tahun='"+tahun.getYear()+"',"; query = query + "kategori_id='"+new cfg().GetID(kategori)+"',"; query = query + "buku_sinopsis='"+sinopsis.getText()+"',"; query = query + "stok='"+stok.getText()+"',"; query = query + "sumber='"+sumber.getText()+"',"; query = query + "rak='"+rak.getText()+"'"; String SQL = "update buku set "+query+" where buku_id='"+ idBuku.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try

Page 197: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

{ mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from buku where buku_id='"+ idBuku.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } db.CloseDB(); bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } } private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); idBuku.setText(""); idBuku.requestFocus(); } } private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } } private void bersih() { judul.setText(""); pengarang.setText(""); penerbit.setText(""); tahun.setYear(2000); kategori.setSelectedIndex(0); sinopsis.setText(""); stok.setText("0"); sumber.setText("");

Page 198: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

rak.setText(""); } private void aktif(boolean yes) { judul.setEnabled(yes); pengarang.setEnabled(yes); penerbit.setEnabled(yes); tahun.setEnabled(yes); kategori.setEnabled(yes); sinopsis.setEnabled(yes); stok.setEnabled(yes); sumber.setEnabled(yes); rak.setEnabled(yes); if(yes==false) { tampilTabel(); idBuku.setEditable(true); tombol(0,0); } } private void tombol(int x,int y ) { if(x==1){ btnSimpan.setEnabled(true); } else{ btnSimpan.setEnabled(false); } if(y==1){ btnUbah.setEnabled(true); btnHapus.setEnabled(true);} else{ btnUbah.setEnabled(false); btnHapus.setEnabled(false); } } private void tampilTabel() { try { DefaultTableModel tabelku; Object[] row = {"No.","Kode Buku","Judul","Pengarang","Penerbit","Tahun Terbit","Kategori","Sinopsis","Stok","Sumber Dana","Rak"}; tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from buku t1, kategori t2 where t1.kategori_id=t2.kategori_id " + "order by t1.kategori_id,buku_judul asc")==1) { int no=0 ; String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7="", t8="", t9="", t10="";

Page 199: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length(), row[8].toString().length(), row[9].toString().length(), row[10].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t1 = db.rs.getString("buku_id"); t2 = db.rs.getString("buku_judul"); t3 = db.rs.getString("buku_pengarang"); t4 = db.rs.getString("buku_penerbit"); t5 = db.rs.getString("buku_tahun"); t6 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); t7 = db.rs.getString("buku_sinopsis"); t8 = db.rs.getString("stok"); t9 = db.rs.getString("sumber"); t10 = db.rs.getString("rak"); String[] data = {nom,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); }

Page 200: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

} } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } // Variables declaration - do not modify private javax.swing.JButton btnExit; private javax.swing.JButton btnHapus; private javax.swing.JButton btnReset; private javax.swing.JButton btnSimpan; private javax.swing.JButton btnUbah; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JTextField idBuku; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel4; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTextField judul; private javax.swing.JComboBox kategori; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblHarga; private javax.swing.JLabel lblKet1; private javax.swing.JLabel lblKet2; private javax.swing.JLabel lblKet3; private javax.swing.JLabel lblKet4; private javax.swing.JLabel lblKet5; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblNama; private javax.swing.JLabel lblNama1; private javax.swing.JLabel lblSatuan; private javax.swing.JTable myTabel; private javax.swing.JTextField penerbit; private javax.swing.JTextField pengarang; private javax.swing.JTextField rak; private javax.swing.JTextArea sinopsis; private javax.swing.JTextField stok; private javax.swing.JTextField sumber; private com.toedter.calendar.JYearChooser tahun; // End of variables declaration }

Page 201: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

Lampiran. 5 Listing Program Anggota Pustaka import javax.swing.*; import javax.swing.table.*; public class fileAnggota extends javax.swing.JInternalFrame { public fileAnggota() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("FILE > ANGGOTA"); kelas.setVisible(false); } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: bersih(); aktif(false); id.setText(""); id.requestFocus(); tampilTabel(); } private void idActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(id.getText().length()>0) { caridata(); } } private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); } private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: resetdata(); } private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); } private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) {

Page 202: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

// TODO add your handling code here: ubahdata(); } private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: hapusdata(); } private void namaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void idCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void idKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: new cfg().limtext_jtf(id, 20); new cfg().deltabu_jtf(id); } private void namaKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: new cfg().limtext_jtf(nama, 30); } private void btnSimpanKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnUbahKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnHapusKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnResetKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnExitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: }

Page 203: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

private void btnUbahKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { ubahdata(); } } private void btnSimpanKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { simpandata(); } } private void btnHapusKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { hapusdata(); } } private void btnResetKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { resetdata(); } } private void btnExitKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { keluarform(); } } private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: bersih(); aktif(false); id.setText(""); } private void myTabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: id.setText(""+myTabel.getValueAt(myTabel.getSelectedRow(), 1)); caridata();

Page 204: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

} private void cpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void cpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void radSiswaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: showKelas(true); } private void radGuruActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: showKelas(false); } private void radUmumActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: showKelas(false); } private void caridata() { bersih(); aktif(true); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("Select * from anggota where anggota_id='"+id.getText()+"'")==1) { if(db.rs.next()) { id.setEditable(false); nama.setText(db.rs.getString("anggota_nama")); new cfg().setJK(db.rs.getString("anggota_jk"),radL,radP); alamat.setText(db.rs.getString("anggota_alamat")); cp.setText(db.rs.getString("anggota_cp")); String tipe = db.rs.getString("anggota_tipe"); String[] pil = {"1","2","3"};

Page 205: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

JRadioButton[] rad = {radSiswa,radGuru,radUmum,radTest}; new cfg().setRad(tipe, rad); if(tipe.compareTo(radSiswa.getText())==0) { showKelas(true); kelas.setText(db.rs.getString("anggota_kelas")); } else { showKelas(false); } tombol(0,1); } else { id.setEditable(true); tombol(1,0); } } } db.CloseRS(); db.CloseDB(); nama.requestFocus(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nama.getText().length()==0) { new cfg().msgbox("Nama kosong...",'w'); nama.requestFocus(); } else if(alamat.getText().length()==0) { new cfg().msgbox("Alamat kosong...",'w'); alamat.requestFocus(); } else if(cp.getText().length()==0) { new cfg().msgbox("Contact Person kosong...",'w'); cp.requestFocus(); } else { try {

Page 206: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "values('"; query = query + id.getText() + "','"; query = query + nama.getText() + "','"; query = query + new cfg().getJK(radL, radP) + "','"; query = query + alamat.getText() + "','"; query = query + cp.getText() + "','"; JRadioButton[] rad = {radSiswa,radGuru,radUmum,radTest}; query = query + new cfg().getRad(rad) + "','"; if(radSiswa.isSelected()==true) { query=query+kelas.getText()+"')"; } else { query=query+"')"; } String SQL = "insert into anggota " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } db.CloseDB(); bersih(); aktif(false); id.setText(""); id.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(nama.getText().length()==0) {

Page 207: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

new cfg().msgbox("Nama kosong...",'w'); nama.requestFocus(); } else if(alamat.getText().length()==0) { new cfg().msgbox("Alamat kosong...",'w'); alamat.requestFocus(); } else if(cp.getText().length()==0) { new cfg().msgbox("Contact Person kosong...",'w'); cp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; query = query + "anggota_nama='"+nama.getText()+"',"; query = query + "anggota_jk='"+new cfg().getJK(radL, radP)+"',"; query = query + "anggota_alamat='"+alamat.getText()+"',"; query = query + "anggota_cp='"+cp.getText()+"',"; JRadioButton[] rad = {radSiswa,radGuru,radUmum,radTest}; query = query + "anggota_tipe='"+new cfg().getRad(rad)+"',"; if(radSiswa.isSelected()==true) { query=query+"anggota_kelas='"+kelas.getText()+"'"; } else { query=query+"anggota_kelas=''"; } String SQL = "update anggota set "+query+" where anggota_id='"+ id.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB();

Page 208: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

bersih(); aktif(false); id.setText(""); id.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from anggota where anggota_id='"+ id.getText()+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } db.CloseDB(); bersih(); aktif(false); id.setText(""); id.requestFocus(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');} } } private void resetdata() { int pil = JOptionPane.showConfirmDialog(null,"Reset data di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersih(); aktif(false); id.setText(""); id.requestFocus(); } } private void keluarform()

Page 209: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

{ int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } } private void showKelas(boolean pil) { lblKelas.setVisible(pil); kelas.setVisible(pil); } private void bersih() { nama.setText(""); radL.setSelected(true); alamat.setText(""); cp.setText(""); radGuru.setSelected(true); kelas.setText(""); showKelas(false); } private void aktif(boolean yes) { nama.setEnabled(yes); radL.setEnabled(yes); radP.setEnabled(yes); alamat.setEnabled(yes); cp.setEnabled(yes); radSiswa.setEnabled(yes); radGuru.setEnabled(yes); radUmum.setEnabled(yes); radTest.setEnabled(yes); kelas.setEnabled(yes); if(yes==false) { tampilTabel(); id.setEditable(true); tombol(0,0); } } private void tombol(int x,int y ) { if(x==1){ btnSimpan.setEnabled(true); } else{ btnSimpan.setEnabled(false); } if(y==1){ btnUbah.setEnabled(true); btnHapus.setEnabled(true);} else{ btnUbah.setEnabled(false); btnHapus.setEnabled(false); } }

Page 210: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

private void tampilTabel() { try { DefaultTableModel tabelku; Object[] row = {"No.","ID Anggota","Nama","Jekel","Alamat","Contact","Tipe","Kelas"}; tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from anggota order by anggota_tipe,anggota_nama asc")==1) { int no=0 ; String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t1 = db.rs.getString("anggota_id"); t2 = db.rs.getString("anggota_nama"); t3 = db.rs.getString("anggota_jk"); t4 = db.rs.getString("anggota_alamat"); t5 = db.rs.getString("anggota_cp"); t6 = db.rs.getString("anggota_tipe"); t7 = db.rs.getString("anggota_kelas"); String[] data = {nom,t1,t2,t3,t4,t5,t6,t7}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); }

Page 211: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } // Variables declaration - do not modify private javax.swing.JTextArea alamat; private javax.swing.JButton btnExit; private javax.swing.JButton btnHapus; private javax.swing.JButton btnReset; private javax.swing.JButton btnSimpan; private javax.swing.JButton btnUbah; private javax.swing.JTextField cp; private javax.swing.ButtonGroup grupAnggota; private javax.swing.ButtonGroup grupJekel; private javax.swing.JTextField id; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel4; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTextField kelas; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblHarga; private javax.swing.JLabel lblKelas; private javax.swing.JLabel lblKode1; private javax.swing.JLabel lblKode2; private javax.swing.JLabel lblNama; private javax.swing.JLabel lblNama1; private javax.swing.JLabel lblSatuan; private javax.swing.JTable myTabel; private javax.swing.JTextField nama; private javax.swing.JRadioButton radGuru; private javax.swing.JRadioButton radL; private javax.swing.JRadioButton radP; private javax.swing.JRadioButton radSiswa; private javax.swing.JRadioButton radTest;

Page 212: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

private javax.swing.JRadioButton radUmum; // End of variables declaration } Lampiran 6. Listing Program Peminjaman Buku import java.text.*; import java.util.Date; import javax.swing.*; import javax.swing.table.*; public class filePeminjaman extends javax.swing.JInternalFrame { public filePeminjaman() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("KEPUSTAKAAN > PEMINJAMAN BUKU"); } private String tglpinjam = ""; private String tglbts = ""; private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: cmbBuku(); cmbPeminjam(0); resetPinjam(); tampilTabel(); } private void btnExitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: keluarform(); } private void btnResetActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: reset(); } private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { //TODO add your handling code here: simpandata(); } private void btnUbahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ubahdata(); } private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) {

Page 213: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

// TODO add your handling code here: hapusdata(); } private void pengarangKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pengarangActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void btnSimpanKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnUbahKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnHapusKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnResetKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnExitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void btnUbahKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { ubahdata(); } } private void btnSimpanKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { simpandata(); } }

Page 214: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

private void btnHapusKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { hapusdata(); } } private void btnResetKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { reset(); } } private void btnExitKeyPressed(java.awt.event.KeyEvent evt) { // TODO add your handling code here: if(evt.getKeyCode()==10) { keluarform(); } } private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: bersihPinjam(); resetPinjam(); aktifPinjam(false); } private void tahunCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void tahunActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void tahunKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void kategoriCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void kategoriActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

Page 215: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

} private void kategoriKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void tglPinjamPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: if(tglPinjam.getDate()!=null) { SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd"); tglpinjam = ""+dt.format(tglPinjam.getDate()); } caridata(); } private void tglBatasPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: if(tglBatas.getDate()!=null) { SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd"); tglbts = ""+dt.format(tglBatas.getDate()); } } private void myTabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: try { tglPinjam.setDate(new mydate().toDate(myTabel.getValueAt(myTabel.getSelectedRow(), 1)+"")); String tipe = ""+myTabel.getValueAt(myTabel.getSelectedRow(), 4); if(tipe.compareTo("Siswa")==0) { radSiswa.setSelected(true); } else if(tipe.compareTo("Guru")==0) { radGuru.setSelected(true); } else if(tipe.compareTo("Umum")==0) { radUmum.setSelected(true); } peminjam.setSelectedItem(myTabel.getValueAt(myTabel.getSelectedRow(), 3));

Page 216: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

buku.setSelectedItem(myTabel.getValueAt(myTabel.getSelectedRow(), 5)); caridata(); } catch(Exception e){} } private void bukuActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: cariBuku(); } private void peminjamActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: caridata(); } private void penerbitActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void penerbitKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void radSiswaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: cmbPeminjam(1); } private void radGuruActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: cmbPeminjam(2); } private void radUmumActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: cmbPeminjam(3); } private void radTestActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: cmbPeminjam(4); } private void cmbBuku() {

Page 217: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

for(int i=0;i<buku.getItemCount();) { buku.removeItemAt(i); } buku.addItem("-- Pilih Buku --"); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from buku order by kategori_id, buku_judul asc")==1) { while(db.rs.next()) { buku.addItem(db.rs.getString("buku_id")+" -- "+db.rs.getString("buku_judul")); } } } } catch(Exception e){ } } private void cmbPeminjam(int tipe) { String tp = ""; if(tipe == 1) { tp = " where anggota_tipe='Siswa' "; } else if(tipe==2) { tp = " where anggota_tipe='Guru' "; } else if(tipe==3) { tp = " where anggota_tipe='Umum' "; } else if(tipe==4) { tp = " where anggota_tipe='Test' "; } for(int i=0;i<peminjam.getItemCount();) { peminjam.removeItemAt(i); } peminjam.addItem("-- Pilih Peminjam --"); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) {

Page 218: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

if(db.RS("select * from anggota "+tp+" order by anggota_tipe,anggota_nama asc")==1) { while(db.rs.next()) { peminjam.addItem(db.rs.getString("anggota_id")+" -- "+db.rs.getString("anggota_nama")); } } } } catch(Exception e){ } } private void caridata() { bersihPinjam(); aktifPinjam(true); if(tglPinjam.getDate()!=null && peminjam.getSelectedIndex()>0 && buku.getSelectedIndex()>0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { tglBatas.requestFocus(); if(db.RS("Select * from pinjam where pinjam_tgl='"+tglpinjam+"' " + "and anggota_id='"+new cfg().GetID(peminjam)+"' " + "and buku_id='"+new cfg().GetID(buku)+"'")==1) { if(db.rs.next()) { tglBatas.setDate(db.rs.getDate("pinjam_tglbatas")); tombol(0,1); } else { tglBatas.setDate(null); tombol(1,0); } } } db.CloseRS(); db.CloseDB(); tampilTabel(); tglPinjam.requestFocus(); } catch(Exception e){ new cfg().msgbox(e.getMessage()+"#Cari Order",'e'); } }

Page 219: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

else{ tombol(0,0); aktifPinjam(false); } } private void cariBuku() { bersihBuku(); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("Select * from buku t1, kategori t2 where t1.kategori_id=t2.kategori_id and " + "buku_id='"+new cfg().GetID(buku)+"'")==1) { if(db.rs.next()) { pengarang.setText(db.rs.getString("buku_pengarang")); penerbit.setText(db.rs.getString("buku_penerbit")); tahun.setText(db.rs.getString("buku_tahun")); kategori.setText(db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama")); } else { tampilTabel(); tombol(0,0); } caridata(); } } db.CloseRS(); db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#Cari Barang",'e'); } } private void simpandata() { int pil = JOptionPane.showConfirmDialog(null,"Simpan Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(tglBatas.getDate()==null) { new cfg().msgbox("Isi Tanggal Batas Peminjaman...",'w'); tglBatas.requestFocus(); } else

Page 220: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

{ try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "(pinjam_tgl,anggota_id,buku_id,pinjam_tglbatas) values('"; query = query + tglpinjam+ "','"; query = query + new cfg().GetID(peminjam) + "','"; query = query + new cfg().GetID(buku) + "','"; query = query + tglbts + "')"; String SQL = "insert into pinjam " + query; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil disimpan...",'i'); } buku.setSelectedIndex(0); buku.requestFocus(); tampilTabel(); } db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void ubahdata() { int pil = JOptionPane.showConfirmDialog(null,"Ubah Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { if(tglBatas.getDate()==null) { new cfg().msgbox("Isi Tanggal Batas Peminjaman...",'w'); tglBatas.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = "";

Page 221: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

query = query + "pinjam_tglbatas='"+tglbts+"'"; String SQL = "update pinjam set "+query+" where pinjam_tgl='"+ tglpinjam+"' and " + "anggota_id='"+new cfg().GetID(peminjam)+"' and " + "buku_id='"+new cfg().GetID(buku)+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } buku.setSelectedIndex(0); buku.requestFocus(); tampilTabel(); } db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } } private void hapusdata() { int pil = JOptionPane.showConfirmDialog(null,"Hapus Data... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String SQL = "delete from pinjam where pinjam_tgl='"+ tglpinjam+"' and " + "anggota_id='"+new cfg().GetID(peminjam)+"' and buku_id='"+new cfg().GetID(buku)+"'"; if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil dihapus...",'i'); } buku.setSelectedIndex(0); buku.requestFocus(); tampilTabel(); } db.CloseDB(); } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e');}

Page 222: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

} } private void reset() { int pil = JOptionPane.showConfirmDialog(null,"Reset Order di form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { bersihPinjam(); aktifPinjam(false); resetPinjam(); tampilTabel(); tombol(0, 0); } } private void keluarform() { int pil = JOptionPane.showConfirmDialog(null,"Keluar dari form... ?","Pilihan", JOptionPane.YES_NO_OPTION); if(pil==0) { dispose(); } } private void resetPinjam() { tglPinjam.setDate(new Date()); peminjam.setSelectedIndex(0); buku.setSelectedIndex(0); radSiswa.setSelected(true); } private void bersihPinjam() { tglBatas.setDate(new Date()); } private void aktifPinjam(boolean aktif) { tglBatas.setEnabled(aktif); } private void bersihBuku() { pengarang.setText(""); penerbit.setText(""); tahun.setText(""); kategori.setText(""); } private void tombol(int x,int y ) { if(x==1){ btnSimpan.setEnabled(true); }

Page 223: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

else{ btnSimpan.setEnabled(false); } if(y==1){ btnUbah.setEnabled(true); btnHapus.setEnabled(true);} else{ btnUbah.setEnabled(false); btnHapus.setEnabled(false); } } private void tampilTabel() { try { DefaultTableModel tabelku; Object[] row = {"No.","Tanggal Pinjam","Tanggal Batas","Peminjam","Tipe","Buku","Kategori"}; tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from pinjam t1, buku t2, anggota t3, kategori t4 " + "where t1.anggota_id=t3.anggota_id and " + "t1.buku_id=t2.buku_id and " + "t2.kategori_id=t4.kategori_id order by pinjam_tgl asc")==1) { int no=0 ; String nom="",t1="",t2="",t3="",t4="",t5="",t6=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t1 = new mydate().myTextDate(db.rs.getString("pinjam_tgl")); t2 = new mydate().myTextDate(db.rs.getString("pinjam_tglbatas")); t3 = db.rs.getString("anggota_id")+" -- "+db.rs.getString("anggota_nama"); t4 = db.rs.getString("anggota_tipe"); t5 = db.rs.getString("buku_id")+" -- "+db.rs.getString("buku_judul"); t6 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); String[] data = {nom,t1,t2,t3,t4,t5,t6};

Page 224: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#tabel",'e'); } } // Variables declaration - do not modify private javax.swing.JButton btnExit; private javax.swing.JButton btnHapus; private javax.swing.JButton btnReset; private javax.swing.JButton btnSimpan; private javax.swing.JButton btnUbah; private javax.swing.JComboBox buku; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTextField kategori; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblHarga; private javax.swing.JLabel lblKet2; private javax.swing.JLabel lblKet5; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblNama1;

Page 225: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

private javax.swing.JLabel lblNama2; private javax.swing.JLabel lblSatuan; private javax.swing.JLabel lblSatuan1; private javax.swing.JTable myTabel; private javax.swing.JComboBox peminjam; private javax.swing.JTextField penerbit; private javax.swing.JTextField pengarang; private javax.swing.JRadioButton radGuru; private javax.swing.JRadioButton radSiswa; private javax.swing.JRadioButton radTest; private javax.swing.JRadioButton radUmum; private javax.swing.JTextField tahun; private com.toedter.calendar.JDateChooser tglBatas; private com.toedter.calendar.JDateChooser tglPinjam; // End of variables declaration } Lampiran 7. Listing Program Pengembalian Buku import java.util.Date; import javax.swing.JOptionPane; import javax.swing.table.*; public class filePengembalian extends javax.swing.JInternalFrame { public filePengembalian() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("KEPUSTAKAAN > PENGEMBALIAN BUKU"); } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: tampilTabel(); datakembali(); } private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: } private void myTabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: } private void btnCariActionPerformed(java.awt.event.ActionEvent evt) {

Page 226: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

// TODO add your handling code here: if(tampilTabel()==0) { JOptionPane.showMessageDialog(null, "Data tidak ada","Pesan",JOptionPane.INFORMATION_MESSAGE); } } private void tabelkembaliMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: } private void btnProsesActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Proses(); } private void Proses() { if(myTabel.getSelectedRow()>=0) { String pinj = myTabel.getValueAt(myTabel.getSelectedRow(), 6).toString(); String angg = myTabel.getValueAt(myTabel.getSelectedRow(), 2).toString(); String buku = new cfg().GetID(myTabel.getValueAt(myTabel.getSelectedRow(), 4)); int ok = JOptionPane.showConfirmDialog(null, "Proses pengembalian buku untuk "+myTabel.getValueAt(myTabel.getSelectedRow(), 1) +" ?", "Update Data", JOptionPane.YES_NO_OPTION); if(ok==JOptionPane.YES_OPTION) { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { String query = ""; String tgl = new mydate().curDate(); String bln = new mydate().curMonth(false); String thn = new mydate().curYear()+""; query = query + "pinjam_tglkembali='"+thn+"-"+bln+"-"+tgl+"'"; String SQL = "update pinjam set "+query+" " + "where pinjam_tgl='"+new mydate().mySQLDate(pinj)+"' and " + "anggota_id='"+angg+"' and " + "buku_id='"+buku+"'"; //System.out.println(SQL);

Page 227: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

if(db.STUpdate(SQL)==1) { new cfg().msgbox("Data berhasil diubah...",'i'); } db.CloseDB(); } } catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } } tampilTabel(); datakembali(); } private int tampilTabel() { int no=0 ; String cr = cari.getText(); String kriteria = ""; if(cr.length()>0) { kriteria = "and anggota_nama like '"+ cr + "%'"; } try { DefaultTableModel tabelku; Object[] row = { "No.", //0 "Nama Peminjam", //1 "ID Peminjam", //2 "Tipe", //3 "Buku", //4 "Kategori", //5 "Tanggal Pinjam", //6 "Tanggal Batas", //7 "Perkiraan Keterlambatan", //8 "Perkiraan Denda"}; //9 tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from pinjam t1, buku t2, anggota t3, kategori t4 " + "where t1.anggota_id=t3.anggota_id and " + "t1.buku_id=t2.buku_id and " + "t2.kategori_id=t4.kategori_id and " + "pinjam_tglkembali is null " + kriteria + "order by pinjam_tgl desc")==1) { String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7="",t8="",t9="";

Page 228: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length(), row[8].toString().length(), row[9].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t6 = new mydate().myTextDate(db.rs.getString("pinjam_tgl")); t7 = new mydate().myTextDate(db.rs.getString("pinjam_tglbatas")); String kembali = db.rs.getString("pinjam_tglkembali"); long lebih = 0; if(kembali==null){ //t8 = ""; Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = new java.sql.Date(new Date().getTime()); long lb = new mydate().LamaHari(batas, curdate); if(lb>=0){ lebih = lb; } } else{ //t8 = new mydate().myTextDate(kembali); Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = db.rs.getDate("pinjam_tglkembali"); lebih = new mydate().LamaHari(batas, curdate); } t1 = db.rs.getString("anggota_nama"); t2 = db.rs.getString("anggota_id"); t3 = db.rs.getString("anggota_tipe"); t4 = db.rs.getString("buku_id")+" -- "+db.rs.getString("buku_judul"); t5 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); t8 = lebih+" Hari"; t9 = ""+(lebih*500); String[] data = {nom,t1,t2,t3,t4,t5,t6,t7,t8,t9}; if(data.length==c.length)

Page 229: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

{ for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#tabel",'e'); } return no; } private void datakembali() { try { DefaultTableModel tabelku; Object[] row = { "No.", //0 "Nama Peminjam", //1 "ID Peminjam", //2 "Tipe", //3 "Buku", //4 "Kategori", //5 "Tanggal Pinjam", //6 "Tanggal Batas", //7 "Tanggal Kembali", //8 "Keterlambatan", //9 "Denda"}; //10 tabelku = new DefaultTableModel(null, row); tabelkembali.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from pinjam t1, buku t2, anggota t3, kategori t4 " + "where t1.anggota_id=t3.anggota_id and " +

Page 230: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

"t1.buku_id=t2.buku_id and " + "t2.kategori_id=t4.kategori_id and " + "pinjam_tglkembali is not null "+ "order by pinjam_tglkembali desc")==1) { int no=0 ; String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7="",t8="",t9="",t10=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length(), row[8].toString().length(), row[9].toString().length(), row[10].toString().length()}; while(db.rs.next()) { no = no+1; nom=no+"."; t6 = new mydate().myTextDate(db.rs.getString("pinjam_tgl")); t7 = new mydate().myTextDate(db.rs.getString("pinjam_tglbatas")); String kembali = db.rs.getString("pinjam_tglkembali"); long lebih = 0; if(kembali==null){ t8 = ""; Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = new java.sql.Date(new Date().getTime()); long lb = new mydate().LamaHari(batas, curdate); if(lb>=0){ lebih = lb; } } else{ t8 = new mydate().myTextDate(kembali); Date batas = db.rs.getDate("pinjam_tglbatas"); Date curdate = db.rs.getDate("pinjam_tglkembali"); lebih = new mydate().LamaHari(batas, curdate); } t1 = db.rs.getString("anggota_nama"); t2 = db.rs.getString("anggota_id"); t3 = db.rs.getString("anggota_tipe");

Page 231: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

t4 = db.rs.getString("buku_id")+" -- "+db.rs.getString("buku_judul"); t5 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); if(lebih<0){ lebih = 0; t9 = ""; }else{ t9 = lebih+" Hari"; } t10= ""+(lebih*500); String[] data = {nom,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } myTab.setTitleAt(1, "Data Pengembalian ( "+no+" )"); db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<tabelkembali.getColumnCount();i++) { col = tabelkembali.getColumnModel().getColumn(i); int fSize = tabelkembali.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20); } } } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#tabel",'e'); } } // Variables declaration - do not modify private javax.swing.JButton btnCari; private javax.swing.JButton btnProses; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JTextField cari;

Page 232: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel5; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JTabbedPane myTab; private javax.swing.JTable myTabel; private javax.swing.JTable tabelkembali; // End of variables declaration } Lampiran 8. Listing Program Laporan Buku import java.util.*; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.view.JasperViewer; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class lapBuku extends javax.swing.JInternalFrame { public lapBuku() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > BUKU"); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("pimp", pimp.getText());

Page 233: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getAbsolutePath("Program Pustaka")+"\\Laporan\\LaporanBuku.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } // Variables declaration - do not modify private javax.swing.JButton btnKeluar; private javax.swing.JButton btnPreview; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblAddress; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode1; private javax.swing.JTextField pimp; // End of variables declaration

Page 234: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

} Lampiran 9. Listing Program Laporan Peminjaman Buku/ Bulan import java.util.*; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.view.JasperViewer; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class lapPinjam extends javax.swing.JInternalFrame { public lapPinjam() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN BUKU"); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("periode", tahun.getYear()+"-"+new mydate().zero_(bulan.getMonth()+1)+"%"); prs.put("pimp", pimp.getText()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getAbsolutePath("Program Pustaka")+"Laporan\\LaporanPeminjaman.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } }

Page 235: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

} private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); } private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } // Variables declaration - do not modify private javax.swing.JButton btnKeluar; private javax.swing.JButton btnPreview; private com.toedter.calendar.JMonthChooser bulan; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblAddress; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblKode1; private javax.swing.JTextField pimp; private com.toedter.calendar.JYearChooser tahun; // End of variables declaration } Lampiran 10. Listing Program Laporan Peminjaman Buku/ 3Bulan import java.util.*; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.view.JasperViewer;

Page 236: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class lapPinjamPer3Bln extends javax.swing.JInternalFrame { public lapPinjamPer3Bln() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN BUKU / 3 BULAN"); cmbperiode(); periode.setSelectedIndex(0); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("periode1", periode(1)); prs.put("pim","( "+pimp.getText()+" )"); prs.put("periode2", periode(2)); prs.put("periode3", periode(3)); prs.put("bulan", periode.getSelectedItem()+" "+tahun.getYear()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getReportPath()+"LapPinjamPer3Bln.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); }

Page 237: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); } private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void cmbperiode() { periode.removeAllItems(); periode.addItem("Januari, Februari, Maret"); periode.addItem("April, Mei, Juni"); periode.addItem("Juli, Agustus, September"); periode.addItem("Oktober, Nopember, Desember"); } private String periode(int p) { String per = "{tahun}-{b}%"; per = per.replace("{tahun}", tahun.getYear()+""); if(periode.getSelectedIndex()==0) { if(p==1) { per = per.replace("{b}", "01"); }else if(p==2) { per = per.replace("{b}", "02"); }else if(p==3) { per = per.replace("{b}", "03"); } }else if(periode.getSelectedIndex()==1) { if(p==1) { per = per.replace("{b}", "04"); }else if(p==2) { per = per.replace("{b}", "05"); }else if(p==3) {

Page 238: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

per = per.replace("{b}", "06"); } }else if(periode.getSelectedIndex()==2) { if(p==1) { per = per.replace("{b}", "07"); }else if(p==2) { per = per.replace("{b}", "08"); }else if(p==3) { per = per.replace("{b}", "09"); } }else if(periode.getSelectedIndex()==3) { if(p==1) { per = per.replace("{b}", "10"); }else if(p==2) { per = per.replace("{b}", "11"); }else if(p==3) { per = per.replace("{b}", "12"); } } return per; } // Variables declaration - do not modify private javax.swing.JButton btnKeluar; private javax.swing.JButton btnPreview; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblAddress; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblKode1; private javax.swing.JComboBox periode; private javax.swing.JTextField pimp; private com.toedter.calendar.JYearChooser tahun; // End of variables declaration } Lampiran 11. Listing Program Laporan Peminjaman Buku/ 6Bulan import java.util.*;

Page 239: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.view.JasperViewer; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class lapPinjamPer6Bln extends javax.swing.JInternalFrame { public lapPinjamPer6Bln() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN BUKU / 6 BULAN"); cmbperiode(); periode.setSelectedIndex(0); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("periode1", periode(1)); prs.put("periode2", periode(2)); prs.put("periode3", periode(3)); prs.put("periode4", periode(4)); prs.put("periode5", periode(5)); prs.put("periode6", periode(6)); prs.put("pim","( "+pimp.getText()+" )"); prs.put("bulan", periode.getSelectedItem()+" "+tahun.getYear()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getReportPath()+"LapPinjamPer6Bln.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } }

Page 240: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); } private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } private void cmbperiode() { periode.removeAllItems(); periode.addItem("Januari s/d Juni"); periode.addItem("Juli s/d Desember"); } private String periode(int p) { String per = "{tahun}-{b}%"; per = per.replace("{tahun}", tahun.getYear()+""); if(periode.getSelectedIndex()==0) { if(p==1) { per = per.replace("{b}", "01"); }else if(p==2) { per = per.replace("{b}", "02"); }else if(p==3) { per = per.replace("{b}", "03"); }else if(p==4) { per = per.replace("{b}", "04"); }else if(p==5) { per = per.replace("{b}", "05"); }else if(p==2)

Page 241: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

{ per = per.replace("{b}", "06"); } }else if(periode.getSelectedIndex()==1) { if(p==1) { per = per.replace("{b}", "07"); }else if(p==2) { per = per.replace("{b}", "08"); }else if(p==3) { per = per.replace("{b}", "09"); }else if(p==4) { per = per.replace("{b}", "10"); }else if(p==5) { per = per.replace("{b}", "11"); }else if(p==2) { per = per.replace("{b}", "12"); } } return per; } // Variables declaration - do not modify private javax.swing.JButton btnKeluar; private javax.swing.JButton btnPreview; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblAddress; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblKode1; private javax.swing.JComboBox periode; private javax.swing.JTextField pimp; private com.toedter.calendar.JYearChooser tahun; // End of variables declaration } Lampiran 12. Listing Program Laporan Peminjaman Buku/ Tahun import java.util.*; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.view.JasperViewer;

Page 242: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; public class lapPinjamPerTahun extends javax.swing.JInternalFrame { public lapPinjamPerTahun() { initComponents(); lblCompany.setText(new SoftID().NamaPerusahaan); this.setTitle("LAPORAN > PEMINJAMAN REKAP PEMINJAMAN / TAHUN"); } private void btnPreviewActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(pimp.getText().length()==0) { new cfg().msgbox("Nama Pimpinan kosong...", 'w'); pimp.requestFocus(); } else { try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { Map prs = new HashMap(); prs.put("tahun", tahun.getYear()+"%"); prs.put("pim", pimp.getText()); JasperReport JRpt = JasperCompileManager.compileReport(new cfg().getReportPath()+"LapPinjamPerTahun.jrxml"); JasperPrint JPrint = JasperFillManager.fillReport(JRpt, prs, db.con); JasperViewer.viewReport(JPrint, false); db.CloseDB(); } } catch(Exception e){ new cfg().msgerror(e, "Preview Laporan"); } } } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: pimp.setText(""); } private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: dispose(); }

Page 243: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

private void pimpKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: } private void pimpActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void pimpCaretUpdate(javax.swing.event.CaretEvent evt) { // TODO add your handling code here: } // Variables declaration - do not modify private javax.swing.JButton btnKeluar; private javax.swing.JButton btnPreview; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel lblAddress; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JLabel lblKode; private javax.swing.JLabel lblKode1; private javax.swing.JTextField pimp; private com.toedter.calendar.JYearChooser tahun; // End of variables declaration } Lampiran 13. Listing Program Pencarian Buku import javax.swing.table.*; public class Cari extends javax.swing.JInternalFrame { /** Creates new form Cari */ public Cari() { initComponents(); this.setTitle("CARI BUKU"); //lblCompany.setText(new SoftID().NamaPerusahaan); cmbKategori(); } // TODO add your handling code here: kategori.setSelectedIndex(0); if(cekKategori.isSelected()==true) { kategori.setEnabled(true); } else { kategori.setEnabled(false); } }

Page 244: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

private void cekJudulActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: judul.setText(""); if(cekJudul.isSelected()==true) { judul.setEnabled(true); } else { judul.setEnabled(false); } } private void btnCariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: tampilTabel(); } private void myTabelMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: } private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt) { // TODO add your handling code here: cekKategori.setSelected(false); cekJudul.setSelected(false); kategori.setSelectedIndex(0); kategori.setEnabled(false); judul.setText(""); judul.setEnabled(false); } private void cmbKategori() { for(int i=0;i<kategori.getItemCount();) { kategori.removeItemAt(i); } kategori.addItem(""); try { mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select * from kategori order by kategori_id asc")==1) { while(db.rs.next()) { kategori.addItem(db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama")); }

Page 245: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

} } } catch(Exception e){ new cfg().msgbox(e.getMessage() + "#Combo Kategori",'e'); } } private void tampilTabel() { String cari = ""; if(cekKategori.isSelected()==true) { cari = " and t1.kategori_id='"+new cfg().GetID(kategori)+"' "; } if(cekJudul.isSelected()==true) { cari = cari+" and buku_judul like '%"+judul.getText()+"%'"; } try { DefaultTableModel tabelku; Object[] row = {"No.","Kode Buku","Judul","Pengarang","Penerbit","Tahun Terbit","Kategori","Sinopsis","Rak","Stok","Tersedia"}; tabelku = new DefaultTableModel(null, row); myTabel.setModel(tabelku); mydb db = new mydb(); if(db.ConnectDB(true)==1) { if(db.RS("select *,(select count(*) from pinjam t3 where t3.buku_id=t1.buku_id and t3.pinjam_tglkembali is null) as tot_pinjam from buku t1, kategori t2 where t1.kategori_id=t2.kategori_id " + cari + "order by t1.kategori_id,buku_judul asc")==1) { int no=0,stok=0,pjm=0 ; String nom="",t1="",t2="",t3="",t4="",t5="",t6="",t7="",t8="",t9="",t10=""; int[] c ={ row[0].toString().length(), row[1].toString().length(), row[2].toString().length(), row[3].toString().length(), row[4].toString().length(), row[5].toString().length(), row[6].toString().length(), row[7].toString().length(), row[8].toString().length(), row[9].toString().length(), row[10].toString().length()}; while(db.rs.next())

Page 246: TA Riri Maiyuliani 2009-94293.pdf

x

xii xiv xiv

{ no = no+1; nom=no+"."; t1 = db.rs.getString("buku_id"); t2 = db.rs.getString("buku_judul"); t3 = db.rs.getString("buku_pengarang"); t4 = db.rs.getString("buku_penerbit"); t5 = db.rs.getString("buku_tahun"); t6 = db.rs.getString("kategori_id")+" -- "+db.rs.getString("kategori_nama"); t7 = db.rs.getString("buku_sinopsis"); t8 = db.rs.getString("rak"); t9 = db.rs.getString("stok"); stok = db.rs.getInt("stok"); pjm = db.rs.getInt("tot_pinjam"); if(stok==pjm){ t10="Tidak"; }else{ t10="Ya"; } String[] data = {nom,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10}; if(data.length==c.length) { for(int i=0;i<data.length;i++) { if(data[i].length()>c[i]) { c[i]=data[i].length(); } } } tabelku.addRow(data); } db.CloseRS(); db.CloseDB(); TableColumn col = null; for(int i=0; i<myTabel.getColumnCount();i++) { col = myTabel.getColumnModel().getColumn(i); int fSize = myTabel.getFont().getSize(); col.setPreferredWidth(72/fSize * (c[i])+20);}} }} catch(Exception e){ new cfg().msgbox(e.getMessage(),'e'); } } // Variables declaration - do not modify private javax.swing.JButton btnCari; private javax.swing.JCheckBox cekJudul; private javax.swing.JCheckBox cekKategori; private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel2;

Page 247: TA Riri Maiyuliani 2009-94293.pdf

vi

vii xi xiii xv xvii

private javax.swing.JPanel jPanel3; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTextField judul; private javax.swing.JComboBox kategori; private javax.swing.JLabel lblCabang; private javax.swing.JLabel lblCompany; private javax.swing.JTable myTabel; // End of variables declaration }