IMPLEMENTASI DAN PEMBAHASAN SISTEM

dokumen-dokumen yang mirip
Pembuatan RESTful Web Service Hello World dengan PHP & Java. Husni

Pemanggilan RESTful Web Service Java dari Client PHP

5.2 Keuntungan dan Kelemahan Cookie

Mudafiq R. Pratama

CRUD Hibernate Java. Oleh: Yudi Setiawan

Mudafiq R. Pratama

Score: 74.0 Persentage: % ~ u ~ Generated by Foxit PDF Creator Foxit Software For evaluation only.

CRUD Hibernate Java. Oleh: Yudi Setiawan

- Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta

SERVLET. 5.1 Membuat Program Servlet

KA2173 Pemrograman Berorientasi Objek. 10 BAB X PENGAKSESAN DATABASE. H a l 64

Bab 4 Hasil dan Pembahasan

1. Tujuan Mempersiapkan aplikasi JSF menggunakan Netbeans Membuat aplikasi Guest Book sederhana. 2. Latar Belakang JSF LifeCycle

Pengenalan JavaScript

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

BAB IV ANALISIS DAN PERANCANGAN SISTEM

Pemrograman Web Lanjut

PEMROGRAMAN PHP DASAR

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

Pengenalan Framework Jakarta Struts

Koneksi Sederhana Database dengan C# (Lihat, Tambah, dan Hapus Data)

Membuat Toko Online dengan Teknik OOP, MVC, dan AJAX

Pengenalan APLIKASI DATABASE

visit :

Kamus Perintah Hibernate Criteria Query MySQL

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

BAB V IMPLEMENTASI DAN PEMBAHASAN. Berikut ini adalah hardware dan software yang dibutuhkan untuk

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

Score : Persentase : % ~ u ~ Generated by Foxit PDF Creator Foxit Software For evaluation only.

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM

BAB II ANALISIS DAN PERANCANGAN. pendekatan perancangan sistem berorientasi objek. Perancangan sistem

LAPORAN RESMI PRAKTIKUM II WEB DESAIN PENGENALAN JAVASCRIPT

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

Java Database Connectivity (JDBC)

3.1 APLIKASI YANG DITANGANI OLEH CODE GENERATOR

TUTORIAL SEDERHANA, JAVA (Swing) dan MYSQL (SELECT dan INSERT)

Pengajar dapat melihat Jadwal Mengajar Pengajar tersebut selama mengajar di

Pemrograman Database Java

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

Petunjuk Pemakaian Sistem

Membuat Aplikasi Berbasis Web Di Device Android Mobile

DAO design pattern diimplementasi dengan beberapa langkah, yaitu :

Proses CRUD Dengan Hibernate Annotations Menggunakan Netbean 6.0

KA2173 Pemrograman Berorientasi Objek. 9 BAB IX PEMROGRAMAN GUI: SWING. H a l 56

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN

BAB 9 JSF. 9.1 Pengenalan JSF

1. Pendahuluan. 2. Tinjauan Pustaka

BAB IV HASIL DAN UJI COBA

BAB IV IMPLEMENTASI DAN PENGUJIAN

Bab 6. Membangun Aplikasi web CRUD. dengan Cimande

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

M.Octaviano Pratama

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Sistem Informasi Pengadaan ATK ( Alat Tulis Kantor )

BAB II ANALISIS DAN PERANCANGAN. Sistem informasi penjualan dan pembelian Tissue SMART NARENA

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB V IMPLEMENTASI DAN PENGUJIAN

Membuat JSP dan Servlet Sederhana

Praktikum 6a Melakukan koneksi dengan basis data

PROSEDUR MENJALANKAN APLIKASI

BERKENALAN DENGAN MODEL CODEIGNITER

BAB IV HASIL DAN PEMBAHASAN

BAB IV IMPLEMENTASI DAN EVALUASI

Sistem Informasi Persediaan Barang Jadi & Setengah Jadi

BAB IV IMPLEMENTASI DAN EVALUASI. Pada bab empat ini akan dibahas mengenai hasil analisis dan

Bab 4. Hasil dan Pembahasan

BAB IV HASIL DAN UJI COBA

