Dian Indah Savitri G Pembimbing 1 : wisnu ananta kusuma, S.t.,m.t.

Slides:



Advertisements
Presentasi serupa
DESAIN & KONFIGURASI DATABASE
Advertisements

Continous DBMS DATA MODELS
System Application and Product in data processing
BASIS DATA RELATIONAL.
Penerapan Locking pada DBMS berbasis Web
Matakuliah Aplikasi Komputer Annisa Rasyid SST
Matakuliah Aplikasi Komputer Annisa Rasyid SST
IT Strategis dan Aplikasi Bisnis
BASIS DATA.
SAP/Software Application and Product
Team Keamanan Data Direktorat Sistem Informasi Universitas Airlangga
Hadikusuma Wahab G Pembimbing Desina Kartika M., S.Si.,M.CompSc. Wisnu Ananta Kusuma, ST.MT.
Metode Perancangan Program
Perancangan Basis Data MI 1133
Manajemen Basis Data menggunakan SQL Server
PEMBUATAN MODEL DATA dan DESAIN DATABASE
Pemrograman Terstruktur
Modul-Modul Paket ERP Presented by: Purdianta.
Microsoft SQL Server DDL dan DML dasar
Compiere ERP Aplikasi Bisnis di Linux
Database Management System
Desain Database Disusun Oleh : Dr. Lily Wulandari
Disampaikan oleh Nyimas Artina,S.Kom, M.Si
Antonius Wahyu Sudrajat, S. Kom., M.T.I. Perintah SQL: Data Definition.
Koneksi PHP ke Database MySQL
Pendahuluan Pertemuan 5 - 8
BAB 1 Pengenalan Database dan DBMS
SISTEM MANAJEMEN DATA Cherrya Dhia Wenny.
PROGRAM STUDI AKUNTANSI - STIE MDP
Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.
PENGANTAR TEKNOLOGI SIA 2
Aplikasi Database pada InTouch - SQL Access Manager
Desain Database Dengan Model Entity Relationship (ER)
Model Data Relasional.
Proses bisnis dan sistem informasi manajemen
BAB 4 QUERY FORMULATION with SQL
Enterprise Resource Planning
Outline: Relational Data Model Entity Relationship Diagram
Pengantar Basis Data Lanjut
TEMPAT PENYIMPANAN DATA
ARSITEKTUR APLIKASI WEB
Manajemen Basis Data menggunakan SQL Server
Aplikasi Manajemen Perkantoran E
Bab 2 Mengenal Data Base Management System (DBMS)
Pengenalan ERP (Enterprise Resource Planning)
7 DATABASE Client/Server Wiratmoko Y, ST C H A P T E R
Pertemuan III Betha Nurina Sari, M.Kom
THE DEVELOPMENT OF ENTERPRISE RESOURCE PLANNING SYSTEMS
Pengenalan Sistem Basis Data
Management Information System
Cross-Funtional Enterprise Systems (CFES)
Java Database Programming
ANALYSIS.
Basis Data [TK1064] I. Pengenalan Basis Data
System Application and Product in data processing
Infrastruktur E-Business
Pengantar Sistem Informasi Manufaktur
SISTEM BISNIS PERUSAHAAN
Enterprise Resource Planning (ERP)
Compiere ERP Aplikasi Bisnis di Linux
Model Data Relasional.
Aplikasi dan Rekayasa E-Bisnis
Oleh : Rhamdani (G ) Dibimbing oleh : Wisnu Ananta Kusuma, S.T, M.T
Java Database Connectivity (JDBC)
Pengantar Umum. Memahami sistem perkuliahan, sistem penilaian, dan tata tertib kuliah 1. Uraian objektif dan tanya jawab 2. Kuis 3. Praktek 4.Tugas individu/kelompok.
WEB SERVICE. PENGERTIAN WEB SERVICE  Merupakan media standar untuk komunikasi yang menyebar antara aplikasi clien dan server pada World Wide Web.
Tahapan pengembangan sistem basis data
Penerapan Enterprise Resource Planning (ERP) untuk Sistem Informasi Pembelian, Persediaan, dan Penjualan Barang pada Toko Emi Grosir dan Eceran Di Susun.
Sumber Buku : Laravel 5.7 -oleh Muhammad Azamuddin & Hafid Mukhlasan
DATABASE.
Transcript presentasi:

ORM Framework dan JEE Pattern dalam Aplikasi Enterprise Resource Planning Dian Indah Savitri G64104035 Pembimbing 1 : wisnu ananta kusuma, S.t.,m.t. Pembimbing 2 : toto haryanto,s.kom.

