• Tidak ada hasil yang ditemukan

IMPLEMENTASI DAN PEMBAHASAN SISTEM

N/A
N/A
Protected

Academic year: 2021

Membagikan "IMPLEMENTASI DAN PEMBAHASAN SISTEM"

Copied!
13
0
0

Teks penuh

(1)

25

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>

(2)

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 :

Method pada spring service, di implementasikan

pada kelas UserDetailServiceImpl seperti pada kode

berikut ini :

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.

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

@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();

(3)

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 :

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 :

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

...

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;

} ...

(4)

• @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 :

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 :

Aplikasi akan menjalankan file login.jsp,

selanjutnya user akan diberikan halaman login seperti pada gambar 4.1.

<welcome-file-list>

<welcome-file>login.jsp</welcome-file> </welcome-file-list>

murid.setId(idMurid.getValue().trim());

murid.setNama(nama.getValue());

(5)

Gambar 4.1

Untuk membuat fasilitas login, aplikasi

menggunakan

dintegrasikan dengan menggunakan

menggunakan spring security tersebut harus

menambahkan konfigurasi di web.xml agar dikenali oleh aplikasi, b

org.springframework.web.filter.DelegatingFilterPr

oxy adalah sebuah servlet filter yang membolehkan

spring security

dan meyakinkan aplikasi tersebut

<filter> <filter-org.springframework.web.filter.DelegatingFilterProxy </filter </filter> <filter-mapping <url-pattern </filter-mapping

Gambar 4.1 Halaman login

Untuk membuat fasilitas login, aplikasi

menggunakan Spring Security Framework

dintegrasikan dengan menggunakan zkoss

menggunakan spring security tersebut harus

menambahkan konfigurasi di web.xml agar dikenali oleh aplikasi, berikut kode yang ditambahkan :

org.springframework.web.filter.DelegatingFilterPr

adalah sebuah servlet filter yang membolehkan

spring security membungkus semua request

dan meyakinkan aplikasi tersebut aman dengan

-name>springSecurityFilterChain</filter-name -class>

org.springframework.web.filter.DelegatingFilterProxy filter-class>

mapping>

