Perancangan Tabel Relasional Routing

4.3.6. Perancangan User Interface

1. Halaman login

Gambar. 4.52. Perancangan Halaman Login

2. Halaman Utama Admin

Gambar. 4.53. Perancangan Halaman Homepage Admin

3. Halaman Utama Manajemen User

Gambar. 4.54. Perancangan Halaman Manajemen User

4. Halaman Manajemen Bagian

Gambar. 4.55. Perancangan halaman manajemen bagian

5. Halaman Manajemen Jabatan

Gambar. 4.56. Perancangan halaman manajemen jabatan

6. Halaman Manajemen Root Jabatan

Gambar. 4.57. Perancangan Halaman Root Jabatan

7. Halaman Tambah User

Gambar. 4.58. Perancangan halaman tambah user

8. Halaman Ubah User

Gambar. 4.59. Perancangan halaman ubah user

9. Halaman Tambah dan Edit Bagian

Gambar. 4.60. Perancangan halaman tambah dan edit bagian

10. Halaman Tambah dan Edit Jabatan

Gambar. 4.61. Perancangan halaman Tambah dan edit jabatan

11. Halaman Tambah Root Jabatan

Gambar. 4.62. Perancangan halaman tambah root jabatan

12. Halaman Edit Root Jabatan

Gambar. 4.63. Perancangan halaman edit root jabatan

13. Halaman Utama List Data Surat Eksternal, Internal, dan Keluar

Gambar. 4.64. Perancangan halaman utama list data surat eksternal, internal dan keluar

14. Halaman Tambah Surat Eksternal

Gambar. 4.65. Perancangan halaman tambah surat eksternal

15. Halaman Ubah Surat Eksternal

Gambar. 4.66. Perancangan halaman ubah surat eksternal

16. Halaman Tambah Surat Internal

Gambar. 4.67. Perancangan halaman tambah surat internal

17. Halaman Ubah Surat Internal

Gambar. 4.68. Perancangan Halaman ubah surat internal

18. Halaman Tambah dan Ubah Surat Keluar

Gambar. 4.69. Perancangan halaman tambah dan ubah surat keluar

19. Halaman Utama Menu Disposisi

Gambar. 4.70. Perancangan halaman utama menu disposisi

20. Halaman Utama Menu Histori

Gambar. 4.71. Perancangan halaman utama menu histori

21. Halaman Utama Menu Laporan

Gambar. 4.72. Perancangan halaman utaman menu laporan

22. Halaman Utama Homepage Pada User

Gambar. 4.73. Perancangan halaman utama homepage user

23. Halaman Profil

Gambar. 4.74. Perancangan halaman profil

24. Halaman Ubah profil

Gambar. 4.75. Perancangan halaman ubah profil

25. Halaman Ubah Password

Gambar. 4.76. Perancangan halaman ubah password

26. Halaman Menu Notifikasi Surat Eksternal dan Internal

Gambar. 4.76. Perancangan halaman menu notifikasi surat eksternal dan internal

27. Halaman Inbox Notifikasi Surat Eksternal dan Internal

Gambar. 4.78. Perancangan halaman inbox notifikasi surat eksternal dan internal

28. Halaman Disposisi Notifikasi Surat Eksternal dan Internal

Gambar. 4.79. Perancangan halaman disposisi notifikasi surat eksternal dan internal

4.4. Implementasi

Pada tahap ini dilaksanakan implementasi dari rancangan-rancangan, baik rancangan basis data, rancangan aplikasi, maupun rancangan tampilan.

4.4.1. Bahasa Pemrograman dan Komponen

Bahasa pemrograman dan komponen-komponen yang digunakan dalam pengembangan sistem ini adalah: 1. Application server : Apache 2.2.17 2. PHP version 5.3.5 3. MySql version 5.5.8 4. Framework: Codeigniter 2.0.2

4.4.2. Struktur File

Karena aplikasi ini merupakan penerapan dari Codeigniter framework, maka dalam penyusunan struktur file juga harus mengikuti standar baku yang dimiliki codeigniter framework itu sendiri. Tabel. 4.28. Struktur file Struktur file Keterangan manajemen_suratapplicationconfig Konfigurasi aplikasi, server, dan database manajemen_suratapplicationcontrollers Source code logika control aplikasi manajemen_suratapplicationmodels Source code fungsi-sungsi pengelolaan struktur data manajemen_suratapplicationviews Source code tampilan manajemen_suratapplicationlibraries Source code library tambahan

