• Tidak ada hasil yang ditemukan

Implementasi teknologi hibernate pada sistem informasi akuntansi koperasi kredit : studi kasus Koperasi Kredit Merapi Mulia, Sleman - USD Repository

N/A
N/A
Protected

Academic year: 2019

Membagikan "Implementasi teknologi hibernate pada sistem informasi akuntansi koperasi kredit : studi kasus Koperasi Kredit Merapi Mulia, Sleman - USD Repository"

Copied!
295
0
0

Teks penuh

(1)

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

(2)
(3)

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

(4)
(5)
(6)

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

(7)

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

(8)

...

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.

(9)

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)

(10)

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.

(11)

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.

(12)

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.

(13)

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.

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)
(28)
(29)

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.

(30)

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.

(31)

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

(32)

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

(33)

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

(34)

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.

(35)

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

(36)

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.

(37)

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 :

(38)

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)

(39)

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)

(40)

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

(41)

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

(42)

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

:

(43)

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

(44)

<!-- 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>

(45)

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

(46)

private int litterId;

void setBirthdate(Date date) { birthdate = date;

}

public Date getBirthdate() { return birthdate;

}

(47)

}

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

(48)

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"

(49)

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

(50)

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.

(51)

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

(52)

<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"

(53)

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"

(54)

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

(55)

<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"

(56)

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"

(57)

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;

} /**

(58)

*/

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; }

(59)

}

// 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; }

(60)

2.3.6 Bekerja dengan Obyek

2.3.6.1 Transisi

State

Obyek

transient

dapat dibuat menjadi

persistent

dengan memanggil fungsi

save(), persist()

atau

saveOrUpdate().

Obyek

persistent

dapat dibuat menjadi

transient

dengan memanggil fungsi

delete().

Setiap obyek yang dihasilkan oleh fungsi

get()

atau

load()

adalah

persistent

.

Obyek

detached

dapat dibuat menjadi

persistent

dengan memanggil fungsi

update(), saveOrUpdate(), lock()

atau

replicate()

.

2.3.6.2 Daur hidup operasi

Interface

Session

menyediakan fungsi-fungsi untuk operasi daur hidup.

Hasil dari fungsi-fungsi daur hidup akan berakibat pada

state

/keadaan obyek.

Operasi tersebut meliputi :

save, load, get, refresh, update, delete

dan

query

obyek.

2.3.6.2.1

Saving

obyek

Membuat obyek dari kelas yang dipetakan dengan

Hibernate mapping

tidak secara otomatis menulis obyek tersebut ke dalam database. Obyek akan

ditulis dalam database bila menyimpannya dengan

session

Hibernate

yang valid.

Selain itu, kelas dari obyek yang disimpan harus mempunyai

file

(61)

public Serializable save(Object object)

public void save(Object object, Serializable id)

public Serializable save(String entityName, Object object)

2.3.6.2.2

Loading

Obyek

Operasi ini digunakan untuk mengambil obyek dari database. Tiap fungsi

load()

membutuhkan

primary key

obyek sebagai pengenal. Selain itu, fungsi

load()

juga membutuhkan kelas domain atau nama entitas yang digunakan untuk

menemukan obyek dengan identitas tertentu. Fungsi-fungsi yang digunakan

adalah :

public Object load(Class theClass, Serializable id)

public Object load(String entityName, Serializable id)

public void load(Object object, Serializable id)

2.3.6.2.3

Getting

obyek

Cara kerja operasi ini mirip dengan fungsi

load()

. Perbedaannya adalah:

Jika yakin bahwa obyek benar-benar ada, maka digunakan fungsi

load().

Jika tidak yakin bahwa obyek ada atau tidak, maka gunakan fungsi

get()

.

Fungsi yang digunakan adalah :

public Object get(Class theClass, Serializable id)

(62)

2.3.6.2.4

Refreshing

obyek

Operasi ini digunakan untuk me-

refresh

obyek dari database. Fungsi yang

digunakan adalah :

public void refresh(Object object)

2.3.6.2.5

Updating

obyek

Hibernate

secara otomatis mengelola setiap perubahan yang dibuat ke

obyek persistent. Jika sebuah properti diubah ke obyek persisten, maka

session

dalam

Hibernate

akan melakukan perubahan dalam database. Untuk

developer

,

cara ini lebih mudah karena tidak perlu banyak pekerjaan untuk menyimpan

