Skripsi
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Oleh :
Timotheus Setianto
NIM : 045314074
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
Skripsi
Proposed to Fulfill One of the Requirement
Acquiring Diploma Degree of Engineering
Informatics Engineering Study Program
Oleh :
Timotheus Setianto
NIM : 045314074
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2010
tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan
dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.
Yogyakarta, 15 Maret 2010
Penulis,
Timotheus Setianto
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama
: Timotheus Setianto
Nomor Mahasiswa
: 045314074
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul :
“Implementasi Teknologi Hibernate Pada Sistem Informasi Akuntansi Koperasi
Kredit (Studi Kasus : Koperasi Kredit Merapi Mulia, Sleman).”
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan
kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan,
mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan
data, mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau
media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya
maupun memberikan royalty kepada saya selama tetap mencantumkan nama saya
sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal : 15 Maret 2010
Yang menyatakan,
Timotheus Setianto
...
Kedua orang tuaku yang tercinta.
...
Saudara-saudariku yang terkasih :
Rosa Endang Setiati
Augustinus Agung Setiawan
Chrylla Setiastuti
Dominikus Setiadi
Bernadet Setiayu
...
Seseorang yang selalu menjadi inspirasiku.
Segala yang indah datang pada waktunya
.
Hidup bukanlah bagaimana caranya melawan hujan dan
menantang badai. Akan tetapi hidup adalah bagaimana
caranya kita bisa tetap menari di tengah hujan dan bernyanyi
di tengah badai.
Lebih baik gagal karena mencoba daripada tidak mencoba
karena takut gagal.
“Lord, What do you want me to do?” (Fransiskus Asisi)
mapping
yang mampu memetakan obyek ke dalam struktur
database relational
maupun dari struktur
database relational
ke dalam bentuk obyek. Hal ini
memudahkan
developer
untuk bekerja dengan obyek dan menerapkan konsep
obyek dalam
database
relational
yang bersifat terstruktur.
Dengan memanfaatkan teknologi
hibernate
dalam sistem informasi
akuntansi yang diimplementasikan dalam koperasi kredit, maka pihak manajemen
koperasi akan semakin mudah dan cepat mendapatkan informasi berupa laporan
keuangan dibandingkan dengan cara manual. Implementasi teknologi hibernate
pada sistem informasi akuntansi koperasi kredit ini menggunakan studi kasus di
Koperasi Kredit Merapi Mulia, Sleman.
mapping which able to mapped the object into relational database structure either
from relational database structure into the object. This kind of technology makes a
developer easier to work with an object and to apply the concept of object into
relational database structure.
Using hibernate technology on accounting information system that
implemented in credit union, will help the management of credit union to get
information, such as financial report faster and easier than the manual system.
This application system based on the case of study in Merapi Mulia Credit Union,
Sleman.
kemurahan-Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul
“Implementasi Teknologi Hibernate Pada Sistem Informasi Akuntansi Koperasi
Kredit (Studi Kasus : Koperasi Kredit Merapi Mulia, Sleman)” sebagai salah satu
syarat untuk memperoleh gelar Sarjana Teknik (S.T.) di Fakultas Sains dan
Teknologi Universitas Sanata Dharma.
Dalam penelitian ini sampai pada penyusunan skripsi ini, penulis banyak
mendapat bantuan dari berbagai pihak. Pada kesempatan ini, penulis ingin
menyampikan penghargaan dan ucapan terima kasih kepada :
1. Yosef Agung Cahyanta, S.T., M.T., Selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma.
2. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T. selaku Ketua Program Studi
Teknik Informatika Universitas Sanata Dharma dan Dosen Penguji.
3. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Dosen Pembimbing
Akademik.
4. Ibu Ridowati Gunawan, S.Kom., M.T., selaku Dosen Pembimbing, terima
kasih atas perhatian, bimbingan dan dorongan semangatnya.
5. Ibu Anastasia Rita Widiarta, S.Si., M.Kom., selaku Dosen Pembimbing Kerja
Praktek.
6. Ibu P. H. Prima Rosa, S.Si., M.Sc., selaku Dosen Penguji.
9. Laboran yang telah membantu menyiapkan alat untuk ujian.
10. Kedua Orang tua penulis yang sangat dikasihi, yang telah memberikan
segalanya tanpa mengharap kembali.
11. Kakak dan adik-adik penulis, yang selalu memberikan dukungan dan doanya.
12. Bernadet Setiayu, adikku terima kasih sudah meminjamkan notebooknya
selama lebih dari 2 bulan.
13. Puput Pradhika, terima kasih atas semangat dan dukungannya. Engkau selalu
bisa membuatku tersenyum dan bangkit kembali saat kujatuh.
14. Konoha Ceria (Antonius Yudha, Beni Sitanggang) dan seluruh penghuni
kontrakan. Persaudaraan itu indah dan selalu bisa membuatku bangkit ketika
sedang terjatuh. Terima kasih atas tumpangan dan persaudaraannya.
15. Agus Winarno, terima kasih atas ilmu pemrograman dan proyek yang kita
kerjakan.
16. Pak Tjandra Irawan, terima kasih atas ilmu keuangan dan akuntansinya. Jadi
lebih memahami dan ikut terlibat dalam lembaga keuangan mikro berkat
proyeknya.
17. Efran, Sarah dan Rachel, terima kasih buat kerjasamanya. Kalian semakin
membuatku mengerti tentang hidup. Terima kasih atas pengalamannya.
18. Anak-anak Teknik Informatika angkatan 2004, terima kasih atas pertemanan
dan pembelajaran yang kita lalui bersama.
skripsi ini, penulis memohon kritik dan saran yang sifatnya membangun. Penulis
memiliki harapan yang sangat besar, semoga skripsi ini dapat bermanfaat bagi
pembaca dan perkembangan ilmu pengetahuan.
Yogyakarta, 15 Maret 2010
Penulis
Timotheus Setianto
HALAMAN PERSETUJUAN... ii
HALAMAN PENGESAHAN...
iii
HALAMAN KEASLIAN KARYA... iv
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI... v
HALAMAN PERSEMBAHAN... vi
HALAMAN MOTTO... vii
ABSTRAKSI...
viii
ABSTRACT... ix
KATA PENGANTAR... x
DAFTAR ISI... xiii
DAFTAR GAMBAR... xvii
DAFTAR TABEL... xxiv
BAB I PENDAHULUAN ... 1
1.1. Latar Belakang Masalah...
1
1.2. Rumusan Masalah... 2
1.3. Batasan Masalah... 2
1.4. Tujuan Penelitian... 3
1.5. Manfaat Penelitian... 3
1.6. Metodologi Penelitian... 3
1.7. Sistematika Penulisan... 5
BAB II LANDASAN TEORI... 6
2.1. Koperasi... 6
2.1.1 Karakteristik Pelaporan Keuangan Koperasi... 6
2.1.2 Tujuan Pelaporan Keuangan Koperasi... 7
2.3.2.2 State/Keadaan Obyek... 12
2.3.3.Konfigurasi...
13
2.3.3.1 Programmatic Configuration...
13
2.3.3.1.1 Mendapatkan Session Factory...
14
2.3.3.1.2 JDBC Connections... 14
2.3.3.2 XML Configuration File... 15
2.3.4.Persistent Class...
17
2.3.4.1 Contoh POJO...
17
2.3.5.Dasar Object Relational Mapping(O/R Mapping)... 20
2.3.5.1 Deklarasi Mapping... 20
2.3.5.1.1 Doctype... 22
2.3.5.1.2 hibernate-mapping...
22
2.3.5.1.3 class... 22
2.3.5.1.4 id...
23
2.3.5.1.5 property... 24
2.3.5.1.6 many-to-one... 25
2.3.5.1.7 one-to-one...
26
2.3.5.1.8 properties... 26
2.3.5.1.9 column... 27
2.3.5.2 Menggunakan tools XDoclet...
28
2.3.6.Bekerja dengan Obyek... 32
2.3.6.1 Transisi State... 32
2.3.6.2 Daur Hidup Operasi... 32
2.3.6.2.1 Saving Obyek... 32
2.3.6.2.2 Loading Obyek... 33
2.3.6.2.3 Getting Obyek... 33
BAB III ANALISIS DAN PERANCANGAN SISTEM... 36
3.1. Analisis Sistem...
36
3.1.1. Analisis Kebutuhan... 36
3.1.1.1.Skenario Sistem...
37
3.1.2.Pemodelan Proses...
43
3.1.2.1.Sequence Diagram... 43
3.1.2.1.1 User... 43
3.1.2.1.2 Admin...
62
3.2. Desain Sistem...
79
3.2.1.Desain Class Diagram... 79
3.2.2.Desain Antar Muka... 81
3.2.2.1.Desain Input ... 86
3.2.2.1.1 User... 86
3.2.2.1.2 Admin...
102
3.2.2.2.Desain Output ...
110
3.2.2.1.1 User... 110
3.2.2.1.2 Admin...
116
3.2.3.Desain Database... 118
BAB IV IMPLEMENTASI SISTEM ... 127
1..
Karakteristik Sistem ...
128
2..
Instalasi ... 128
3..
Pembuatan POJO dan XML Mapping ... 129
4..
Koneksi ke Database MySQL ...
156
5..
Pembuatan Operasi Obyek ...
159
6..
Implementasi Antar Muka ... 163
5.1. Pengujian Sistem... 261
5.2. Kelebihan Sistem... 263
5.3. Kekurangan Sistem... 264
BAB VI PENUTUP... 265
6.1. Kesimpulan ... 265
6.2. Saran ...
266
DAFTAR PUSTAKA... 267
Gambar 3.1 Use Case Diagram User... 41
Gambar 3.2 Use Case Diagram Admin... 42
Gambar 3.3 Sequence Diagram Login User... 43
Gambar 3.4 Sequence Diagram Registrasi Nasabah... 44
Gambar 3.5 Sequence Diagram Registrasi Anggota... 44
Gambar 3.6 Sequence Diagram Registrasi Buka Tabungan... 45
Gambar 3.7 Sequence Diagram Registrasi Tutup Tabungan... 45
Gambar 3.8 Sequence Diagram Registrasi Buka Deposito... 46
Gambar 3.9 Sequence Diagram Registrasi Tutup Deposito... 46
Gambar 3.10 Sequence Diagram Registrasi Buka Pinjaman... 47
Gambar 3.11 Sequence Diagram Registrasi Buka Pinjaman... 47
Gambar 3.12 Sequence Diagram Transaksi Simpanan... 48
Gambar 3.13 Sequence Diagram Transaksi Tabungan... 48
Gambar 3.14 Sequence Diagram Transaksi Deposito... 49
Gambar 3.15 Sequence Diagram Transaksi Pencairan Pinjaman... 49
Gambar 3.16 Sequence Diagram Transaksi Angsuran Pinjaman... 50
Gambar 3.17 Sequence Diagram Transaksi Jurnal... 50
Gambar 3.18 Sequence Diagram Informasi Nasabah... 51
Gambar 3.19 Sequence Diagram Informasi Rekening... 51
Gambar 3.20 Sequence Diagram Informasi Detail Rekening Simpanan... 52
Gambar 3.21 Sequence Diagram Informasi Detail Rekening Tabungan... 52
Gambar 3.22 Sequence Diagram Informasi Detail Rekening Deposito... 53
Gambar 3.23 Sequence Diagram Informasi Detail Rekening Pinjaman... 53
Gambar 3.24 Sequence Diagram Informasi Mutasi Rekening Simpanan... 54
Gambar 3.25 Sequence Diagram Informasi Mutasi Rekening Tabungan... 54
Gambar 3.26 Sequence Diagram Informasi Mutasi Rekening Deposito... 55
Gambar 3.32 Sequence Diagram Laporan Deposito Jatuh Tempo... 58
Gambar 3.33 Sequence Diagram Laporan Pinjaman Jatuh Tempo ... 58
Gambar 3.34 Sequence Diagram Laporan Mutasi Rekening Simpanan... 59
Gambar 3.35 Sequence Diagram Laporan Mutasi Rekening Tabungan... 59
Gambar 3.36 Sequence Diagram Laporan Mutasi Rekening Deposito... 60
Gambar 3.37 Sequence Diagram Laporan Mutasi Rekening Pinjaman... 60
Gambar 3.38 Sequence Diagram Laporan Jurnal Harian... 61
Gambar 3.39 Sequence Diagram Laporan Mutasi Harian... 61
Gambar 3.40 Sequence Diagram Login Admin... 62
Gambar 3.41 Sequence Diagram Tambah User... 62
Gambar 3.42 Sequence Diagram Ubah User... 63
Gambar 3.43 Sequence Diagram Hapus User... 63
Gambar 3.44 Sequence Diagram Tambah Nasabah... 64
Gambar 3.45 Sequence Diagram Ubah Nasabah... 64
Gambar 3.46 Sequence Diagram Hapus Nasabah... 65
Gambar 3.47 Sequence Diagram Tambah Pegawai... 65
Gambar 3.48 Sequence Diagram Ubah Pegawai... 66
Gambar 3.49 Sequence Diagram Hapus Pegawai... 66
Gambar 3.50 Sequence Diagram Tambah Jaminan... 67
Gambar 3.51 Sequence Diagram Ubah Jaminan... 67
Gambar 3.52 Sequence Diagram Hapus Jaminan... 68
Gambar 3.53 Sequence Diagram Setup Golongan Akun... 68
Gambar 3.54 Sequence Diagram Setup Kelompok Akun... 69
Gambar 3.55 Sequence Diagram Setup Akun... 69
Gambar 3.56 Sequence Diagram Tambah Produk Simpanan... 70
Gambar 3.57 Sequence Diagram Ubah Produk Simpanan... 70
Gambar 3.63 Sequence Diagram Ubah Produk Deposito... 73
Gambar 3.64 Sequence Diagram Hapus Produk Deposito ... 74
Gambar 3.65 Sequence Diagram Tambah Produk Pinjaman... 74
Gambar 3.66 Sequence Diagram Ubah Produk Pinjaman... 75
Gambar 3.67 Sequence Diagram Hapus Produk Pinjaman... 75
Gambar 3.68 Sequence Diagram Informasi Mutasi Jurnal... 76
Gambar 3.69 Sequence Diagram Laporan Neraca Saldo... 76
Gambar 3.70 Sequence Diagram Laporan Laba Rugi... 76
Gambar 3.71 Sequence Diagram Laporan Neraca... 77
Gambar 3.72 Sequence Diagram Laporan Jurnal Umum... 77
Gambar 3.73 Sequence Diagram Proses Akhir Hari... 77
Gambar 3.74 Sequence Diagram Proses Akhir Bulan... 78
Gambar 3.75 Sequence Diagram Proses Akhir Tahun... 78
Gambar 3.76 Class Diagram ... 80
Gambar 3.77 Struktur Menu Utama User... 82
Gambar 3.78 Struktur Menu Utama Admin... 83
Gambar 3.79 Login ... 84
Gambar 3.80 Menu Utama User... 84
Gambar 3.81 Menu Utama Admin... 85
Gambar 3.82 Registrasi Nasabah... 86
Gambar 3.83 Registrasi Anggota ... 86
Gambar 3.84 Registrasi Buka Rekening Tabungan... 87
Gambar 3.85 Registrasi Tutup Rekening Tabungan... 87
Gambar 3.86 Registrasi Buka Rekening Deposito... 87
Gambar 3.87 Registrasi Tutup Rekening Deposito... 88
Gambar 3.88 Registrasi Buka Rekening Pinjaman... 88
Gambar 3.94 Transaksi Angsuran Pinjaman... 91
Gambar 3.95 Transaksi Jurnal... 92
Gambar 3.96 Informasi Nasabah... 92
Gambar 3.97 Informasi Rekening... 93
Gambar 3.98 Informasi Mutasi Simpanan... 93
Gambar 3.99 Informasi Mutasi Tabungan... 94
Gambar 3.100 Informasi Mutasi Deposito... 94
Gambar 3.101 Informasi Mutasi Pinjaman ... 95
Gambar 3.102 Informasi Detail Mutasi Simpanan... 95
Gambar 3.103 Informasi Detail Mutasi Tabungan... 96
Gambar 3.104 Informasi Detail Mutasi Deposito... 96
Gambar 3.105 Informasi Detail Mutasi Pinjaman... 97
Gambar 3.106 Laporan Produk Simpanan ... 97
Gambar 3.107 Laporan Produk Tabungan... 97
Gambar 3.108 Laporan Produk Deposito... 98
Gambar 3.109 Laporan Produk Pinjaman... 98
Gambar 3.110 Laporan Deposito Jatuh Tempo... 98
Gambar 3.111 Laporan Pinjaman Jatuh Tempo... 99
Gambar 3.112 Laporan Mutasi Rekening Simpanan ... 99
Gambar 3.113 Laporan Mutasi Rekening Tabungan... 99
Gambar 3.114 Laporan Mutasi Rekening Deposito... 100
Gambar 3.115 Laporan Mutasi Rekening Pinjaman... 100
Gambar 3.116 Laporan Mutasi Harian... 101
Gambar 3.117 Laporan Jurnal Harian... 101
Gambar 3.118 Setup Jaminan... 102
Gambar 3.119 Setup Golongan Akun... 102
Gambar 3.120 Setup Kelompok Akun... 103
Gambar 3.125 Setup Produk Pinjaman... 105
Gambar 3.126 Pemeliharaan Nasabah... 106
Gambar 3.127 Pemeliharaan Pegawai... 106
Gambar 3.128 Pemeliharaan User... 107
Gambar 3.129 Proses Akhir Hari... 107
Gambar 3.130 Proses Akhir Bulan... 107
Gambar 3.131 Proses Akhir Tahun... 108
Gambar 3.132 Informasi Mutasi Jurnal... 108
Gambar 3.133 Laporan Jurnal Umum... 109
Gambar 3.134 Laporan Buku Besar... 109
Gambar 3.135 Laporan Mutasi Rekening Simpanan... 110
Gambar 3.136 Laporan Mutasi Rekening Tabungan... 110
Gambar 3.137 Laporan Mutasi Rekening Deposito... 111
Gambar 3.138 Laporan Mutasi Rekening Pinjaman... 111
Gambar 3.139 Laporan Rekening Produk Simpanan... 112
Gambar 3.140 Laporan Rekening Produk Tabungan... 112
Gambar 3.141 Laporan Rekening Produk Deposito... 113
Gambar 3.142 Laporan Rekening Produk Pinjaman Pasif... 113
Gambar 3.143 Laporan Rekening Produk Pinjaman Aktif... 113
Gambar 3.144 Laporan Deposito Jatuh Tempo... 114
Gambar 3.145 Laporan Pinjaman Jatuh Tempo... 114
Gambar 3.146 Laporan Mutasi Harian... 115
Gambar 3.147 Laporan Jurnal Harian... 115
Gambar 3.148 Laporan Jurnal Umum... 116
Gambar 3.149 Laporan Neraca Saldo... 116
Gambar 3.150 Laporan Neraca Laba Rugi... 117
Gambar 3.151 Laporan Neraca... 117
Gambar 4.04 Setup Kelompok Akun... 172
Gambar 4.05 Setup Akun... 175
Gambar 4.06 Setup Produk Simpanan... 178
Gambar 4.07 Setup Produk Tabungan... 182
Gambar 4.08 Setup Produk Deposito... 186
Gambar 4.09 Setup Produk Pinjaman... 191
Gambar 4.10 Pemeliharaan Nasabah... 195
Gambar 4.11 Pemeliharaan Pegawai... 200
Gambar 4.12 Pemeliharaan User... 204
Gambar 4.13 Proses Akhir Hari... 207
Gambar 4.14 Proses Akhir Bulan... 209
Gambar 4.15 Proses Akhir Tahun... 210
Gambar 4.16 Informasi Mutasi Jurnal... 211
Gambar 4.17 Laporan Jurnal Umum... 212
Gambar 4.18 Laporan Buku Besar... 213
Gambar 4.19 Registrasi Nasabah... 215
Gambar 4.20 Registrasi Anggota... 216
Gambar 4.21 Registrasi Buka Rekening Tabungan... 217
Gambar 4.22 Registrasi Tutup Rekening Tabungan... 218
Gambar 4.23 Registrasi Buka Rekening Deposito... 220
Gambar 4.24 Registrasi Tutup Rekening Deposito... 221
Gambar 4.25 Registrasi Buka Rekening Pinjaman... 222
Gambar 4.26 Registrasi Tutup Rekening Pinjaman... 225
Gambar 4.27 Transaksi Simpanan... 226
Gambar 4.28 Transaksi Tabungan... 228
Gambar 4.29 Transaksi Deposito... 229
Gambar 4.30 Transaksi Pencairan Pinjaman... 230
Gambar 4.35 Informasi Mutasi Simpanan... 238
Gambar 4.36 Informasi Mutasi Tabungan... 239
Gambar 4.37 Informasi Mutasi Deposito... 240
Gambar 4.38 Informasi Mutasi Pinjaman... 241
Gambar 4.39 Informasi Detail Mutasi Rekening Simpanan... 242
Gambar 4.40 Informasi Detail Mutasi Rekening Tabungan... 243
Gambar 4.41 Informasi Detail Mutasi Rekening Deposito... 244
Gambar 4.42 Informasi Detail Mutasi Rekening Pinjaman... 245
Gambar 4.43 Laporan Produk Simpanan... 246
Gambar 4.44 Laporan Produk Tabungan... 247
Gambar 4.45 Laporan Produk Deposito... 249
Gambar 4.46 Laporan Produk Pinjaman... 250
Gambar 4.47 Laporan Deposito Jatuh Tempo... 251
Gambar 4.48 Laporan Pinjaman Jatuh Tempo... 252
Gambar 4.49 Laporan Mutasi Rekening Simpanan... 253
Gambar 4.50 Laporan Mutasi Rekening Tabungan... 254
Gambar 4.51 Laporan Mutasi Rekening Deposito... 256
Gambar 4.52 Laporan Mutasi Rekening Pinjaman... 257
Gambar 4.53 Laporan Mutasi Harian... 258
Gambar 4.54 Laporan Jurnal Harian... 259
Tabel 3.2 Tabel anggota... 119
Tabel 3.3 Tabel pegawai... 119
Tabel 3.4 Tabel user... 120
Tabel 3.5 Tabel kategori_akun... 120
Tabel 3.6 Tabel golongan_akun... 120
Tabel 3.7 Tabel kelompok_akun... 120
Tabel 3.8 Tabel akun... 121
Tabel 3.9 Tabel simpanan... 121
Tabel 3.10 Tabel tabungan... 121
Tabel 3.11 Tabel deposito... 122
Tabel 3.12 Tabel pinjaman... 122
Tabel 3.13 Tabel jaminan... 122
Tabel 3.14 Tabel detail_jaminan... 122
Tabel 3.15 Tabel kode_transaksi... 123
Tabel 3.16 Tabel account_simpanan... 123
Tabel 3.17 Tabel account_ tabungan... 123
Tabel 3.18 Tabel account_ deposito... 124
Tabel 3.19 Tabel account_ pinjaman... 124
Tabel 3.20 Tabel transaksi_jurnal... 125
Tabel 3.21 Tabel transaksi_account... 125
Tabel 3.22 Tabel jurnal... 125
Tabel 3.23 Tabel buku_besar... 126
Tabel 4.1 Spesifikasi
Software
... 127
Tabel 4.1 Pemetaan
POJO
,
XML Mapping
dan Tabel Database... 129
Tabel 5.1 Pengujian Form Pegawai dengan
Hibernate
... 261
Tabel 5.2 Pengujian Form Pegawai dengan
JDBC
... 262
Tabel 5.3 Pengujian Form Transaksi Simpanan dengan
Hibernate
... 262
1.1 Latar Belakang Masalah
Dalam era informasi seperti saat ini, kebutuhan akan informasi yang
cepat dan tepat sangat dibutuhkan terutama bagi suatu organisasi bisnis. Bagi
suatu organisasi, kebutuhan akan informasi menjadi suatu hal yang penting
untuk melihat perkembangan organisasi dan kemudian informasi tersebut
digunakan oleh manajemen untuk perencanaan strategi bisnis. Informasi yang
dibutuhkan harus didapatkan dengan cepat dan tepat. Pencatatan secara
manual akan memakan waktu yang lama dan kemungkinan kesalahan dalam
pencatatan cukup besar. Oleh karena itu dibutuhkan pengelola informasi yang
dikomputerisasi. Salah satu cara untuk mengelola informasi tersebut adalah
dengan membuat sistem informasi akuntansi untuk mengelola informasi
keuangan dan menampilkannya dalam bentuk laporan akuntansi.
Teknologi yang digunakan juga turut serta mempengaruhi pengelolaan
informasi. Dalam hal ini penulis menawarkan
hibernate
sebagai teknologi
yang dapat menunjang perkembangan teknologi informasi.
Hibernate
merupakan teknologi untuk
object-relational mapping
yang mampu
memetakan obyek ke dalam struktur database relasional maupun dari struktur
database
relasional ke dalam bentuk obyek. Hal ini memudahkan
developer
untuk bekerja dengan obyek dan menerapkan konsep obyek dalam
database
relasional yang bersifat terstruktur.
Dengan memanfaatkan teknologi
hibernate
dalam sistem informasi
akuntansi yang diimplementasikan dalam koperasi kredit, maka pihak
manajemen koperasi akan semakin mudah dan cepat mendapatkan informasi
berupa laporan keuangan dibandingkan dengan cara manual. implementasi
teknologi
hibernate
pada sistem informasi akuntansi koperasi kredit ini
menggunakan studi kasus di Koperasi Kredit Merapi Mulia, Sleman.
1.2 Rumusan Masalah
Dengan adanya latar belakang seperti yang telah disebutkan sebelumnya,
maka dapat dirumuskan permasalahan sebagai berikut :
Bagaimana cara mengimplementasikan teknologi
hibernate
pada sistem
informasi akuntansi koperasi kredit untuk menghasilkan pelaporan akuntansi bagi
internal manajemen.
1.3 Batasan Masalah
Agar pembuatan sistem ini tidak menjadi kompleks atau meluas, maka
diberikan batasan-batasan pada beberapa hal sebagai berikut :
1. Sistem yang dibuat hanya menangani masalah keuangan yang berupa siklus
penerimaan dan siklus pengeluaran yang dihasilkan dari transaksi.
1.4 Tujuan Penelitian
Tujuan dari pembuatan sistem ini adalah :
Menghasilkan sistem informasi akuntansi bagi koperasi kredit yang dibuat
dengan memanfaatkan teknologih
hibernate
.
1.5 Manfaat Penelitian
Manfaat dari pembuatan sistem ini adalah :
1. Menghasilkan laporan akuntansi yang lebih efisien bagi koperasi kredit dan
menghindari kesalahan pembuatan laporan secara manual.
2. Memperkenalkan teknologi
hibernate
sebagai suatu alat yang dapat digunakan
untuk mengembangkan sistem yang berorientasi obyek.
3. Mendukung program pemerintah dalam mengembangkan ekonomi mikro
dalam UKM(Usaha Kecil Menengah) dan Koperasi.
1.6 Metodologi Penelitian
1
Studi Pustaka
Mempelajari bahan-bahan tertulis seperti buku cetak, makalah, maupun
tutorial dari internet yang dapat dijadikan sebagai acuan untuk menyelesaikan
masalah-masalah yang ada.
2
Interview
3
Analisis Sistem
Metode analisis yang digunakan adalah metode analisis obyek dengan
menggunakan
UML(Unified Modelling Language)
. Pada tahap ini dilakukan
pengumpulan kebutuhan-kebutuhan pemakai dan penentuan bagian-bagian
informasi mana yang diperlukan oleh siapa dan kapan. Pemodelan kebutuhan
ini direpresentasikan dengan
use-case diagram
. Untuk pemodelan proses
digunakan
Sequence diagram
.
Membangun model informasi yang menunjukan secara konseptual bagaimana
informasi dirancang, diakses, dimanipulasi dan direpresentasikan. Pemodelan
dilakukan dengan membuat
class diagram
.
4
Desain Sistem
Melakukan desain menu,
input
,
output
,
user
interface
dan
database
.
5
Penulisan Program
1.7 Sistematika Penulisan
BAB I
PENDAHULUAN
Bab ini berisi tentang latar belakang masalah, rumusan masalah,,
batasan masalah, tujuan penelitian, manfaat penelitian, metodologi
penelitian dan sistematika penulisan.
BAB II
LANDASAN TEORI
Bab ini berisi tentang teori-teori yang digunakan dalam
pengembangan sistem. Teori ini meliputi tentang koperasi, sistem
informasi akuntansi dan
hibernate
.
BAB III
ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang analisa kebutuhan dan perancangan model
sistem yang akan dikembangkan.
BAB IV
IMPLEMENTASI SISTEM
Bab ini berisi tentang bagaimana sistem diimplementasikan dalam
penulisan kode program.
BAB V
ANALISIS HASIL
Bab ini berisi analisis hasil implementasi sistem yang terdiri dari
pengujian sistem, kelebihan dan kekurangan sistem yang dibuat.
BAB VI
PENUTUP
2.1 Koperasi
Koperasi adalah badan usaha nirlaba yang beranggotakan orang-orang
sebagai usaha bersama berdasarkan asas kekeluargaan.
2.1.1 Karakteristik pelaporan keuangan koperasi
1. Laporan keuangan koperasi adalah laporan keuangan yang disusun untuk
dapat menggambarkan posisi keuangan sebagai pertanggungjawaban
pengurus atas pengelolaan keuangan koperasi yang terutama ditujukan
kepada anggota.
2. Laporan laba rugi menyajikan hasil akhir yang disebut Sisa Hasil
Usaha(SHU). Acuan komponen pembagian SHU adalah sebagai berikut :
•
Cadangan koperasi
•
Anggota sebanding dengan jasa yang diberikan
•
Dana pengurus
•
Dana pegawai/karyawan
•
Dana pendidikan koperasi
•
Dana sosial
•
Dana pembangunan daerah kerja
3. Pemakai utama dari laporan keuangan koperasi adalah para anggota
koperasi itu sendiri serta para pejabat pembina.
4. Kepentingan pemakai utama laporan keuangan koperasi adalah untuk :
•
menilai pertanggungjawaban pengurus
•
menilai prestasi pengurus
•
menilai manfaat yang diberikan koperasi terhadap anggotanya
•
sebagai bahan pertimbangan untuk menentukan jumlah sumber
daya, karya dan jasa yang akan diberikan kepada koperasi.
2.1.2 Tujuan Pelaporan Keuangan koperasi
Laporan keuangan koperasi dapat menyediakan informasi yang bertujuan
untuk :
1. Mengetahui manfaat yang diperoleh dengan menjadi anggota koperasi
2. Mengetahui prestasi keuangan koperasi selama satu periode dengan Sisa
Hasil Usaha.
3. Mengetahui sumber daya ekonomis yang dimiliki koperasi, kewajiban dan
kekayaan bersih dengan pemisahan antara yang berkaitan dengan anggota
dan bukan anggota
4. Mengetahui transaksi, kejadian dan keadaan yang mengubah sumber daya
ekonomis, kewajiban dan kekayaan bersih dalam suatu periode.
5. Mengetahui informasi penting lainnya yang mungkin mempengaruhi
likuiditas dan solvabilitas koperasi.
Informasi yang diperlukan untuk mencapai tujuan tersebut adalah :
•
Sumber daya ekonomis yang dimiliki koperasi
•
Kekayaan bersih yang dimiliki oleh anggota dan koperasi
•
Transaksi, kejadian dan keadaan yang terjadi dalam suatu periode yang
mengubah daya ekonomis, kewajiban dan kekayaan bersih koperasi
•
Sumber dan penggunaan dana serta informasi-informasi lain yang
mempengaruhi likuiditas dan solvabilitas koperasi.
2.2 Sistem Informasi Akuntansi
Sistem Informasi Akuntansi(SIA) adalah sistem berbasis komputer yang
dirancang untuk mengubah data akuntansi menjadi informasi. Pemakai informasi
akuntansi ini dapat dibagi menjadi 2 kelompok besar, yaitu :
•
Pemakai ekstern : pemegang saham, investor, kreditor, pemerintah,
pelanggan dan pemasok, pesaing, serikat pekerja dan masyarakat.
•
Pemakai intern : manajer organisasi.
Sistem Informasi Akuntansi meliputi beragam aktifitas yang berkaitan
dengan siklus-siklus pemrosesan transaksi perusahaan, meliputi :
•
Siklus pendapatan : kejadian-kejadian yang berkaitan dengan
pendistribusian barang dan jasa ke entitas-entitas lain dan pengumpulan
pembayaran-pembayaran yang berkaitan.
•
Siklus pengeluaran : kejadian-kejadian yang berkaitan dengan perolehan
barang dan jasa dari entitas-entitas lain dan pelunasan
kewajiban-kewajiban yang berkaitan.
•
Siklus keuangan : kejadian-kejadian yang berkaitan dengan perolehan dan
manajemen dana-dana modal, termasuk kas.
2.3
Hibernate
2.3.1 Apa itu
Hibernate
?
Dalam
OOP(Object Oriented Programming)
, masalah dimodelkan dalam
obyek-obyek yang pada umumnya harus disimpan untuk jangka waktu yang lama.
Untuk menyimpan obyek-obyek tersebut, yang paling populer adalah di dalam
database. Akan tetapi database menganut paradigma sendiri yaitu model relasional
dalam bentuk tabel, kolom, relasi dll. Untuk menjembatani dunia
OOP(Object
Oriented Programming)
dan relasional diperlukan teknologi yang disebut sebagai
OR-mapping
(Object Relational mapping)
.
Hibernate
adalah salah satu
framework
Object-Relational mapping(O-R mapping)
.
Framework
dari jenis yang
sama antara lain:
Ibatis, EJB Entity Beans, Oracle TopLink
dll.
2.3.2 Arsitektur
Hibernate
2.3.2.1 Gambaran Arsitektur
Gambar arsitektur
Hibernate
pada high-level :
Diagram di atas menunjukkan bahwa
Hibernate
menggunakan database
dan data konfigurasi berupa file
hibernate.properties
dan
XML Mapping
untuk
menyediakan layanan persisten berupa obyek persisten pada aplikasi. Untuk
arsitektur yang lebih detail, dapat dilihat pada gambar berikut :
Gambar 2.2 Arsitektur
Hibernate
secara detail
berikut penjelasan tiap bagan dari arsitektur hibernate di atas :
•
SessionFactory(org.hibernate.SessionFactory)
•
Session(org.hibernate.Session)
Session
merupakan Obyek yang merepresentasikan hubungan antara
aplikasi dan penyimpanan persisten. Obyek ini membungkus koneksi
JDBC
dan menghasilkan
Transaction
.
Session
merupakan level pertama
dalam menangani obyek persisten yang digunakan untuk menuju obyek
atau menemukan obyek berdasarkan id pengenalnya.
•
Persistent objects
Merupakan obyek yang persisten dan memiliki fungsi bisnis. Seperti
POJO, yang memiliki kekhususan yaitu sedang berhubungan dengan
sebuah obyek
Session
. Setelah
Session
ditutup, obyek ini akan dilepaskan
dan bebas digunakan oleh aplikasi manapun.
•
Transient
dan
detached objects
Instance
dari kelas persisten yang sedang tidak berhubungan dengan
Session
. Obyek ini mungkin telah di-
instance
ke aplikasi dan belum
persisten atau telah di-
instance
oleh
session
penutup.
•
Transaction(org.hibernate.Transaction)
Obyek ini digunakan oleh aplikasi untuk menentukan satuan kerja.
Merupakan aplikasi abstrak dari transaksi
JDBC, JTA
dan
CORBA
. Dalam
beberapa kasus, sebuah obyek
Session
dapat mengikat beberapa
Transaction
.
•
Connection Provider(org.hibernate.connection.ConnectionProvider)
diperlihatkan ke aplikasi. Akan tetapi dapat diimplementasikan oleh
developer
.
•
TransactionFactory(org.hibernate.TransactionFactory)
Merupakan obyek yang menghasilkan
instance
Transaction
. Obyek ini
tidak diperlihatkan ke aplikasi. Akan tetapi dapat diimplementasikan oleh
developer
.
2.3.2.2
State
/keadaan objek
Obyek dari kelas persisten berada dalam satu dari tiga keadaan berikut:
•
Transient
: obyek tidak dan belum pernah dihubungkan dengan
session
,
tidak mempunyai identitas persisten (
primary key
), tidak mempunyai
hubungan dengan
row
(baris) dalam database. Cth: ketika obyek
POJO
dibuat.
•
Persistent
: obyek sedang dihubungkan dengan
session
, mempunyai
identitas persisten (
primary key
) dan berhubungan dengan
row
(baris)
dalam database. Cth : ketika obyek
POJO
berlangsung.
•
Detached
: obyjek pernah menjadi persisten tetapi obyek telah dilepaskan.
Obyek ini memiliki identitas persistent dan mungkin berhubungan dengan
2.3.3 Konfigurasi
karena
Hibernate
didesain untuk operasi di banyak lingkungan yang
berbeda, maka terdapat banyak parameter konfigurasi. Ada 2 cara untuk
mengkonfigurasi
Hibernate
, yaitu dengan melalui
programmatic
configuration
(konfigurasi dalam pemrograman) dan
XML configuration file
(konfigurasi dalam berkas XML).
2.3.3.1
Programmatic configuration
Instance
dari
org.hibernate.cfg.Configuration
mewakili seluruh kumpulan
mapping
dari tipe aplikasi
java
ke database
SQL
.
Configuration
digunakan untuk
membangun
SessionFactory
. Model ini dikompilasi ke file
XML mapping
.
Jika
file mapping
dalam
classpath
, digunakan fungsi
addResource()
:
Configuration cfg = new Configuration() .addResource("Item.hbm.xml")
.addResource("Bid.hbm.xml");
Atau cara alternatif lainnya untuk menentukan kelas yang dimappingkan dan
membiarkan hibernate menemukan dokumen mapping :
Configuration cfg = new Configuration()
.addClass(org.hibernate.auction.Item.class) .addClass(org.hibernate.auction.Bid.class);
kemudian
Hibernate
akan melihat
file mapping
pada
/org/hibernate/auction
Configuration
juga mengijinkan untuk menentukan properti
konfigurasi :
Configuration cfg = new Configuration()
.addClass(org.hibernate.auction.Item.class) .addClass(org.hibernate.auction.Bid.class) .setProperty("hibernate.dialect",
"org.hibernate.dialect.MySQLInnoDBDialect")
.setProperty("hibernate.connection.datasource", "java:comp/env/jdbc/test")
.setProperty("hibernate.order_updates", "true");
untuk konfigurasi yang lebih gampang, cukup dengan mengedit
file
hibernate.properties
.
Configuration
ini dimaksudkan
sebagai obyek saat aplikasi baru dimulai.
2.3.3.1.1 Mendapatkan
SessionFactory
ketika semua
mapping
telah diuraikan oleh
Configuration
, aplikasi harus
menghasilkan pabrik untuk
instance Session
. Pabrik ini dimaksudkan untuk
membagi semua
thread
aplikasi.
SessionFactory sessions = cfg.buildSessionFactory();
Hibernate
mengijinkan aplikasi untuk memiliki lebih dari satu
SessionFactory
. Hal ini berguna jika menggunakan lebih dari satu database.
2.3.3.1.2
JDBC connections
Berikut cara membuka
session
:
Ketika aplikasi membutuhkan akses ke database, maka koneksi
JDBC
akan dihasilkan. Untuk itu perlu diatur beberapa properti yang menangani koneksi
JDBC
.
Property name
Purpose
hibernate.connection.driver_class
jdbc driver class
hibernate.connection.url
jdbc URL
hibernate.connection.username
database user
hibernate.connection.password
database user password
hibernate.connection.pool_size
maximum number of pooled
connections
Tabel 2.1 properti koneksi JDBC
2.3.3.2
XML configuration File
Alternatif konfigurasi yang lain melalui file
hibernate.cfg.xml
.
File
ini
dapat digunakan untuk menggantikan
file
hibernate.properties
. berikut contoh
file
konfigurasi
XML
:
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<!-- a SessionFactory instance listed as /jndi/name --> <session-factory
<!-- properties -->
<property name="connection.datasource"> java:/comp/env/jdbc/MyDB
</property>
<property name="dialect"> org.hibernate.dialect.MySQLDialect </property>
<property name="show_sql">false</property> <property name="transaction.factory_class">
org.hibernate.transaction.JTATransactionFactory </property>
<property name="jta.UserTransaction"> java:comp/UserTransaction </property>
<!-- mapping files -->
<mapping resource= "org/hibernate/auction/Item.hbm.xml"/> <mapping resource="org/hibernate/auction/Bid.hbm.xml"/>
<!-- cache settings -->
<class-cache class= "org.hibernate.auction.Item" usage="read-write"/>
<class-cache class= "org.hibernate.auction.Bid" usage="read-only"/>
<collection-cache collection="org.hibernate.auction.Item.bids" usage="read-write"/>
</session-factory>
</hibernate-configuration>
SessionFactory sf = new
Configuration().configure().buildSessionFactory();
Selain itu dapat juga menggunakan file konfigurasi
XML
yang lain, seperti :
SessionFactory sf = new Configuration() .configure("catdb.cfg.xml")
.buildSessionFactory();
2.3.4 Persistent Classes
Persistent class
merupakan kelas dalam aplikasi yang
mengimplementasikan entitas. Tidak semua obyek dari kelas persisten termasuk
dalam
state
/keadaan
persistent
, akan tetapi bisa termasuk dalam
state transient
atau
detached
.
Hibernate
dapat bekerja dengan baik jika kelas-kelas mengikuti beberapa
aturan sederhana yang dikenal sebagai model pemrograman
Plain Old Java
Object(POJO)
.
2.3.4.1 Contoh
POJO
:
package eg;
import java.util.Set; import java.util.Date;
public class Cat {
private Long id; // identifier
private int litterId;
void setBirthdate(Date date) { birthdate = date;
}
public Date getBirthdate() { return birthdate;
}
}
public int getLitterId() { return litterId; }
void setMother(Cat mother) { this.mother = mother; }
public Cat getMother() { return mother; }
void setKittens(Set kittens) { this.kittens = kittens; }
public Set getKittens() { return kittens; }
// addKitten not needed by Hibernate }
berikut 4 aturan utama yang harus diikuti oleh
POJO
:
1. implementasi konstruktor tanpa argumen
2. menyediakan properti pengenal
3. kelas lebih baik berupa non-final
2.3.5 Dasar
Object Relational Mapping (O/R mapping)
2.3.5.1 Deklarasi
Mapping
Object/Relational mapping
biasanya didefenisikan dalam dokumen
XML
.
Dokumen
mapping
ini didesain agar dapat dibaca dan diubah. Bahasa
mapping
adalah
java-centric
, yang berarti bahwa
mapping
dibangun melalui deklarasi kelas
persisten, bukan deklarasi tabel. Ada pengguna
Hibernate
yang menulis
XML
secara manual dan ada yang menggunakan
tools
untuk pembuatan dokumen
mapping
, seperti
Xdoclet, Middlegen
dan
AndroMDA
.
Contoh dokumen
mapping
:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="eg">
<class name="Cat" table="cats"
discriminator-value="C">
<id name="id">
<generator class="native"/> </id>
<discriminator column="subclass" type="character"/>
<property name="weight"/>
<property name="birthdate" type="date"
<property name="color"
type="eg.types.ColorUserType" not-null="true"
update="false"/>
<property name="sex" not-null="true" update="false"/> <property name="litterId" column="litterId" update="false"/>
<many-to-one name="mother" column="mother_id" update="false"/>
<set name="kittens" inverse="true"
order-by="litter_id">
<key column="mother_id"/> <one-to-many class="Cat"/> </set>
<subclass name="DomesticCat" discriminator-value="D">
<property name="name" type="string"/>
</subclass> </class>
<class name="Dog">
<!-- mapping for Dog could go here --> </class>
</hibernate-mapping>
2.3.5.1.1 Doctype
Semua
file XML mapping
harus menggunakan elemen
doctype
seperti di
bawah ini sebagai DTD.
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" [ <!ENTITY types SYSTEM "classpath://your/domain/types.xml">
]>
2.3.5.1.2 hibernate-mapping
Elemen
hibernate-mapping
mengijinkan untuk memasukkan beberapa
elemen kelas persisten. Akan tetapi lebih baik menggunakan satu
file mapping
untuk satu kelas persisten.
<hibernate-mapping
schema="schemaName" (1) catalog="catalogName" (2) default-cascade="cascade_style" (3) default-access="field|property|ClassName" (4) default-lazy="true|false" (5) auto-import="true|false" (6) package="package.name" (7) />
2.3.5.1.3 class
Elemen ini digunakan untuk mendeklarasikan kelas persisten.
name="ClassName" (1) table="tableName" (2) discriminator-value="discriminator_value" (3) mutable="true|false" (4) schema="owner" (5) catalog="catalog" (6) proxy="ProxyInterface" (7) dynamic-update="true|false" (8) dynamic-insert="true|false" (9) select-before-update="true|false" (10) polymorphism="implicit|explicit" (11) where="arbitrary sql where condition" (12) persister="PersisterClass" (13) batch-size="N" (14) optimistic-lock="none|version|dirty|all" (15) lazy="true|false" (16) entity-name="EntityName" (17) check="arbitrary sql check condition" (18) rowid="rowid" (19) subselect="SQL expression" (20) abstract="true|false" (21) node="element-name"
/>
2.3.5.1.4 id
Setiap elemen class harus mendeklarasikan kolom
primary key
dalam tabel
database. Selain itu, setap kelas juga memiliki properti identitas pengenal dalam
instance java
. Oleh karena itu, elemen id digunakan untuk memetakan properti
<id
name="propertyName" (1) type="typename" (2) column="column_name" (3) unsaved-value="null|any|none|undefined|id_value"(4) access="field|property|ClassName"> (5) node="element-name|@attribute-name|element/@attribute|." <generator class="generatorClass"/>
</id>
2.3.5.1.5 property
Elemen
property
mendeklarasikan properti yang bersifat persisten pada
kolom tabel.
<property
name="propertyName" (1) column="column_name" (2) type="typename" (3) update="true|false" (4) insert="true|false" (4) formula="arbitrary SQL expression" (5) access="field|property|ClassName" (6) lazy="true|false" (7) unique="true|false" (8) not-null="true|false" (9) optimistic-lock="true|false" (10) generated="never|insert|always" (11) node="element-name|@attribute-name|element/@attribute|." index="index_name"
precision="P" scale="S" />
2.3.5.1.6 many-to-one
Elemen ini menunjukkan hubungan relasi
many to one
dimana
foreign key
dalam 1 tabel menunjuk ke kolom
primary key
dari tabel tujuan.
<many-to-one
name="propertyName" (1) column="column_name" (2) class="ClassName" (3) cascade="cascade_style" (4) fetch="join|select" (5) update="true|false" (6) insert="true|false" (6) property-ref="propertyNameFromAssociatedClass" (7) access="field|property|ClassName" (8) unique="true|false" (9) not-null="true|false" (10) optimistic-lock="true|false" (11) lazy="proxy|no-proxy|false" (12) not-found="ignore|exception" (13) entity-name="EntityName" (14) formula="arbitrary SQL expression" (15) node="element-name|@attribute-name|element/@attribute|." embed-xml="true|false"
index="index_name"
2.3.5.1.7 one-to-one
Elemen ini untuk mendeklarasikan hubungan
one-to-one
ke kelas persisten
yang lain.
<one-to-one
name="propertyName" (1) class="ClassName" (2) cascade="cascade_style" (3) constrained="true|false" (4) fetch="join|select" (5) property-ref="propertyNameFromAssociatedClass" (6) access="field|property|ClassName" (7) formula="any SQL expression" (8) lazy="proxy|no-proxy|false" (9) entity-name="EntityName" (10) node="element-name|@attribute-name|element/@attribute|." embed-xml="true|false"
foreign-key="foreign_key_name" />
2.3.5.1.8 properties
Elemen ini merupakan elemen untuk mendefenisikan banyak kolom.
<properties
<property .../> <many-to-one .... /> ...
</properties>
Contoh :
<class name="Person">
<id name="personNumber"/> ...
<properties name="name"
unique="true" update="false"> <property name="firstName"/> <property name="initial"/> <property name="lastName"/> </properties>
</class>
2.3.5.1.9 column
Elemen untuk mendeklarasikan atribut kolom pada tabel database.
<column
name="column_name" length="N"
precision="N" scale="N"
not-null="true|false" unique="true|false"
unique-key="multicolumn_unique_key_name" index="index_name"
check="SQL expression" default="SQL expression"/>
2.3.5.2 menggunakan
tools XDoclet
Pengguna Hibernate dapat juga memasukkan informasi
mapping
secara
langsung dalam kode program menggunakan
XDoclet
. Berikut contoh
XDoclet
mapping
:
package eg;
import java.util.Set; import java.util.Date;
/**
* @hibernate.class * table="CATS" */
public class Cat {
private Long id; // identifier private Date birthdate;
private Cat mother; private Set kittens private Color color; private char sex; private float weight;
/*
* @hibernate.id
* generator-class="native" * column="CAT_ID"
public Long getId() { return id;
}
private void setId(Long id) { this.id=id;
}
/**
* @hibernate.many-to-one * column="PARENT_ID" */
public Cat getMother() { return mother; }
void setMother(Cat mother) { this.mother = mother; }
/**
* @hibernate.property * column="BIRTH_DATE" */
public Date getBirthdate() { return birthdate;
}
void setBirthdate(Date date) { birthdate = date;
} /**
*/
public float getWeight() { return weight;
}
void setWeight(float weight) { this.weight = weight; }
/**
* @hibernate.property * column="COLOR" * not-null="true" */
public Color getColor() { return color;
}
void setColor(Color color) { this.color = color; }
/**
* @hibernate.set * inverse="true"
* order-by="BIRTH_DATE" * @hibernate.collection-key * column="PARENT_ID"
* @hibernate.collection-one-to-many */
public Set getKittens() { return kittens; }
}
// addKitten not needed by Hibernate public void addKitten(Cat kitten) { kittens.add(kitten);
} /**
* @hibernate.property * column="SEX" * not-null="true" * update="false" */
public char getSex() { return sex;
}
void setSex(char sex) { this.sex=sex; }