pendahuluan

Latar Belakang ERP  aplikasi enterprise yang menyatukan aktivitas bisnis perusahaan. Aplikasi ERP menghubungkan transaksi bisnis to bisnis, bisnis to customer, perhitungan financial, dan human resource.(Parr 2000) B2C B2B

Arsitektur ERP yang diakomodari oleh Java EE (MVC) View Controller Model Presentation Layer Graphical User Interface Browser utk data entry Akses thd fungsi sistem Application Layer Business rules, logika, fungsi program terhadap data yang diterima/ ditransfer dari/ke server database. Database Layer Manajemen data transaksi termasuk didalamnya metadata. Rashid, et. al 2002

Mismacth paradigm Granularity Subtypes Identity Assosiation Pengembangan aplikasi enterprise berbasis objek Basisdata Realsional Obejct Relational Mapping Granularity Subtypes Identity Assosiation Navigasi data Bauer dan King 2007

Tujuan penelitian Menganalisis ketidaksesuaian yang muncul dari rancangan sistem Retail ERP yang dikembangkan Ernita (2008) dan basis data relasional yang digunakan. Menerapkan konsep ORM untuk mengatasi masalah ketidaksesuaian tersebut. Memanfaatkan konsep design pattern dalam akses basis data oleh lapisan aplikasi.

Manfaat penelitian pemeliharaan dan pengelolaan manajemen basis data pada pengembangan sistem ERP selanjutnya. menghemat koneksi pada server basis data

Tinjauan pustaka

Enterprise Resource Planning suatu aplikasi terintegrasi yang berkonsentrasi untuk menyatukan aktivitas proses transaksi enterprise. Beberapa inti modul ERP yang ditemukan pada sistem ERP yaitu (Rashid et. al 2002): Manajemen akuntasi, manajemen keuangan, manajemen manufacturing, manajemen produksi, manajemen transportasi, manajemen penjualan dan distribusi, manajemen sumberdaya manusia, Supply Chain Management (SCM), Customer Relationship Management (CRM), dan E-business Rashid et. al 2002

Object Persistence objek yang dihasilkan dari suatu sistem yang dapat disimpan dalam waktu lama bahkan bersifat permanen. disimpan dalam bentuk basis data relasional, file system dalam harddisk, file XML, Web Service, ODBMS (Object Data Base Management System), dan LDAP. Peak dan Heudecker 2006

Object Relational Mismatch ketidaksesuaian antara basis data yang menggunakan konsep relasional dengan pengembangan aplikasi yang menggunakan konsep berorientasi objek. Ketidaksesuaian tersebut meliputi aspek: Granularity Subtypes Identity Asosiasi Navigasi data Bauer dan King 2007

Object Relational Mapping sebuah framework yang mengatasi perbedaan sistem basis data yang bersifat relational dengan paradigma pengembangan aplikasi yang berorientasi objek. menjembatani dialek SQL yang digunakan. Bauer dan King 2007

Design Pattern unsur-unsur rancangan yang seringkali muncul pada berbagai jenis sistem. merupakan katalog permasalahan beserta solusi yang sudah teruji dalam perancangan sistem. DAO pattern : pola yang mengenkapsulasi data akses dan manipulasi ke dalam lapisan yang berbeda. Service pattern (facade) : pola yang mengintegrasikan DAO-DAO pattern ke dalam lapisan baru yang disebut Service. Alur et al. 2003

Design pattern (cont..) Singleton : adalah pola yang hanya mempunyai satu instansiasi dari suatu class yang dipakai pada sistem tertentu. Proxy : adalah pola yang merancang suatu objek mewakili kontrol atau akses objek lain bertindak seolah-oleh objek tersebut melakukannya. Factory method : pola untuk mengenkapsulasi suatu objek dan diinstasiasi satu kali untuk digunakan berulang-ulang.

Declarative transaction suatu teknik untuk medeklarasikan semua transaksi dalam suatu file konfigurasi untuk menangani semua proses transaksi tanpa harus membuat kode-kode program untuk menangani transaksi secara eksplisit. mengatur rollback (method dan exception) apabila terjadi kegagalan transaksi Walls dan Beidenbach 2005

Inversion of Control Disebut juga Dependency Injection. adalah suatu konsep yang diterapkan oleh suatu objek untuk mendapatkan objek lain yang dibutuhkan tanpa harus mencari dan memasukan objek tersebut secara eksplisit. Walls dan Beidenbach 2003

Metode penelitian