4.4.3. Alur Kerja CodeIgniter Framework

Secara umum alur kerja framework Codeigniter adalah sebagai berikut: Gambar. 4.80. Alur kerja framework Codeigniter Index.php merupakan front controller atau file yang berhubungan langsung dengan user. Saat user membuka index.php dan melakuka request, maka akan dicek melalui router alamat yang dimasukkan oleh user tersebut. Bila ada paca cache data, maka akan langsung menuju ke Caching dan kembali lagi ke user. Bila pada cache tidak ada makan akan diteruskan ke security untuk menvalidasi, menyaring, dan mengamankan informasi yang dimasukkan user bila ada. Lalu dari security informasi tersebut dikirim ke application controller . Di application controller, informasi dan data akan diolah. Bila diperlukan, application controller akan berhubungan dengan models, libraries, helpers, plugins, atau skrip lainnya. Application controller akan mengirimkan respon ke view untuk ditampilkan ke user. View akan disimpan di cache bila berikutnya melakuka request yang sama. Sehingga mempercepat proses. Setelah di cache, maka akan ditampilkan informs kepada user. Dalam implementasinya pada sistem informasi manajemen surat dan pengarsipan dapat diuraikan sebagai berikut:

a. Routing

Ketika pertama kali mengakses aplikasi melalui web browser, maka halaman yang pertama dipanggil adalah halaman index.php pada folder aplikasi. Setelah itu file index.php melakukan routing ke controller yang telah di config oleh programmer pada file manajemen_suratapplicationconfig routes.php dimana isinya adalah sebagai berikut: ?php if definedBASEPATH exitNo direct script access allowed; route[default_controller] = login; Dari code di atas, maka sistem akan menjalankan controller login.php yang bersisi sebagai berikut: ?php if definedBASEPATH exitNo direct script access allowed; class Login extends CI_Controller { public function index { cssHeader = link rel=stylesheet href=.base_url.csslogin.css; cssHeader .= link rel=stylesheet href=.base_url.csslogin.css; data[cssHeader] = cssHeader; this-load-modelmodel_user; data[resultDir] = this-model_user- get_bagian; data[resultJab] = this-model_user- get_jabatan; this-load-viewloginindex,data; } public function cek { this-load-modelmodel_login; this-model_login-cek_login; } } ? Dari code controller login.php pada baris terakhir dari function index, sistem memanggil file manajemen_suratapplicationviewsloginindex.php yang berisi sebagai berikut: DOCTYPE html PUBLIC -W3CDTD XHTML 1.0 TransitionalEN http:www.w3.orgTRxhtml1DTDxhtml1- transitional.dtd html xmlns=http:www.w3.org1999xhtml head meta http-equiv=Content-Type content=texthtml; charset=utf-8 titleManajemen Surat PT xyztitle link rel=stylesheet href=?php echo base_url;?csslogin.css script var animasi1 = Sistem Informasi Manajemen Surat; var animasi2 = PT XYZ ; var delay = 500; b1; function b2 { ID = setTimeoutb1,delay; document.title = animasi1; } function b1 { ID = setTimeoutb2,delay; document.title = animasi2; } script head body div id=login_box form action=?php echo site_urllogincek;? name=frmLogin method=post table width=350 border=0 tr td colspan=3 id=iconh1Login Aplikasih1td tr tr td width=122labelUsernamelabeltd td width=14:td td width=250input type=text name=username id=username td tr tr tdlabelPasswordlabeltd td:td tdinput type=password name=password id=password td tr tr tdlabelJabatanlabeltd td:td td ?php echo this-fungsi- create_comboboxXjabatan,resultJab,i d_jabatan,nama_jabatan,,,;? td tr tr td colspan=3nbsp;td tr tr td colspan=3 align=center input type=submit value=login id=tombol nbsp;nbsp;nbsp; input type=reset value=cancel id=tombol td tr table div align=centerfont color=FF0000 size=+1?php echo this-session- flashdataerrorLogin;?fontdiv form div body html Jadi secara singkat proses routing framework codeigniter yaitu ketika user mengakses aplikas pada web browser, maka sistem akan memanggil controller yang telah di set pada file config routes. Setelah itu controller memanggil file view, jadi halaman yang tampil paa web browser adalah file view yang ditentukan controller.

