Mekanisme Arsitektur Software Reuse
Dengan mengadopsi enterprise layer pada DDD, mekanisme arsitektur
software reuse pada penelitian ini dirancang seperti pada Gambar 11. Tiap lapisan pada enterprise layer dibuat dalam proyek terpisah. Setiap proyek akan menghasilkan aset (pustaka) yang dapat digunakan kembali pada pengembangan aplikasi web pada Direktorat Sumber Daya Manusia atau web aplikasi yang lain.
Pustaka Domain Pustaka Antarmuka Pustaka DAO
Pengembangan Aplikasi Web
Proyek Domain Proyek Presentasi Proyek DAO Presentasi Application Layer Domain Repository Implementasi Aset Utilitas Pustaka Utilitas Dokumentasi Source Code Management
Infrastructure Layer
Gambar 11 Mekanisme Arsitektur Software Reuse Teknologi dan Tools yang digunakan
Teknologi dan Tools yang digunakan dalam implementasi aset menggunakan Java EE (Enterprise Edition). Pemilihan Java terkait dukungan komunitas yang luas dan sampai saat ini masih merupakan teknologi yang tidak berbayar serta bersifat multi-platfom. Tools yang digunakan pada implementasi mekanisme arsitektur tersaji pada Tabel 4 dan Tabel 5.
Tabel 4 Teknologi dan tools java yang digunakan
Tools Produk Digunakan untuk
IDE Eclipse Java EE Pengembangan aset
Akses Data Hibernate Hibernate Tools ORM, Pemetaan Model Konseptual ke basis data Manajemen
Tabel 5 Lanjutan Teknologi dan Tools java yang digunakan
Tools Produk Digunakan untuk
Repository
Artifactory, Git-scm (GitBlit), Custom Web Tutorial
Kontrol terhadap public library, manajemen pustaka, penyimpanan kode sumber, dokumentasi kode program dan tutorial penggunaan
Front-end
framework Boostrap, Jquery Digunakan sebagai antarmuka
MVC Struts2, Freemarker User Design, Interface Application LayerComponent, Template
Model Konseptual Kepegawaian
Model konseptual kepegawaian merupakan diagram kelas hasil analisis permasalahan domain kepegawaian yang dikelompokan ke dalam sub-domain permasalahan. Model konseptual yang dilakukan pada penelitian terdiri dari:
Model Konseptual Pegawai
Model Konseptual Pegawai merupakan model konseptual yang berkaitan dengan informasi pegawai seperti: biodata, administratif kepegawaian terlihat pada Gambar 12. Pegawai di IPB terdiri dari: PNS (Dosen, dan Tendik), Pegawai Non-PNS (Dosen dan tendik), dan pegawai dengan kontrak kerja. Model konseptual pegawai dihasilkan dari sumber acuan pada Undang-Undang Republik Indonesia Nomor 5 Tahun 2014, existing data, Form Isian Pegawai Negeri dari BKN (Badan Kepegawaian Negara)
15 Gambar 12 Model Konseptual Pegawai
Model Konseptual Stuktur Organisasi IPB
Model konseptual struktur organisasi IPB merupakan model konseptual untuk masalah perubahan struktur organisasi yang terjadi setiap periode kepemimpinan. Stuktur organisasi di IPB sangat dinamis mengalami perubahan. Hampir setiap periode kepemimpinan struktur organisasi di IPB mengalami perubahan baik akibat regulasi dari pemerintah pusat maupun kebutuhan untuk mendukung visi dan misi IPB. Model konseptual struktur organisasi IPB yang dihasilkan tersaji pada Gambar 13.
Gambar 13 Model Konseptual Struktur Organisasi
Model Konseptual Gaji
Gaji merupakan hal yang paling diharapkan oleh semua pegawai, Gaji pegawai di IPB yang terdiri dari PNS pusat diatur dalam PP Tentang Gaji PNS yang dikelompokan berdasarkan golongan, masa kerja, dan status pegawai (Fungsional, Struktural), gaji Non-PNS diatur menggunakan SK (Surat Keputsan) Rektor, dan gaji pegawai kontrak yang diatur berdasarkan SK Perjanjian Kontrak. Model konseptual pada domain permasalahan gaji yang dihasilkan tersaji pada Gambar 14.
17
Model Konseptual Presensi dan Kinerja
Presensi merupakan aktivitas pencatatan kehadiran pegawai pada hari kerja setiap bulan yang dicatat pada waktu datang dan waktu pulang menggunakan mesin fingerprint, website dan daftar kehadiran manual yang diverifikasi oleh atasan langsung pegawai. Presensi digunakan sebagai salah satu komponen dalam menilai kinerja pegawai. Model konseptual yang dihasilkan tersaji pada Gambar 15.
Gambar 15 Model Konseptual Presensi dan Kinerja
Model Konseptual Penugasan
Penugasan merupakan aktivitas administratif penugasan pegawai mulai dari usulan sampai tahap SK (Surat Keterangan) penugasan dikeluarkan dalam melaksanakan aktifitas seperti: Tugas Belajar, Tugas kedinasan dan penugasan lainnya. Model konseptual yang dihasilkan tersaji pada Gambar 16.
Model Konseptual Agenda Pimpinan
Agenda pimpinan merupakan aktivitas dalam mencatat aktivitas yang berkaitan dengan jadwal pimpinan dan pejabat dilingkungan IPB dalam hal efektifitas untuk memonitoring jadwal pimpinan agar aktivitas pertemuan seperti rapat lebih efektif. Model konseptual agenda pimpinan tersasi pada Gambar 17.
Gambar 17 Model Konseptual Agenda Pimpinan
Model konseptual yang telah diutarkan diatas merupakan sebahagian dari model konseptual kepagawaian, sub-domain permasalahan lainnya dari kepegawaian belum dilakukan pada penelitian ini seperti: penelitian, karya ilmiah, daftar usulan penetapan angka kredit (DUPAK).
Implementasi
Proyek DAO (Data Access Object) dan Proyek Domain
DAO Pattern diimplementasikan menggunakan pustaka hibernate untuk menghasilkan pustaka DAO (aset akses data ke RDMBS) melalui proyek DAO. Proyek DAO terdiri dari kelas-kelas seperti terlihat pada Gambar 18 DAO pattern
merupakan kelas interface dan kelas abstrak dengan pattern yang mengadopsi
Abstract Factory dan Factory Method Pattern (Gamma et al. 1994). Aset pada DAO terdiri dari:
1. DAO interface (DAO) merupakan kelas yang mendefinisikan operasi standar yang akan dilakukan pada tiap model objek persistence
2. DAO Implementation (DAOImpl) merupakan kelas abstrak yang mengimplementasikan DAO interface. Kelas ini bertanggung jawab dalam menghubungkan ke mekanisme persistence dengan ValueObject sebagai parameter. Kelas ini bersifat generik sehingga dapat diwarisi oleh DAO yang lebih spesifik untuk menangani proses bisnis tertentu.
19
Gambar 18 Kelas DAO (Data Access Object)
Model konseptual pada domain permasalahan yang telah dibuat sebelumnya yang dibuat dalam bentuk POJO (Plain Old Java Object) yang akan digunakan Obyek yang dipetakan menjadi tabel ke dalam basis data. POJO yang dihasilkan terdiri dari kelas abstrak, kelas konkrit, kelas referensi dan kelas enumerasi. Kelas abstrak, kelas konkrit dan kelas referensi merupakan obyek pada model domain permasalahan yang memiliki file pemetaan ke table pada basisdata yang dipetakan dan digeneralisasi oleh hibernate menggunakan hibernate tools plugin yang tersedia pada Eclipse IDE menjadi NamaKelasModel.hbm.xml.
Kelas abstrak digunakan sebagai root pada model yang memiliki struktur hampir sama, sedangkan kelas konkrit merupakan model spesifik yang mewakili model konkrit yang mewarisi kelas abstrak agar dapat diinstansiasi sebagai
ValueObject pada DAO. Kelas referensi merupakan kelas yang digunakan sebagai atribut pada kelas abstrak maupun kelas konkrit.
Setiap sub-domain permasalahan kepegawaian dikelompokan kedalam
package. Setiap package terdiri dari kelas domain permasalahan yang saling berelasi menggunakan hibernate association mappings strategy1 layaknya relasi table pada basisdata. Relasi yang digunakan pada kelas abstrak terhadap kelas konkrit menggunakan hibernate inheritance strategy2. Pada model juga terdapat kelas view (TransferObject) yang tidak berasosiasi dengan model inti dibuat untuk membantu dalam merepresentasikan model dalam menampilkan data karena tidak semua atribut pada kelas model dibutuhkan.
Impelementasi proses bisnis pada setiap model domain permasalahan didefinisikan terpisah dengan membuat kelas interface dan kelas konkrit tersendiri yang mewarisi DAO seperti pada Gambar 19 dan diimpementasikan pada kelas PrefixDomainDAOImpl.
1 https://docs.jboss.org/hibernate/orm/3.5/reference/en/html/associations.html
Gambar 19 Proses Bisnis Pegawai
Pemanggilan PrefixDomainDAOImpl didefinisikan pada kelas manager dengan nama SubDomainFactory dengan menentukan sesi koneksi ke basistada yang digunakan seperti pada Lampiran 1. Dengan pola ini, perubahan-perubahan terhadap proses bisnis dapat ditambahkan ataupun tidak digunakan tanpa harus merubah struktur yang lain. Pola ini juga mempermudah akses ke basisdata karena untuk melakukan transaksi data dapat dilakukan dengan cara:
1. Instansiasi
PrefixDomainDAO dao = new SubDomainFactory.getPrefixDomainDAO(); List<KelasModel> listModel = dao.prosesBisnis(param1, param2); KelasModel kelasModel = dao.find(id);
dao.close();
2. Satu baris kode program
SubDomainFactory.getPrefixDomainDAO().prosesBisnis(param1, param2); SubDomainFactory.getPrefixDomainDAO().close();
Proyek dengan domain masalah lainnya dapat didefinisikan dengan penamaan domainpermasalahan-model menggunakan dependency terhadap proyek DAO kemudian dikompilasi menggunakan maven menjadi pustaka domainpermasalahan-model-versi.jar. Struktur hirarki dari pustaka domain dibuat seperti pada Tabel 6.
Tabel 6 Struktur Hirarki pustaka domain menggunakan maven
Proyek Depedency Hasil proyek
Dao Pustaka hibernate dao-versi.jar, Dokumentasi pegawai-model dao-versi.jar Pegawai-model-versi.jar,
Dokumentasi model domain pegawai
domainpermasala
han-model dao-versi.jar domainpermasalahan-model-versi.jar, Dokumentasi
Proyek Presentasi
Implementasi aset antarmuka (presentation) dilakukan seperti pada Gambar 20 dalam sebuah proyek presentasi. Diimplementasikan menggunakan konsep
21
template dan theme pada Struts MVC (Model View Controller) Component3. Desain antarmuka dibuat dalam bentuk template menggunakan pustaka antarmuka seperti bootstrap dan jquery yang menerima parameter melalui komponen antarmuka. Komponen antarmuka digunakan untuk mengatur dan mengolah parameter antarmuka kemudian di petakan pada sebuah Tag Library Descriptor
(TLD).
Ekstraksi Website yang
sudah ada Kostumisasi template
Front-end framework Komponen antarmuka menggunakan Komponen antarmuka Struts JSP Controller atribut Referensi Referensi
desain untuk desainDigunakan
Atribut desain mapping Akses data hasil TLD Tag, Parameter Mapping
Gambar 20 Implementasi Proyek Presentation
Proyek presentasi menghasilkan pustaka antarmuka dengan nama ui-version.jar. Untuk menggunakan pustaka setiap response yang ditampilkan dalam bentuk JSP (Java Servlet Pages) mendefinisikan baris kode yang merujuk ke TLD
(<%@taglib prefix="ipb" uri="/ipb-tags"%>). Dibawah ini tersaji aset presentasi yang paling umum digunakan dalam navigasi, masukan pengguna dan menampilkan informasi:
1. Aset presentasi menu, menu-group, menu-item dan menu-dropdown
Digunakan untuk menampilkan navigasi terhadap halaman website seperti pada Gambar
Gambar 21 Aset persentasi menu menu-group, menu-item dan menu-dropdown
3 https://struts.apache.org/maven/struts2-core/apidocs/org/apache/struts2/components/package-summary.html
2. Aset presentasi form, form-group, enum-selectbox, selectbox, textbox
Digunakan untuk masukan yang telah dikostumisasi sesuai kebutuhan seperti pada Gambar
Gambar 22 Aset persentasi elemen masukan pada form 3. Aset presentasi dialog, datepicker, datetimepicker
Digunakan untuk masukan tanggal dan jam seperti pada Gambar 23
Gambar 23 Aset presentasi dialog, datepicker, datetimepicker 4. Aset presentasi live-search, upload
Presentasi live-search digunakan untuk mekanisme pencarian data pada masukan teks, yang dapat dipilih. Presentasi upload digunakan untuk mengunggah berkas. Kedua presentasi ini terlihat pada Gambar 24
23
5. Aset presentasi grid-nav, grid, grid-page
Aset presentasi grid-nav, grid, grid-page digunakan untuk menampilkan data dalam bentuk baris data (grid) yang dapat dilakukan penggolahan menggunakan navigasi pada grid-nav, dan ditampilakan perjumlah data pada grid-page seperti terlihat pada Gambar 25.
Gambar 25 Aset presentasi presentasi grid-nav, grid, grid-page
Dalam implementasi aset presentasi ini telah dihasilkan 36 aset presentasi terlampir pada Lampiran 2 Aset presentasi dalam TLD. Aset presentasi ini dapat digunakan pada setiap proyek aplikasi web dengan menggunakan platform yang sama dengan yang digunakan pada penelitian ini.
Repository
Seluruh aktivitas dalam implementasi aset disimpan kedalam repository,
repository merupakan mesin server yang berfungsi untuk:
1. Melakukan kontrol terhadap versi pustaka yang digunakan dalam pengembangan aset reuse.
2. Manajemen Pustaka (library): file berbentuk .jar yang dihasilkan dari pengembangan aset sebagai pustaka (infrastructure layer) yang akan di gunakan pada tiap proyek pengembangan aplikasi.
3. Sebagai media penyimpanan pengetahuan pengembangan yang terdiri dari: a. Sumber kode program: sekumpulan file yang disimpan secara utuh dari
proyek aset reuse pada Git-scm (source code management)
b. Dokumentasi, file berbentuk HTML, merupakan hasil generasi kode sumber pada aset reuse
c. Sebagai penyedia laman tutorial penggunaan aset.
Mekanisme produksi dan distribusi aset pada repository terlihat seperti pada Gambar 26. Reuse Architect mendefinisikan aset reuse dan melakukan kompilasi yang menghasilkan pustaka ke local repository. Selain pustaka dokumentasi penggunaan serta fungsi pada tiap kode program (Application Programming Interface (API)) disimpan pada repository.
Pengembang web (web developer) menggunakan pustaka dan informasi penggunaan pada layanan pada server repository. Layanan repository yang dihasilkan pada penelitian ini dilampirkan pada Lampiran 3.
Public Maven Repository
Public Maven Repository
Local Repository Local Repository Web Developer Web Developer Reuse Architect Reuse Architect IDE depedency Java Doc Tools Maven Project create API/ Documentation Organization Library build generate Git-scm commit library version IDE Maven Web
App Project dependency create commit fetch fetch Web Server Web Server deploy
Gambar 26 Mekanisme produksi dan distribusi aset
Pengujian
Pengujian dilakukan untuk memastikan mekanisme arsitektur dapat digunakan. Pengujian dilakukan dengan cara membuat proyek aplikasi web menggunakan aset reuse yang telah dibuat pada implementasi. Pada penelitian ini dibuat dua aplikasi web yaitu.
Aplikasi web Sistem Informasi Manajemen Kepegawaian (SIMPEG)
Aplikasi web SIMPEG merupakan aplikasi yang mengelola data dan informasi pegawai seperti pada Gambar 27. Aplikasi web ini dapat diakses pada alamat http://172.17.0.121/simpeg/ menggunakan jaringan lokal di IPB. Aplikasi web SIMPEG ini masih merupakan prototipe yang penggunaan dan pengembangan lebih lanjut terkait kebijakan internal pengembangan sistem informasi di IPB.
25
Aplikasi Sistem Manajemen Agenda Pimpinan (SMAP)
Aplikasi web Sistem Manajemen Agenda Pimpinan (SMAP) merupakan aplikasi web yang mengelola agenda pimpinan dan pejabat di IPB. Aplikasi web SMAP juga menggunakan aset yang sama pada implementasi seperti yang digunakan pada aplikasi web SIMPEG. Aplikasi web ini bertujuan untuk memberikan informasi jadwal pimpinan agar lebih efisien dalam kegiatan seperti rapat dan pertemuan antar pimpinan dan pejabat. Aplikasi web ini dapat diakses pada alamat http://smap.ipb.ac.id menggunakan jaringan lokal di IPB seperti terlihat Gambar 28. Aplikasi web SMAP ini sudah digunakan sejak bulan Desember 2014.
Gambar 28 Aplikasi web SMAP