Analisis kebutuhan ORM Metode Penelitian Studi literatur Analisis kebutuhan ORM Implementasi ORM evaluasi

HASIL DAN PEMBAHASAN

Deskripsi umum Modul pembelian Purchase Requisition (PR) Request for Quotation (RFQ) Purchase Order (PO) Demand Order (DO) Goods Receive Manajemen Inventory Modul akuntansi Jurnal buku besar (General Ledger) Invoices dan payment Account Payable Account Payment Managemen COA (Code of Account) Modul Penjualan Katalog barang Add to Cart Pelanggan Pengantaran

Analisis mismatch Granularity Basis data relasional tidak mengenal user-defined-data-type RFQ mempunyai beberapa Price akan dimapping ke satu tabel. RFQDetail Price

Analisis mismatch (cont..) Identitas Basis data  primary key Java  lokasi memory (==) Secara lojik sama (equals()) Navigasi data perbedaan mekanisme mengakses data pada objek dan tabel. Basis data  menggunkan SQL (query join) Java  method getter

Analisis mismatch (cont..) Asosiasi One-to-one One-to-many Many-to-many

Membuat DTO dan menghilangkan mismach Membuat konfigurasi basis data dan hibernate public class Product{ private int id; private String prodName; private Double unitPrice; //getter and setter method} Prod_ID Prod_name Unit price 1 pupuk 100 2 bibit 200

Penanganan mismatch Granularitas RFQ mempunyai beberapa Price akan dimapping ke satu tabel. Ada tipe data Price pada class RFQ. Entitas price menentukan entitas RFQ. Disebut juga parent child Cascade = {CascadeType.PERSIST, CascadeType.REMOVE}, fetch = FetchType.EAGER)