-name>springSecurityFilterChain</filter-name pattern>/*</url-pattern>

mapping>

Untuk membuat fasilitas login, aplikasi

Spring Security Framework yang

zkoss. Untuk

menggunakan spring security tersebut harus

menambahkan konfigurasi di web.xml agar dikenali

org.springframework.web.filter.DelegatingFilterPr

adalah sebuah servlet filter yang membolehkan

request aplikasi aman dengan

name> org.springframework.web.filter.DelegatingFilterProxy

(6)

sewajarnya. Berikut adalah potongan kode halaman login.

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.

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.

<form name="f" action="<c:url value='j_spring_security_check'/>"

method="POST">

<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>&nbsp;</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> </form>

(7)

Gambar 4.2 Halaman

Seperti yang dilihat pada gambar 4.2, menu select yang menggunakan

adalah untuk mengatur apa saja yang dapat dilakukan oleh pengguna ter

akses yang terdiri dari

delete).

Button

menambahkan menu baru yang telah dibuat disimpan di dalam

form untuk menambahkan menu baru dapat dilihat pada gambar 4.3 berikut ini :

Gambar

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

yang terdiri dari CRUD(Create,read, update, dan

Button “Rubah struktur menu” adalah untuk menambahkan menu baru yang telah dibuat

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

pengaturan kelompok pengguna Seperti yang dilihat pada gambar 4.2, menu

disebelah kanan adalah untuk mengatur apa saja yang dapat dilakukan adap menu yang akan diberikan

CRUD(Create,read, update, dan

adalah untuk menambahkan menu baru yang telah dibuat dan

database, form untuk menambahkan menu baru dapat dilihat

(8)

Setelah bisa membuat berikut ini :

Gambar

Pada form ini bisa memilih kelompok pengguna yang telah dibuat sebelumnya, dengan menggunakan

combobox

yang ada.

bisa dilihat pada gambar 4.5 berikut ini :

Gambar

Setelah kelompok pengguna dibuat, selanjutnya bisa membuat data pengguna seperti pada gambar 4.4 berikut ini :

Gambar 4.4 Halaman pendataan pengguna Pada form ini bisa memilih kelompok pengguna yang telah dibuat sebelumnya, dengan menggunakan 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 kelompok pengguna dibuat, selanjutnya

pengguna seperti pada gambar 4.4

pendataan pengguna Pada form ini bisa memilih kelompok pengguna yang telah dibuat sebelumnya, dengan menggunakan akan ditampilkan daftar kelompok pengguna Tampilan daftar pengguna yang telah dibuat

(9)

4.1.5. Halaman

Halaman data murid digunakan untuk

memasukan dan

tampilan untuk halaman data mur gambar 4.6

File murid.zul yang merupakan halaman input data murid menjalankan

serperti pada potongan berikut ini :

Ketika menekan tombol tambah murid, halaman ini memanggil

MuridAction.java, berikut potongan pemanggilan dari murid.zul ke MuridAction.java :

<

width

<toolbar

Halaman data murid

Halaman data murid digunakan untuk

memasukan dan menampilkan semua murid yang ada, tampilan untuk halaman data murid dapat dilihat pada

6 berikut ini :

Gambar 4.6 Input data murid

File murid.zul yang merupakan halaman input

data murid menjalankan controller MuridAction

pada potongan berikut ini :

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 :

<window border="none" id="window"

apply="sipus.action.master.MuridAction"

width="100%"

height="100%">

toolbar>

<toolbarbutton

tooltiptext="Tambah data" forward="onClick=onAdd"

label="Tambah Data" image="/img/new.gif"

</toolbarbutton>

Halaman data murid digunakan untuk

menampilkan semua murid yang ada, id dapat dilihat pada

Input data murid

File murid.zul yang merupakan halaman input MuridAction.java,

Ketika menekan tombol tambah murid, halaman

controller

MuridAction.java, berikut potongan pemanggilan dari

"sipus.action.master.MuridAction"

"onClick=onAdd" id="add"

(10)

Potongan kode

method onAdd

Setelah itu

dimasukan dapat dilihat pada gambar 4.8

Untuk menampilkan data seperti pada gambar 4.8 menggunakan

didalam kelas meng implement

zkoss. Berikut potongan kode program untuk menampilkan data

public

otongan kode MuridAction.java yang merupakan

onAdd :

Setelah itu tampilan data murid yang sudah an dapat dilihat pada gambar 4.8 :

Gambar 4.7 Tampilan data murid

Untuk menampilkan data seperti pada gambar

menggunakan kelas MuridRenderer yang ada

didalam kelas MuridAction, kelas MuridRenderer ini

meng implement RowRender yang ada pada framework

Berikut potongan kode program untuk menampilkan data :

void onAdd(Event event) throws Exception { init(new Murid());

addWindow.setVisible(true);

addWindow.onModal();

}

yang merupakan

tampilan data murid yang sudah

Tampilan data murid Untuk menampilkan data seperti pada gambar

ada , kelas MuridRenderer ini

(11)

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 :

Selanjutnya kelas BarcodeCommon bisa

digunakan pada kelas apapun, seperti pada potongan kode kelas MuridAction.java:

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

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

BarcodeCommon.generateBarcodeImage(murid.getKode(),"30","true").setParent(arg0); ....

(12)

4.1.6. Halaman Penilaian

Halaman ini digunakan untuk memasukan data penilaian, penilaian di masukan berdasarkan periode yang telah disediakan pada

mengambil data murid yang ada di tabel murid, aplikasi ini menggunakan

zkoss. Untuk halaman input penilai gambar 4.8

Gambar Agar bisa

aplikasi ini, buat kelas AmbilDataMuridBanbox.java, dalam kelas ini meng extend banbox yang ada pada framework zkoss

membuat kelas AmbilDataMuridBanbox.java :

public class AmbilDataMuridBanbox private static final

1138226537107417869L; private Grid grid;

private EventListener public AmbilDataMuridBanbox (){ super(); this.addEventListener(Events. @Override public void

Murid murid = (Murid) HibernateUtil. Halaman Penilaian

Halaman ini digunakan untuk memasukan data , 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

Untuk halaman input penilaian dapat dilihat pad 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 :

AmbilDataMuridBanbox extends Bandbox{

final long serialVersionUID = -

1138226537107417869L; ;

EventListener eventListener; AmbilDataMuridBanbox (){

.addEventListener(Events.ON_OK, newEventListener() {

void onEvent(Event arg0) throws Exception { Murid murid = (Murid) HibernateUtil.currentSession()

.createCriteria(Murid.class)

Halaman ini digunakan untuk memasukan data , penilaian di masukan berdasarkan periode , selain itu untuk mengambil data murid yang ada di tabel murid, aplikasi

framework

an dapat dilihat pada

seperti pada aplikasi ini, buat kelas AmbilDataMuridBanbox.java, dalam kelas ini meng extend banbox yang ada pada berikut potongan kode untuk

(13)

Kelas digunakan unt PenilaianAction.

menggunakan banbox

Selanjutnya data penilaian bisa ditampilkan seperti pada gambar 4.1

Gambar 4. private AmbilDataMuridBanbox row = new Row();

row.setStyle("border:0px;background: transparent;" row.setParent(rows); row.appendChild( row.appendChild( murid.setValue(penilaian.getMurid() == : penilaian.getMurid().getKode() + penilaian.getMurid().getNama()); murid.setWidth(

Kelas AmbilDataMuridBanbox. java

digunakan untuk kelas yang lain seperti pada controller PenilaianAction. java, berikut potongan kode untuk menggunakan banbox.

Selanjutnya data penilaian bisa ditampilkan pada gambar 4.10 berikut ini :

Gambar 4.9 Tampilan data penilaian AmbilDataMuridBanbox murid;

Row();

"border:0px;background: transparent;");

row.setParent(rows);

row.appendChild(new Label("Nama Murid"));

row.appendChild(murid = new AmbilDataMuridBanbox()); .setValue(penilaian.getMurid() == null ? ""

: penilaian.getMurid().getKode() + "-"+ penilaian.getMurid().getNama());

.setWidth("95%");

java dapat

uk kelas yang lain seperti pada controller de untuk

Gambar

Gambar 4.3 Halaman Tree men
Gambar 4.6 Input data murid
Gambar 4.7 Tampilan data murid
Gambar  Agar  bisa

Referensi

Dokumen terkait

Analisis secara deskriptif dilakukan pada preparat ulas darah dan hematokrit ikan patin siam (Pangasius hypopthalmus), dengan membandingkan preparat ulas darah dan hematokrit

Selama jangka waktu audit (Desember 2017, Januari 2018 dan Februari 2018) tidak terdapat kegiatan penerimaan bahan baku berupa kayu bulat (KB) atau kayu olahan,

Apabila pengguna memilih halaman Shop, maka modul Shop akan ditampilkan yang prosesnya dapat dilihat pada Gambar 3.10.. Apabila pengguna memilih Leaderboard, maka

Tedapat 3 gambar yang dideklarasikan yaitu; gambar untuk background yang disimpan dalam variable bertipe ITexture dengan nama game_background, gambar untuk tombol “OK” yang

Proses uji coba jadwal mata pelajaran adalah proses penyimpanan untuk data jadwal mata pelajaran, perubahan data untuk data mata pelajaran yang telah tersimpan

Balanced scorecard merupakan suatu sistem manajemen strategik atau lebih tepat dinamakan suatu “Strategic based responsibility accounting system” yang menjabarkan misi dan

Pembayaran tersebut dilakukan sesegera mungkin, paling lambat 7 (tujuh) Hari Bursa sejak Formulir Penjualan Kembali Unit Penyertaan dari Pemegang Unit Penyertaan yang telah

Dengan melakukan integrasi rantai nilai perusahaan dengan berbagai rantai nilai mitra bisnisnya, maka akan diperoleh berbagai manfaat yaitu Perusahaan tidak perlu menimbun bahan