b. Sistem Informasi Data

Dalam sebuah sistem informasi tentunya ada proses create, update, delete, dan view data. Pada penerapannya dengan framework codeigniter keempat proses tersebut tidak berbeda jauh karena sama-sama melibatkan controller sebagai logika sistem, model sebagai query database dan view sebagai tampilan, sehingga penulis hanya akan menjelaskan proses view data dan sebagai contoh pada saat view data user dengan aktornya adalah admin. Saat akan melakukan view data, maka admin diharuskan login terlebih dahulu. Setelah login, admin memilih menu user management, kemudian mengklik menu user. Pada menu view data user, web browser mendapatkan link “…manajemen_suratindex.phpuserget_user”, dari link tersebut dapat dijelaskan bahwa sistem akan menuju “function get_user” yang berada dalam file controller “admin” sebagai berikut: ?php class User extends CI_Controller { public function get_user { kategori=this-input-postkategori;echo kategori; cari=this-input-postcari; ifkategori== and cari=={ this-db-selecta.id_user,a.username, a.nik,a.password, a.nama_user, b.nama_bagian, a.last_login,a.authority; this-db-frommst_user a,mst_bagian b; this-db-wherea.id_bagian =b.id_bagian; this-db-order_bya.id_user,DESC; }elseifkategori= and cari={ this-db-selecta.id_user,a.username, a.nik,a.password, a.nama_user, b.nama_bagian, a.last_login,a.authority; this-db-frommst_user a,mst_bagian b; this-db-wherea.id_bagian =b.id_bagian; this-db-likekategori,cari; this-db-order_bya.id_user,DESC; }elseifkategori==semua and cari=={ this-db-selecta.id_user,a.username, a.nik,a.password, a.nama_user, b.nama_bagian, a.last_login,a.authority; this-db-frommst_user a,mst_bagian b; this-db-wherea.id_bagian =b.id_bagian; this-db-order_bya.id_user,DESC; } getData = this-db-get; a = getData-num_rows;echo a; config[base_url]=base_url.index.phpuserget _user; set the base url for pagination config[total_rows] = a; total rows config[per_page] = 10; the number of per page for pagination config[uri_segment] = 3; see from base_url. 3 for this case config[full_tag_open] = p; config[full_tag_close] = p; this-pagination-initializeconfig; initialize pagination data[title] = menampilkan isi user; data[list_user] = this-model_user- get_allconfig[per_page],this-uri- segment3,kategori,cari; this-load-viewheader,data; this-load-viewuserindex, data,a; this-load-viewfooter; } Pada baris “data[list_user] = this-model_user- get_allconfig[per_page],this-uri-segment3, kategori,cari; ”, fungsi get_user pada controller user ini akan memanggil fungsi get_all pada file model_user.php yang terletak di manajemen_userapplicationmodels… yang isinya sebagai berikut: ?php class Model_user extends CI_Model { public function get_allperPage,uri,kategori, cari { ifkategori== and cari=={ this-db-selecta.id_user,a.username,a.nik, a.password, a.nama_user, b.nama_bagian, a.last_login,a.authority; this-db-frommst_user a,mst_bagian b; this-db-wherea.id_bagian = b.id_bagian; this-db-order_bya.id_user,DESC; getData = this-db-get, perPage, uri; ifgetData-num_rows 0 return getData-result_array; else return null; }elseifkategori= and cari={ this-db-selecta.id_user,a.username,a.nik, a.password, a.nama_user, b.nama_bagian, a.last_login,a.authority; this-db-frommst_user a,mst_bagian b; this-db-wherea.id_bagian = b.id_bagian; this-db-likea..kategori,cari; this-db-order_bya.id_user,DESC; getData = this-db-get, perPage, uri; ifgetData-num_rows 0 return getData-result_array; else return null; }elseifkategori==semua{ this-db-selecta.id_user,a.username,a.nik, a.password, a.nama_user, b.nama_bagian, a.last_login,a.authority; this-db-frommst_user a,mst_bagian b; this-db-wherea.id_bagian = b.id_bagian; this-db-order_bya.id_user,DESC; getData = this-db-get, perPage, uri; ifgetData-num_rows 0 return getData-result_array; else return null; } } Pada baris code diatas terdapat tiga query dalam sql yang dapat dilakukan yaitu ketika parameter kategori dan cari kosong, maka akan menjalankan query “SELECT a.id_user, a.username, a.nik, a.password, a.nama_user, b.nama_bagian, a.last_login, a.authority FROM mst_user a, mst_bagian b WHERE a.id_bagian = b.id_bagian ORDER BY a.id_user DESC”, kemudian jika parameter kategori dan cari tidak kosong, maka akan menjalankan query “SELECT a.id_user, a.username, a.nik, a.password, a.nama_user, b.nama_bagian, a.last_login, a.authority FROM mst_user a, mst_bagian b WHERE a.id_bagian = b.id_bagian LIKE a. kategori, cari ORDER BY a.id_user DESC”, dan ketika parameter kategori berisi ‘semua’, maka ajan menjalankan query “SELECT a.id_user, a.username, a.nik, a.password, a.nama_user, b.nama_bagian, a.last_login, a.authority FROM mst_user a, mst_bagian b WHERE a.id_bagian = b.id_bagian ORDER BY a.id_user DESC”. Kembali lagi pada fungsi get_user pada controller user, setelah memanggil query database dilanjutkan memanggil file view pada baris “this-load-viewuserindex, data,a;”. Baris tersebut memanggil file index.php pada folder “manajemen_userapplication viewuser” yang nantinya akan ditampilkan di web browser yang berisi sebagai berikut: div id=main-content br div class=product-main div class=judul align=center style= width:780px;h2MANAGE USERh2div table form method=post name=frmCari id=frmCari onsubmit=return val_cari; action=?php echo site_urluserget_user; ? bcari :b select name=kategori id=kategori onchange=enabledisabletext; option value=kosong:: pilih ::option option value=semuasemuaoption option value=niknikoption option value=nama_usernama user option option value=jenis_kelaminjenis kelamin option select input type=text name=cari id=cari size=15 input type=submit value=cari form tablenbsp; form name=frmCetakALLUser id=frmCetakALLUser method=post action=?php echo site_urlusercetak_ALLuser; ? input type=submit value=cetak ALL ke ms.excel form br form name=frmCetakUser id=frmCetakUser method=post action=?php echo site_urlusercetak_user; ? table width=108 border=0 style=border:solid 1px; tr th width=4Noth th width=4NIKth th width=11Usernameth th width=14Nama Userth th width=18Nama Bagianth th width=24Last Aktifitasth th colspan=3 align=center style= padding-left:50px; valign=middle ?php ifauthority==1{ ? a href=?php echo base_url;?index.php userindexaddimg src=?php echo base_url;?images2.png border=0a ?php } ? td tr ?php banyakData=countlist_user; ifbanyakData 0{ no=1; foreachlist_user as us{ ifno2==0{ bcg=CCC; }else{ bcg=FFF; } ? tr bgcolor=?php echo bcg;? td?php echo no;?td td?php echo us[nik];?td td?php echo us[username];?td td?php echo us[nama_user];?td td?php echo us[nama_bagian];?td td?php echo us[last_login];?td input type=hidden name=id[] id=id value=?php echo us[id_user];? td width=6 ?php ifauthority==1{ ? a href=?php echo base_url;?index.php userindexedit?php echo us[id_user];?img src=?php echo base_url;?images12.png border=0a ?php } ? td td width=13 ?php ifauthority==1{ ifus[authority]==1{ ? a href= onclick=return confirmdata ini tidak boleh di hapusimg src=?php echo base_url;?images8.png border=0a ?php }else{ ? a href=?php echo base_url;?index.php userdelete?php echo us[id_user];? onclick=return confirmanda yakin akan menghapus data ini?img src=?php echo base_url;?images8.png border=0a ?php } } ? td td width=6 ?php authority= this-session- userdataauthority; ifauthority==1 || authority==0{ ? ?php atts = array width = 320, height = 350, scrollbars = yes, status = yes, resizable = yes, screenx = 400, screeny = 250 ; Echo anchor_popupuserdetail.us [id_user]., detail user, atts;? td ?php } ? tr ?php no++; } }else{ ? tr td colspan=8 style=padding-left:150px; color:F00strongtidak ada data usertd tr ?php } ?