1. Apa yang harus dilakukan oleh programmer untuk menangani user-defined exception? Menuliskan exception sebagai start method

Materi 2 E-Commerce Lanjut (CodeIgniter) 3 SKS Semester 7 S1 Sistem Informasi UNIKOM 2015 Nizar Rabbi Radliya

BAB IV HASIL DAN UJI COBA

BAB V IMPLEMENTASI DAN PEMBAHASAN

Aplikasi Tata Persuratan Berbasis Web Perum Jasa Tirta II. bertujuan untuk memenuhi kebutuhan di setiap Unit Kerja, sebuah

Bab 4 Pembahasan Dan Hasil Pengujian

- Menuliskan business logic dari aplikasi untuk mengakses data source

BAB IV ANALISIS DAN PERANCANGAN SISTEM

Didalam menampilkan peta yang sudah kita buat, kita akan menggunakan Slick2D sebagai sebuah frameworknya.

Tutorial Jasper Report with JDBC Prerequisites: Jasper Report, ireport installed, MySQL installed, and NetBeans IDE

BAB IV HASIL DAN UJI COBA

PEMROGRAMAN BERORIENTASI OBJEK

APLIKASI MENGELOLA DATA ACCESS LOG MENGGUNAKAN C# Melihat LOG berdasar Hari, Jam, dan URL Terbanyak diakses

Gambar 6.1 Tampilan Utama Website

PENGEMBANGAN APLIKASI GENERATOR MODUL PADA CMS UNTUK MEMPERMUDAH PENGEMBANGAN SISTEM BERBASIS WEB (studi kasus: CMS Lokomedia)

Contoh-contoh yang sudah diidentifikasi untuk desain ini antara lain:

LAPORAN PRAKTIKUM TEKNOLOGI FRAMEWORK PERTEMUAN KE 1

MANUAL PENGGUNAAN APLIKASI BERBASIS WEB SISTEM INFORMASI UNIT LAYANAN PENGADAAN (ULP) PEMERINTAH KOTA BANJARMASIN

BAB IV IMPLEMENTASI DAN EVALUASI. membantu untuk lebih memahami jalannya aplikasi ini. Sistem atau aplikasi dapat

Sistem Informasi Pendistribusian Penjualan Velg

BAB V IMPLEMENTASI DAN PEMBAHASAN. pembuatan aplikasi Sistem Informasi Adminstrasi Travel Berbasis Web Pada PT.

PENGEMBANGAN APLIKASI GENERATOR MODUL PADA CMS UNTUK MEMPERMUDAH PENGEMBANGAN SISTEM BERBASIS WEB (studi kasus: CMS Lokomedia)

A. ADMINISTRATOR. Form Login Admin

BAB IV HASIL DAN UJI COBA

Prosedur Menjalankan Program. Prosedur menjalankan program dijelaskan melalui tujuh bagian umum yaitu prosedur

TUGAS AKHIR PEMOGRAMAN VISUAL APLIKASI PETERNAKAN AYAM BERBASIS JAVA DI PETERNAKAN AYAM MANDIRI

Transkripsi:

BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM 4.1. Implementasi Sistem Implementasi sistem merupakan tahap dimana rancangan yang telah dibuat dapat diterapkan. Tujuannya untuk melakukan uji coba pada aplikasi dan sebagai sarana pengolahan data dan penyajian informasi yang akan digunakan dalam proses pengambilan keputusan. Maka selanjutnya yang akan dilakukan adalah pengimplementasian atau penerapan sistem. 4.1.1. Konfigurasi web.xml Spring MVC Web.xml merupakan deployment descriptor, yaitu dokumen xml standar untuk aplikasi Java EE yang didalamnya dideskripsikan isi dari.war yang akan dibangun. Web.xml adalah file pertama yang akan dijalankan, berikut potongan web.xml untuk aplikasi ini : <?xml version="1.0" encoding="utf-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="webapp_id" version="2.5"> <display-name>sipus</display-name> <context-param> <param-name>contextconfiglocation</param-name> <param-value> classpath:applicationcontext-business.xml /WEB-INF/applicationContext-security.xml </param-value> </context-param> <context-param> <param-name>log4jconfiglocation</param-name> <param-value>/web-inf/classes/log4j.properties</param-value> </context-param> 25