Penanganan mismatch (cont..) Identitas Menambah property @Id pada setiap entitas. @Entity @Table(name = "IN_ITEM") public class InventoryItem{ @Id @GeneratedValue (strategy=GenerationType .AUTO) @Id merepresentasikan suatu primary key, dan secara lojik berbeda dengan id entitas lainnya.

Penanganan mismach (cont..) Asosiasi One-to-one Join column berada pada entitas yang total participant. @OneToOne @JoinColumn (name = " id_ pu_ order") apabila asosiasinya bidirectional @OneToOne (mappedBy="order") private PurchaseDemand purDemand;

Penanganan mismach (cont..) Asosiasi (cont..) One-to-many Join column berada pada entitas dengan kardinalitas many. @ManyToOne @JoinColumn ( name = " id_pu_requisition") private Requisition requisition; Apabila asosiasinya bidirectional @OneToMany (mappedBy = "requisition") private List <RequisitionDetail> requisitionDetail = new ArrayList <RequisitionDetail>();

Penanganan mismatch Asosiasi (cont..) Many-to-many Join tabel berada pada entitas total participant Menghasilkan 1 tabel hasil asosiasi @ManyToMany @JoinTable(name= "ad_modul_group", joinColumns={@JoinColumn(name= "id_ad_modul")}, inverseJoinColumns={@JoinColumn(name="id_ad_group")}) private List <AdminGroup> adminGroups=new ArrayList <Admin Group>(); Apabila mappingnya bidirectional @ManyToMany(mappedBy="adminGroups") private List <AdminModul> admin Moduls = new ArrayList<AdminModul>();

Penanganan mismatch Navigasi data Bagaimana cara mengakses objek dari objek lain. Arah navigasi Unidirectional Bidirectional invProdBrand.getInItem.getName(); Pada basis data tidak mengenal arah navigasi, akses tabel dari tabel lain menggunakan join Select name from IN_ITEM i left outer join IN_PROD_BRAND pb on i.id=pb.id where i.id=123

Fungsi akses data menerapkan DAO, singleton, factory method patttern DAO pattern Akses dan manipulasi data Berisi fungsi-fungsi (saveOrUpdate(insert dan update), delete, getAll (select *), getById (select * from CLASS where id = ?), dll ) Singleton pattern Objek dataSource Berisi properti koneksi basis data. Objek sessionFactory Membuat objek Session yang bertanggungjawab selama transaksi (begin, commit, rollback).

Fungsi akses data (cont..) Objek dataSource dan sessionFactory dibuat dan dimasukan ke dalam objek DAO. Menggunkan teknik Dependency Injection atau Inversion of Control. Oleh Spring Framework

Penyederhanaan fungsi akses data menggunakan façade dan proxy pattern 50 objek DTO, masing-masing mempunyai objek DAO untuk akses data (save, update, delete, get, dll) Façade pattern  menyederhanakan DAO ke dalam lapisan Service sesuai dengan submodulnya. Menghasilkan 7 interface Service. Service  penguhubung dengan lapisan aplikasi

Penyederhanaan fungsi akses data (cont..) Service dipanggil oleh lapisan aplikasi. Proxy pattern  teknik declatarive transaction. Service tidak mengaskes daa secara langsung Memanggil “moduleXXXService” pada hibernate.ctx.xml Membuat class proxy yang berisi fungsi-fungsi untuk transaksi (begin, comit, rollback). Fungsi-fungsi tersebut dimasukan ke dalam obje Session melalui method getHibernateTemplate(). Tidak perlu menuliskan transaksi secara programatik.

Declarative transaction <bean id="moduleInventoryService" class="org.spring framework.transaction.interceptor. TransactionProxyFactoryBean"> <property name="target"ref="inventoryService"/> <property name="transactionManager ref"hibernateTransactionManager"/> <property name="transaction Attributes"> <props> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="save*"> PROPAGATION_REQUIRED </prop> <prop key="delete*"> PROPAGATION_REQUIRED</prop> </props> </property> </bean>

SessionFactory sessionFactory = new AnnotationConfiguration() SessionFactory sessionFactory = new AnnotationConfiguration().configure() .buildSessionFactory(); Cart cart = new Cart(); cart.setSatus ("active"); cart.setAmount(25000) Session session = sessionFactory.openSession(); Transaction tx = session.BeginTransaction(); session.save(cart); tx.commit(); session.close();

public class OrderCartDaoHibernate extends HibernateDaoSupport{ public void save(Cart cart) { getHibernateTemplate().saveOr Update(cart); }

Pembuatan skema basis data Dilakukan oleh Properti <prop key = "hibernate. hbm2ddl.auto"> create </prop>. pada saat sessionFactory dijalankan akan membuat semua tabel dan pada saat ditutup tabel yang dihasilkan tidak akan dihapus. Properti hiberntae.show_sql akan menampilkan SQL yang digunakan saat query menggunakan HQL

File properti basis data jdbc.username=root jdbc.password=admin jdbc.url=jdbc:mysql://localhost: 3306/erp jdbc.driver=com.mysql.jdbc.Driver hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect hibernate.show_sql=true hibernate.hbm2ddl.auto=create hibernate.format_sql=true

Penyatuan lapisan persistensi dan lapisan aplikasi JSF  controller Memanggil Service Dimasukan pada file faces-config.xml.

evaluasi Menganalis hasil implementasi. ORM tidak bergantung pada DBMS. Properti koneksi berada pada satu tempat. Mendukung fitur lazy-loading. Mengamati data yang sering dan jarang digunakan.

Kesimpulan dan saran

kesimpulan Mismatch yang muncul pada pengembangan Retail ERP terdiri dari 4 aspek: Granularity, Identity, Asosiasi, dan Navigasi data. ORM terbukti menghilangkan mismatch antara konsep pemrograman berorientasi objek dan basis data relasional. Design pattern membuat kode program menjadi rapi dan terstruktur. Pemanfaatan design pattern pada teknik decalarative transaction dan Inversion of Control memudahkan proses akses dan manipulasi data.

saran Melakukan unit testing dengan Junit dan DBUnit. Penerapan ORM pada WebService. Penerapan ORM pada framework yang berbeda (TopLink, OpenJPA, iBatis) atau pada platfrom yang berbeda (.Net) kemudian dibandingkan hasilnya.

Daftar pustaka

Daftar pustaka Alur D, Crupi J, Malks D. 2003. Core J2EE™ Patterns: Best Practices and Design Strategies, 2nd Edition. United States: Addison-Wesley. Bauer C, King G. 2007. Java Persistence with Hibernate. United States : Manning. Ernita, H. 2008. Pengembangan Enterprise Resource Planning Untuk Perusahaan Ritel. [Skripsi]. Bogor: Departemen Ilmu Komputer, Institut Pertanian Bogor. Gamma E, Helm R, Johnson R, Vlissides J. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. United States: Addison-Wesley.

Parr A. N. 2000. A Taxonomi of ERP Implementation Approach Parr A. N. 2000. A Taxonomi of ERP Implementation Approach. School of Business System, Monash University. Peak P, Heudecker N. 2006. Hibernate Quickly. United States: Manning. Rashid MA, et.al. 2002. The Evolution of ERP System: A Historical Perspective. USA: IRM Press Walls C, Breidenbach R. 2005. Spring in Action. United States: Manning.