perubahan dalam database. Untuk perubahan tersebut,

Hibernate

dapat dipaksa

untuk men-

commit

semua perubahan dengan menggunakan fungsi

flush().

Fungsi

yang digunakan adalah

update().

2.3.6.2.6

Deleting

obyek

Menghapus obyek dari database. Dapat menggunakan fungsi

delete()

.

2.3.6.2.7

Querying

obyek

Hibernate

menyediakan 3 cara untuk

query

obyek :

Criteria API

HQL(Hibernate Query Language)

(63)

Operasi daur hidup dan perintah

SQL

:

Save()

dan

persist()

menghasilkan perintah

SQL INSERT

Delete()

menghasilkan perintah

SQL DELETE

Update()

atau

merge()

menghasilkan perintah

SQL UPDATE

Perubahan ke obyek persistent dideteksi pada saat

flush()

yang

menghasilkan perintah

SQL UPDATE

saveOrUpdate()

dan

replicate()

menghasilkan perintah antara SQL

(64)

3.1

Analisis Sistem

Analisis sistem adalah suatu teknik penyelesaian masalah yang

membagi sistem ke dalam bagian-bagian komponen kecil dengan tujuan

agar bagian-bagian dari komponen tersebut dapat bekerja dan berinteraksi

dengan baik untuk melengkapi tujuannya.

Analisis sistem menggambarkan realisasi dari

use case

dalam

use case

diagram, dan bertindak sebagai abstraksi dari desain sistem. Tujuan dari

tahap ini adalah membuat pemetaan awal mengenai perilaku yang

diisyaratkan dalam sistem aplikasi ke dalam elemen-elemen pemodelan.

3.1.1

Analisis Kebutuhan

(Requirement Analysis)

Analisis kebutuhan terdiri dari

use case

diagram yang menjelaskan

manfaat sistem jika dilihat menurut pandangan orang yang berada di luar

sistem (

actor

). Diagram ini menunjukkan fungsionalitas suatu sistem atau

kelas dan bagaimana sistem berinteraksi dengan dunia luar. Di dalam

use

case

diagram yang lebih ditekankan adalah “apa” yang diperbuat sistem.

Use case

merupakan sebuah pekerjaan tertentu, misalnya

login

ke sistem.

Gambar 3.1 dan 3.2 berikut merupakan

use case

diagram

dari sistem yang

dibangun.

Gambar

Gambar 2.2 Arsitektur Hibernate secara detail
Gambar 3.37 Sequence Diagram Laporan Mutasi Rekening Pinjaman
Gambar 3.41 Sequence Diagram Tambah User
Gambar 3.43 Sequence Diagram Hapus User
+7

Referensi

Dokumen terkait

Pada wilayah yang mempunyai potensi sumber daya alam yang sesuai untuk pengembangan komoditas utama, maka ketersediaan infrastrukturnya cenderung lebih lengkap dan

Dari hasil penelitian didapatkan bahwa tidak terdapat perbedaan yang bermakna untuk pengetahuan mengenai bahaya kandungan rokok terhadap kepatuhan mahasiswa dan

1) Rekomendasi penataan lahan pasang surut di Kabupaten Barito Kuala Kalimantan Selatan antara lain (1) Lahan rawa pasang surut berpotensi menjadi sumber produksi

Puji syukur kehadirat Allah SWT yang telah melimpahkan rahmat serta hidayahnya-Nya sehingga penulis dapat menyelesaikan penyusunan skripsi ini dengan judul “

Pengaturan mengenai PPNS, telah diatur dalam Peraturan Daerah Provinsi Kepulauan Bangka Belitung Nomor 3 Tahun 2008 yang ditetapkan berdasarkan Undang-Undang Nomor

Surat Kesediaan Pembimbingan Mulai Rekap Daftar Pengajuan Judul Skripsi Memeriksa daftar dosen pembimbing yang layak Mengisi Dosen Pembimbing pada Daftar Pengajuan

Himpunan Peraturan Daerah Provinsi Kepulauan Bangka Belitung Tahun 2015 40 menelaah kesesuaian antara RKA-SKPD dan DPPA-SKPD sebagaimana dimaksud pada ayat (1) dengan kebijakan

Ujian Skripsi Pengumuman Dosen Pembimbing Arsip Selesai Surat Kesediaan Pembimbingan Bersedia. Surat Kesediaan Pembimbingan Proposal / Skripsi di