26 Selanjutnya bisa menggunakan spring untuk Injection of Control(IOC) seperti yang dijelaskan pada pengertian spring pada bab II, IOC adalah mekanisme memanggil sebuah objek tetapi tanpa inisialisasi, seperti pada kelas Tbuser, programmer hanya perlu membuat spring service seperti potongan kode berikut ini : public interface TbmuserDao extends GenericDao<Tbmuser, Long> { public Boolean login(tbmuser users); public Tbmuser loadbyusernameandpasswithnewsession(tbmuser users); public Boolean loginwithnewsession(tbmuser users); public Tbmuser loadbyusernameandpass(tbmuser users); public Boolean isexist(tbmuser users); Method pada spring service, di implementasikan pada kelas UserDetailServiceImpl seperti pada kode berikut ini : @Service("userDetailsService") public class UserDetailsServiceImpl implements UserDetailsService { @Transactional(readOnly = true) public UserDetails loaduserbyusername(string username) throws UsernameNotFoundException, DataAccessException { Session session = HibernateUtil.getSessionFactory().openSession(); Tbmuser users = (Tbmuser) session.createcriteria(tbmuser.class).add(restrictions.eq("userid", username)).setmaxresults(1).uniqueresult(); System.out.println("username = " + username + " users = " + users); session.disconnect(); session.close(); Transaction management dengan menggunakan spring service berbeda dengan service yang dibuat menggunakan JDBC, Spring service tidak perlu mengelola transaksi secara manual dengan memulai transaksi seperti commit dan rollback.

27 Transaction management pada spring service dilakukan dengan transparan, artinya programmer tidak perlu tahu detail spring service menangani transaksi, programmer hanya perlu tahu bahwa method pada spring service ditandai dengan @Service untuk menandai kelas ini adalah spring service dan @Transactional akan memulai transaksi ketika masuk ke method. 4.1.2. Konfigurasi Hibernate framework Untuk menggunakan hibernate pada program pertama-tama lakukan konfigurasi seperti pada potongan kode berikut : <property name="hibernate.connection.driver_class">org.postgresql.driver</property> <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/sipus</property> <property name="hibernate.connection.username">postgres</property> <property name="hibernate.connection.password">root123</property> <property name="hibernate.dialect">org.hibernate.dialect.postgresqldialect</property> Ini adalah konfigurasi driver connection yang menggunakan portgresql, konfigurasi letak dari basisdata, dialect sql yang menggunakan postgres serta konfigurasi username dan password basidata. Selanjutnya buat kelas yang memetakan tabel yang ada pada basis data, seperti pada kelas murid.java yang merupakan pemetaan dari tabel murid. Berikut potongan kode program untuk kelas murid.java :... private Long idmurid; private String nama; @Id @GeneratedValue(strategy = IDENTITY) @Column(name = "idmurid", insertable = false, unique = true, nullable = false) public Long getidmurid() { return idmurid; public void setid(long idmurid) { this.idmurid = idmurid; @Column(name = "nama", nullable = false, length = 255) public String getnama() { return nama; public void setnama(string nama) { this.nama = nama;...

28 @id adalah untuk menentukan kunci utama dari tabel @Column adalah untuk memberikan nama dan konfigurasi lain pada tabel. @ManyToOne dan @JoinColumn adalah untuk menentukan hubungan antar tabel. Kelebihan dari menggunakan hibernate framework seperti ini adalah lebih mudah untuk melakukan CRUD(Create, READ, Update, DELETE) karena bisa tidak menggunakan bahasa SQL. Untuk menyimpan data cukup dengan menggunakan method setter seperti potongan kode berikut ini : murid.setid(idmurid.getvalue().trim()); murid.setnama(nama.getvalue()); murid.setjeniskelamin((string) jeniskelamin.getselecteditem().getvalue()); 4.1.3. Halaman login Setelah aplikasi di jalankan dari web server, aplikasi akan mengecek file konfigurasi pada web.xml yang ada di folder web/web-inf/web.xml, didalam file tersebut ada konfigurasi yang menjelaskan file apa yang pertama dijalankan, berikut potongan konfigurasinya : <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> Aplikasi akan menjalankan file login.jsp, selanjutnya user akan diberikan halaman login seperti pada gambar 4.1.

29 Gambar 4.1 Halaman login Untuk membuat fasilitas login, aplikasi menggunakan Spring Security Framework yang dintegrasikan dengan menggunakan zkoss. Untuk menggunakan spring security tersebut harus menambahkan konfigurasi di web.xml agar dikenali oleh aplikasi, berikut kode yang ditambahkan : <filter> <filter-name>springsecurityfilterchain</filter-name> <filter-classorg.springframework.web.filter.delegatingfilterproxy </filter-class> </filter> <filter-mapping> <filter-name>springsecurityfilterchain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> org.springframework.web.filter.delegatingfilterpr oxy adalah sebuah servlet filter yang membolehkan spring security membungkus semua request aplikasi dan meyakinkan aplikasi tersebut aman dengan

30 sewajarnya. Berikut adalah potongan kode halaman login. <form name="f" action="<c:url value='j_spring_security_check'/>" method="post"> </form> Aksi dari form akan mengarahkan pada URL j_spring_security_check. URL ini merupakan URL standard dari spring security framework untuk menangani validasi benar tidaknya user dan password user. <p> <label>username</label> <input type='text' class="textinput" name='j_username' value='<c:if test="${not empty param.login_error"> <c:out value="${spring_security_last_username"/></c:if>' /> </p> <p> <label>password</label> <input type='password' class="textinput" name='j_password'> </p> <p> <label> </label> <input type="checkbox" class="checkbox" name="_spring_security_remember_me">biarkan Saya Tetap Masuk </p> <p><input type="submit" value="login" class="btnlogin"></p> 4.1.4. Pengaturan hak akses Untuk membuat dan mengatur hak akses dilakukan oleh administrator melalui form jenis pengguna dan form pengguna. Form jenis pengguna adalah untuk membuat kelompok pengguna seperti pada gambar 4.2.

31 Gambar 4.2 Halaman pengaturan kelompok pengguna Seperti yang dilihat pada gambar 4.2, menu select yang menggunakan checkbox disebelah kanan adalah untuk mengatur apa saja yang dapat dilakukan oleh pengguna terhadap menu yang akan diberikan akses yang terdiri dari CRUD(Create,read, update, dan delete). Button Rubah struktur menu adalah untuk menambahkan menu baru yang telah dibuat dan disimpan di dalam tabel menu yang ada di database, form untuk menambahkan menu baru dapat dilihat pada gambar 4.3 berikut ini : Gambar 4.3 Halaman Tree men

32 Setelah kelompok pengguna dibuat, selanjutnya bisa membuat data pengguna seperti pada gambar 4.4 berikut ini : Gambar 4.4 Halaman pendataan pengguna Padaa form ini bisa memilih kelompok pengguna yang telah dibuat sebelumnya, dengan menggunakan combobox akan ditampilkan daftar kelompok pengguna yang ada. Tampilan daftar pengguna yang telah dibuat bisa dilihat pada gambar 4.5 berikut ini : Gambar 4.5 Halaman tampilan daftar pengguna

33 4.1.5. Halaman data murid Halaman data murid digunakan untuk memasukan dan menampilkan semua murid yang ada, tampilan untuk halaman data murid dapat dilihat pada gambar 4.6 berikut ini : Gambar 4.6 Input data murid File murid.zul yang merupakan halaman input data murid menjalankan controller MuridAction.java, serperti pada potongan berikut ini : <window border="none" id="window" apply="sipus.action.master.muridaction" width="100%" height="100%"> Ketika menekan tombol tambah murid, halaman ini memanggil method onadd yang ada pada controller MuridAction.java, berikut potongan pemanggilan dari murid.zul ke MuridAction.java : <toolbar> <toolbarbutton tooltiptext="tambah data" forward="onclick=onadd" id="add" label="tambah Data" image="/img/new.gif"> </toolbarbutton>

34 Potongan kode MuridAction.java yang merupakan method onadd : public void onadd(event event) throws Exception { init(new Murid()); addwindow.setvisible(true); addwindow.onmodal(); Setelah itu tampilan data murid yang sudah dimasukan dapat dilihat pada gambar 4.8 : Gambar 4.7 Tampilan data murid Untuk menampilkan data seperti pada gambar 4.8 menggunakan kelas MuridRenderer yang ada didalam kelas MuridAction, kelas MuridRenderer ini meng implement RowRender yang ada pada framework zkoss. Berikut potongan kode program untuk menampilkan data :

35 class MuridRenderer implements RowRenderer { @Override public void render(final Row arg0, Object arg1) throws Exception { final Murid murid = (Murid) arg1; BarcodeCommon.generateBarcodeImage(murid.getKode(),"30","true").setParent(arg0); RevisiHelper.createNewRevisi(Murid.class,murid,murid.getNama()).setParent(arg0); new Label(murid.getTanggalMasuk() == null? "" : Common.dateFormat3.format(murid.getTanggalMasuk())).setParent(arg0); String alamat = (murid.getalamat() + " "+ (murid.getkelurahan() == null? "" : murid.getkelurahan().getnama()) + " RT " + murid.getrt() + " RW " + murid.getrw() + " " + (murid.getkecamatan() == null? "" : murid.getkecamatan().getnama()) + " " + (murid.getkota() == null? "" : murid.getkota().getnama()) + " " + (murid.getpropinsi() == null? "" : murid.getpropinsi().getnama())); new Label(alamat).setParent(arg0); new Label(murid.getKelas().getNama()).setParent(arg0); Untuk mencetak barcode yang ada pada data murid, digunakan kelas BarcodeCommon.java yang ada pada package sipus.common, berikut adalah potongan kode untuk membuat gambar barcode : public static Image generatebarcodeimage(string code, String sizey, String showtext){ Image barcode = new Image(); try { AImage aimage = new AImage("barcode", BarcodeCommon.generateBarcode(code, sizey, showtext)); barcode.setcontent(aimage); catch (WrongValueException e) { e.printstacktrace(); catch (IOException e) { e.printstacktrace(); return barcode; Selanjutnya kelas BarcodeCommon bisa digunakan pada kelas apapun, seperti pada potongan kode kelas MuridAction.java:... BarcodeCommon.generateBarcodeImage(murid.getKode(),"30","true").setParent(arg0);...

36 4.1.6. Halaman Penilaian Halaman ini digunakan untuk memasukan data penilaian, penilaian di masukan berdasarkan periode yang telah disediakan pada combobox, selain itu untuk mengambil data murid yang ada di tabel murid, aplikasi ini menggunakan banbox yang tersedia di framework zkoss. Untuk halaman input penilaian dapat dilihat pada gambar 4.8 berikut ini : Gambar 4.8 Input data nilai Agar bisa menggunakan banbox seperti pada aplikasi ini, buat kelas AmbilDataMuridBanbox.java, dalam kelas ini meng extend banbox yang ada pada framework zkoss, berikut potongan kode untuk membuat kelas AmbilDataMuridBanbox.java : public class AmbilDataMuridBanbox extends Bandbox{ private static final long serialversionuid = - 1138226537107417869L; private Grid grid; private EventListener eventlistener; public AmbilDataMuridBanbox (){ super(); this.addeventlistener(events.on_ok, neweventlistener() {... @Override public void onevent(event arg0) throws Exception { Murid murid = (Murid) HibernateUtil.currentSession().createCriteria(Murid.class).add(Restrictions.ilike("kode",AmbilDataMuridBanbox.this.getValue().trim(),MatchMode.EXACT)).setMaxResults(1).uniqueResult();

37 Kelas AmbilDataMuridBanbox. java dapat digunakan untuk kelas yang lain seperti pada controller PenilaianAction. java, berikut potongan kode untuk menggunakan banbox. private AmbilDataMuridBanbox murid; row = new Row() ); row.setstyle("border:0px;background: transparent;"); row.setparent(rows); row.appendchild(new Label("Nama Murid")); row.appendchild(murid = new AmbilDataMuridBanbox()); murid.setvalue( (penilaian.getmurid() == null? "" : penilaian.getmurid().getkode() + "-"+ penilaian..getmurid().getnama()); murid.setwidth( ("95%"); Selanjutnya data penilaian bisa ditampilkan seperti pada gambar 4.10 berikut ini : Gambar 4.9 Tampilan data penilaian