• Tidak ada hasil yang ditemukan

Bab ini berisi tentang kesimpulan dan saran dari pengembangan

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 produksi : kejadian-kejadian yang berkaitan dengan pengubahan sumber daya menjadi barang dan jasa.

• 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

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

Merupakan obyek yang mengkompilasi mapping ke sebuah database.

Obyek ini menghasilkan Session dan bekerja dengan Connection Provider.

Berfungsi juga untuk menangani data yang dapat digunakan kembali

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)

Merupakan obyek yang menghasilkan koneksi JDBC. Sebagai aplikasi

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

row(baris) dalam database. Digunakan ketika obyek POJO dibutuhkan

untuk dikirimkan ke program lain untuk manipulasi tanpa memiliki

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 Date birthdate; private Color color; private char sex; private float weight;

private int litterId;

private Cat mother;

private Set kittens = new HashSet();

private void setId(Long id) { this.id=id;

}

public Long getId() { return id;

}

void setBirthdate(Date date) { birthdate = date;

}

public Date getBirthdate() { return birthdate;

}

void setWeight(float weight) { this.weight = weight; }

public float getWeight() { return weight;

}

public Color getColor() { return color;

}

void setColor(Color color) { this.color = color; }

void setSex(char sex) { this.sex=sex; }

public char getSex() { return sex;

}

void setLitterId(int id) { this.litterId = id;

}

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" not-null="true" update="false"/>

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

Dokumen mapping terdiri dari atribut dan elemen-elemen yang mempengaruhi

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" unique_key="unique_key_id" length="L"

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" unique_key="unique_key_id" foreign-key="foreign_key_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 name="logicalName" (1) insert="true|false" (2) update="true|false" (3) optimistic-lock="true|false" (4) unique="true|false" (5) >

<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" sql-type="sql_type_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;

} /**

* @hibernate.property * column="WEIGHT"

*/

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

void setKittens(Set kittens) { this.kittens = 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; }

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

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)

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

Dokumen terkait