Penerapan CI (codeigniter) dalam pengembangan sistem informasi manajemen surat dan pengarsipan (studi kasus: PT. Semen Padang)

(1)

Skripsi

Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer

Fakultas Sains dan Teknologi

Universitas Islam Negeri Syarif Hidayatullah Jakarta

Oleh : Radenal Andika

106091002886

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA


(2)

(3)

(4)

iv

SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU LEMBAGA MANAPUN

Jakarta, November 2011

Radenal Andika 106091002886


(5)

v Suseno, M.Kom.

Salah satu alat komunikasi tertulis dalam perkantoran adalah surat. Seiring waktu, jumlah surat yang ada dalam sebuah perusahaan makin banyak, sehingga timbul permasalahan dalam mengelolanya baik itu ketika pencatatan surat maupun proses disposisi, serta pencarian arsip surat. Pada kantor PT Semen Padang, surat-surat yang ada masih disimpan dalam file-file yang masih bersifat manual, sehingga memungkinkan surat tersebut tercecer, dan memerlukan waktu yang lama dalam pencarian dan pemrosesannya. Dengan memanfaatkan teknologi komputer, penulis mencoba merancang dan membangun suatu sistem manajemen surat dan pengarsipan untuk mengatasi permasalahan-permasalahan tersebut di atas. Dunia pemograman saat ini, baik itu desktop maupun web based, semakin marak pengerjaannya dengan menggunakan framework dan salah satu framework berbasis PHP yang banyak digunakan yaitu Codeigniter (CI). Framework CI memang dikembangkan untuk memudahkan dalam developing aplikasi dengan struktur file source code-nya menggunakan pendekatan Models-Views-Controller (MVC) dan pemrograman berorientasi objek. Oleh sebab itu, penulis menggunakan CI dalam developing aplikasi ini dengan metode Object-Oriented Analysis and Design sebagai metode pengembangan sistem. Aplikasi sistem manajemen surat dan pengarsipan ini dapat diakses dalam internal perusahaan web, sehingga memudahkan karyawan untuk mengaksesnya. Aplikasi ini juga memberikan kemudahan dalam proses pencatatan surat yang ada, disposisi, dan proses pencariannya. Selain itu, aplikasi ini juga memiliki performa yang handal serta mudah untuk di-maintance dan dikembangkan lebih lanjut seiring perkembangan kebutuhan penggunanya.


(6)

vi

Assalamualaikum Wr. Wb

Alhamdulillah hirabbil a’lamin, kata yang dapat penulis ucapkan kepada Allah SWT, atas segala rahmat dan hidayah yang telah dilimpahkan-Nya, sehingga penulis bisa menyelesaikan laporan skripsi ini. Shalawat serta salam senantiasa tercurah kepada Rasulullah SAW, insan yang dapat membawa dunia ini kepada kehidupan yang lebih baik.

Dengan rasa syukur yang mendalam penulis dapat menyelesaikan laporan skripsi dengan judul : ”Penerapan CI (CodeIgniter) dalam Pengembangan Sistem Informasi Manajemen Surat dan Pengarsipan (Studi Kasus: PT Semen Padang)”.

Sehubungan dengan selesainya laporan ini, penulis juga mengucapkan terima kasih kepada semua pihak yang telah membantu penulis, juga atas dorongan dan bimbingannya sehingga laporan ini bisa selesai tanpa ada hambatan yang berarti. Semoga Allah SWT membalas semua amal baik mereka. Terima kasih penulis ucapkan kepada :

1. Bapak Prof. Dr. Komarudin Hidayat sebagai rektor Universitas Islam Negeri Syarif Hidayatullah Jakarta,

2. Bapak Dr. Syopiansyah Jaya Putra, M.Sis selaku Dekan Fakultas Sains dan Teknologi,

3. Bapak Yusuf Durachman, M.Sc selaku Ketua Program Studi Teknik Informatika, 4. Ibu Khodijah Hulliyah, M.Si, selaku dosen pembimbing pertama,

5. Bapak Hendra Bayu Suseno, M.Kom, selaku dosen pembimbing kedua,

6. Dosen-dosen jurusan Teknik Informatika yang telah memberikan ilmu, pengetahuan, kemampuan dan skill manajemen beserta pemupukan moral dan mental yang baik,


(7)

vii

dan senantiasa mencurahkan dukungannya demi kesuksesan penulis dalam proses kuliah dan kehidupan ini,

8. My lovely brothers, kakanda Doni Maizwar, ST., kakanda Afrison Asmaroni, S.Kom beserta istri Elsi Rahmadonal Jamel, S.Psi., adinda Oka Yulanda, dan adinda Hariadi, yang selalu mendoakan, memberikan motivasi dan dukungan moril maupun materil hingga skripsi ini selesai. Teristimewa untuk kakanda Alm. Beni Novaliano, ST., yang menjadi teladan dan panutan penulis dalam hidup, I always pray for you, see you again in heaven,

9. Sahabat dan teman hati, Rira Wahdani Martaliza, SKM., yang selalu mendoakan, memberikan dukungan penuh, semangat, motivasi, menjadi teman cerita, serta hiburan selama pembuatan skripsi ini. Thank God I found you

10.Serta Mama Saflidar dan keluarga, yang selalu memotivasi dan mengingatkan bahwa Allah selalu ada untuk kita dalam setiap langkah hidup jika kita selalu ingat dan meminta pada-Nya,

11.Teman-teman PSCom, Fadly Fadhilah, M. Yunan ”Bothel” Nasution, ’Ayo nyusul!!’, Ferly Permana, Edo Prasetyo, Idham Kusumo W, dan ibu negara Icheberlyanti, serta teristimewa habib Achmad Fauzi yang menjadi guru spiritual kami, wish we’ll together forever,

12.Teman-teman seperjuangan, mahasiswa TI angkatan 2006. Sukses untuk kita semua,

13.Seluruh pihak yang telah membantu dan namanya tidak dapat disebutkan satu per satu. Terima kasih atas dukungan dan motivasinya,

Semoga Allah SWT memberikan balasan yang setimpal atas segala bantuan dan kebaikan yang telah mereka berikan kepada penulis, Amin. Demikianlah,


(8)

viii

Wassalamualaikum Wr.Wb.

Jakarta, November 2011


(9)

ix

HALAMAN JUDUL ... i

PERSETUJUAN PEMBIMBING ... ii

HALAMAN PENGESAHAN ... iii

HALAMAN PERNYATAAN ... iv

ABSTRAK ... v

KATA PENGANTAR ... vi

DAFTAR ISI ... ix

DAFTAR GAMBAR ... xiv

DAFTAR TABEL ... xix

DAFTAR LAMPIRAN ... xxi

BAB I PENDAHULUAN 1.1. Latar Belakang ... 1

1.2. Perumusan Masalah ... 3

1.2.1. Identifikasi Masalah ... 3

1.2.2. Rumusan Masalah ... 3

1.3. Batasan Masalah ... 4

1.4. Tujuan Penelitian ... 5

1.5. Manfaat Penelitian ... 6


(10)

x

1.6.2. Metodologi Pengembangan Sistem ... 8

1.7. Sistematika Penulisan ... 8

BAB II LANDASAN TEORI 2.1. Penerapan ... 10

2.2. Framework ... 10

2.2.1. Zend Framework ... 11

2.2.2. CakePHP ... 12

2.2.3. Symfony Framework ... 13

2.2.4. CodeIgniter Framework ... 13

2.3. Model View Controller (MVC) ... 16

2.3.1. Model ... 17

2.3.2. View ... 17

2.3.3. Controller ... 18

2.4. Sistem Informasi ... 18

2.5. Sistem Informasi Manajemen ... 20

2.6. Surat ... 21

2.7. Arsip ... 25

2.8. Arsip dan Administrasi ... 27


(11)

xi

2.13. PHP ... 43

2.13.1. Definisi PHP ... 43

2.13.2. Kelebihan PHP ... 44

2.13.3. Kekurangan PHP ... 45

2.14. MySQL ... 45

2.15. XAMPP Server ... 45

2.16. Pengujian Perangkat Lunak ... 46

2.16.1. White-box testing ... 47

2.16.2. Black-box testing ... 47

BAB III METODOLOGI PENELITIAN 3.1. Tempat dan Waktu Penelitian ... 49

3.2. Metode Pengumpulan Data ... 49

3.2.1. Observasi ... 49

3.2.2. Wawancara ... 50

3.2.3. Studi Pustaka ... 50

3.2.4. Studi Sejenis ... 50

3.3. Metode Pengembangan Sistem ... 53


(12)

xii

BAB IV ANALISA DAN PERANCANGAN SISTEM

4.1. Profil PT Semen Padang ... 60

4.1.1. Sejarah PT Semen Padang ... 60

4.1.2. Visi dan Misi PT Semen Padang ... 62

4.1.3. Struktur Organisasi PT Semen Padang ... 62

4.2. Object-Oriented Analysis ... 66

4.2.1. Identifikasi Kebutuhan (User Need Assessment) ... 66

4.2.2. Analisis Sistem Berjalan ... 67

4.2.3. Identifikasi Masalah ... 69

4.2.4. Alternatif Pemecahan Masalah ... 70

4.2.5. Perancangan Use Case Diagram ... 71

4.3. Object Oriented Design ... 88

4.3.1. Perancangan Activity Diagram ... 88

4.3.2. Perancangan Sequence Diagram ... 118

4.3.3. Perancangan Class Diagram ... 131

4.3.4. Perancangan Basis Data ... 134

4.3.5. Kamus Data (Data Dictionary) ... 139

4.3.6. Perancangan User Interface ... 140


(13)

xiii

4.5. Pengujian ... 172

BAB V PENUTUP

5.1. Kesimpulan ... 182 5.2. Saran ... 184

DAFTAR PUSTAKA ... 185


(14)

xiv

Gambar 2.1. Application Flow Chart CodeIgniter Framework ... 15

Gambar 2.2. Model-View-Controller ... 16

Gambar 2.3. Life cycle of the records ... 30

Gambar 2.4. Contoh Use-case Diagram ... 39

Gambar 2.5. Contoh Class Diagram ... 40

Gambar 2.6. Contoh Activity Diagram ... 41

Gambar 4.1. Struktur organisasi PT Semen Padang ... 66

Gambar 4.2. Flowchart sistem berjalan surat masuk ... 69

Gambar 4.3. Simulasi Struktur Organisasi ... 73

Gambar 4.4. Use case diagram untuk pengelolaan user ... 74

Gambar 4.5. Use case diagram untuk pengelolaan surat masuk eksternal ... 75

Gambar 4.6. Use case diagram untuk pengelolaan surat eksternal ... 75

Gambar 4.7. Use case diagram untuk pengelolaan surat keluar ... 76

Gambar 4.8. Use case diagram untuk pengelolaan laporan ... 76

Gambar 4.9. Use case diagram untuk history ... 76

Gambar 4.10. Activity diagram untuk input registrasi user account ... 89

Gambar 4.11. Activity diagram untuk perubahan data user account ... 90

Gambar 4.12. Activity diagram untuk hapus data user account ... 91

Gambar 4.13. Activity diagram untuk ubah profil user ... 92


(15)

xv

didisposisikan dari admin ... 95 Gambar 4.17. Activity diagram untuk menerima surat eksternal yang didisposisikan dari admin ... 96 Gambar 4.18. Activity diagram untuk mendisposisikan kembali surat eksternal disposisi masuk dari admin ... 98 Gambar 4.19. Activity diagram untuk menerima surat eksternal disposisi masuk

dari user lain ... 99 Gambar 4.20. Activity diagram untuk mendisposisikan kembali surat eksternal

disposisi masuk dari user lain ... 101 Gambar 4.21. Activity diagram untuk input dan mendisposisikan surat

internal…… ... 102 Gambar 4.22. Activity diagram untuk membaca surat internal yang didisposisikan dari entry ... 104 Gambar 4.23. Activity diagram untuk menerima surat internal yang didisposisikan dari entry ... 105 Gambar 4.24. Activity diagram untuk mendisposisikan kembali surat internal

disposisi masuk dari entry ... 107 Gambar 4.25. Activity diagram untuk menerima surat internal disposisi masuk


(16)

xvi

Gambar 4.28. Activity diagram untuk perubahan data user account ... 112

Gambar 4.29. Activity diagram untuk hapus data surat keluar ... 113

Gambar 4.30. Activity diagram untuk cetak laporan semua surat ... 114

Gambar 4.31. Activity diagram untuk cetak laporan surat eksternal ... 115

Gambar 4.32. Activity diagram untuk cetak laporan surat internal ... 116

Gambar 4.33. Activity diagram untuk histori ... 117

Gambar 4.34. Sequence diagram manajemen user account ... 118

Gambar 4.35. Sequence diagram ubah profil dan ubah password ... 119

Gambar 4.36. Sequence diagram input dan disposisi surat eksternal ... 120

Gambar 4.37. Sequence diagram baca surat eksternal disposisi masuk dari admin.. ... 121

Gambar 4.38. Sequence diagram terima dan disposisi kembali surat ekternal disposisi masuk dari admin ... 122

Gambar 4.39. Sequence diagram terima dan disposisi kembali surat eksternal disposisi masuk dari user lain ... 123

Gambar 4.40. Sequence diagram input dan disposisi surat internal ... 124

Gambar 4.41. Sequence diagram baca surat internal disposisi masuk dari entry…. ... 125

Gambar 4.42. Sequence diagram terima dan disposisi kembali surat internal disposisi masuk dari entry ... 126


(17)

xvii

Gambar 4.45. Sequence diagram hapus surat keluar ... 129

Gambar 4.46. Sequence diagram laporan ... 130

Gambar 4.47. Sequence diagram histori ... 131

Gambar 4.48. Class diagram models ... 132

Gambar 4.49. Class diagram views ... 133

Gambar 4.50. Class diagram controllers ... 133

Gambar 4.51. Rancangan relasional tabel basis data ... 134

Gambar 4.52. Perancangan Halaman Login ... 140

Gambar 4.53. Perancangan Halaman Homepage Admin ... 140

Gambar 4.54. Perancangan Halaman Manajemen User ... 141

Gambar 4.55. Perancangan halaman manajemen bagian ... 141

Gambar 4.56. Perancangan halaman manajemen jabatan ... 142

Gambar 4.57. Perancangan Halaman Root Jabatan ... 142

Gambar 4.58. Perancangan halaman tambah user ... 143

Gambar 4.59. Perancangan halaman ubah user ... 144

Gambar 4.60. Perancangan halaman tambah dan edit bagian ... 145

Gambar 4.61. Perancangan halaman Tambah dan edit jabatan ... 145

Gambar 4.62. Perancangan halaman tambah root jabatan ... 146


(18)

xviii

Gambar 4.66. Perancangan halaman ubah surat eksternal ... 149

Gambar 4.67. Perancangan halaman tambah surat internal ... 150

Gambar 4.68. Perancangan Halaman ubah surat internal ... 151

Gambar 4.69. Perancangan halaman tambah dan ubah surat keluar ... 152

Gambar 4.70. Perancangan halaman utama menu disposisi ... 153

Gambar 4.71. Perancangan halaman utama menu histori ... 153

Gambar 4.72. Perancangan halaman utaman menu laporan ... 154

Gambar 4.73. Perancangan halaman utama (homepage) user ... 154

Gambar 4.74. Perancangan halaman profil ... 155

Gambar 4.75. Perancangan halaman ubah profil ... 155

Gambar 4.76. Perancangan halaman ubah password ... 156

Gambar 4.77. Perancangan halaman menu notifikasi surat eksternal dan internal…. ... 156

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

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


(19)

xix

Tabel 2.1. Simbol Penghubung ... 33

Tabel 2.2. Simbol Proses Flowchart ... 34

Tabel 2.3. Simbol input output flowchart ... 35

Tabel 2.4. Notasi UML ... 37

Tabel 3.1. Perbandingan Studi Sejenis ... 50

Tabel 4.1. Narasi dari use case registrasi data user account ... 77

Tabel 4.2. Narasi dari use case edit data user account ... 77

Tabel 4.3. Narasi dari use case hapus data user account ... 77

Tabel 4.4. Narasi dari use case lihat data user account ... 78

Tabel 4.5. Narasi dari use case ubah data profil user ... 78

Tabel 4.6. Narasi dari use case ubah password untuk login ... 78

Tabel 4.7. Narasi dari use case Input data surat masuk eksternal ... 79

Tabel 4.8. Narasi dari use case membaca surat eksternal disposisi masuk dari Admin ... 79

Tabel 4.9. Narasi dari menerima surat eksternal disposisi masuk dari Admin 80 Tabel 4.10. Narasi dari user case mendisposisikan kembali surat eksternal disposisi masuk dari Admin ... 80

Tabel 4.11. Narasi dari use case menerima surat eksternal disposisi masuk dari User lain ... 81


(20)

xx

Tabel 4.14. Narasi dari use case membaca surat internal disposisi masuk dari

entry ... 82

Tabel 4.15. Narasi dari menerima surat internal disposisi masuk dari entry ... 83

Tabel 4.16. Narasi dari user case mendisposisikan kembali surat internal disposisi masuk dari entry ... 83

Tabel 4.17. Narasi dari use case menerima surat internal disposisi masuk dari User lain ... 84

Tabel 4.18. Narasi dari use case untuk input data surat keluar ... 84

Tabel 4.19. Narasi dari use case mendisposisikan kembali surat internal disposisi masuk dari User lain ... 85

Tabel 4.20. Narasi dari use case untuk edit data surat keluar ... 85

Tabel 4.21. Narasi dari use case untuk hapus data surat keluar ... 86

Tabel 4.22. Narasi dari use case untuk cetak laporan semua surat ... 86

Tabel 4.23. Narasi dari use case cetak laporan semua surat eksternal ... 86

Tabel 4.24. Narasi dari use case cetak laporan semua surat internal ... 87

Tabel 4.25. Narasi dari use case cetak laporan semua surat keluar ... 87

Tabel 4.26. Narasi Use case history ... 88

Tabel 4.27. Kamus data ... 139

Tabel 4.28. Struktur file ... 158


(21)

xxi

Lampiran 2 (Surat Permohonan Penelitian/Permohonan Data) Lampiran 3 (Surat Penelitian/Riset dari Tempat Studi Kasus) Lampiran 4 (Form Wawancara)

Lampiran 5 (Hasil Observasi) Lampiran 6 (Tampilan Aplikasi) Lampiran 7 (Source Code)


(22)

(23)

1 1.1. Latar Belakang

Dunia pemrograman saat ini, baik pemrograman desktop maupun web based, sudah semakin marak pengerjaannya dengan menggunakan framework. Framework memang dikembangkan untuk mempermudah dalam developing suatu aplikasi. Selain itu, dengan framework, waktu yang dihabiskan untuk membangun sebuah aplikasi dapat dikurangi secara signifikan. (Upton : 2007)

Salah satu framework yang populer untuk pemrograman web based adalah Codeigniter. CI (CodeIgniter) Framework merupakan sebuah framework berbasis PHP yang mengorganisasi file menjadi 3 (tiga) kelompok, yaitu model yang merupakan kelompok file yang mengatur konfigurasi database, view yang merupakan kelompok file yang mengatur tampilan, dan controller yang merupakan kelompok file yang menghubungkan file-file model dengan file-file view. (Myer : 2008)

Dengan metode Model-View-Controller (MVC) ini, pengorganisasian file dalam membangun suatu aplikasi akan menjadi lebih tertata rapi, sehingga meningkatkan stabilitas dan efisiensi dalam proses pemeliharaan dan pengembangan aplikasi demi memenuhi perkembangan kebutuhan dalam mencari solusi masalah yang ditemui di kemudian hari. Misalnya ketika diperlukannya pengembangan dari segi tampilan, seorang programmer cukup mengubah file


(24)

yang ada dalam kelompok file view, tanpa perlu mengubah file pada model ataupun controller. Begitu pula ketika mengubah file pada controller atau model.

Komunikasi merupakan suatu faktor penting dalam kehidupan sehari-hari, termasuk dalam kegiatan berorganisasi dan perkantoran. Dalam dunia perkantoran, komunikasi tertulis dilakukan melalui surat-menyurat. Seiring waktu, surat-surat yang masuk jumlahnya makin banyak, ruang arsip yang biasa digunakan untuk penyimpananpun punya kapasitas yang terbatas. Selain itu, dengan banyaknya jumlah surat, semakin muncul masalah efektivitas dan efisiensi dalam pengelolaan lalu lintas surat beserta pengarsipannya.

Maka dari itu diperlukan suatu sistem pendukung yang mampu membantu dalam pengelolaan lalu lintas arsip surat-surat yang ada sehingga dapat tersusun dengan rapi dan teratur. Oleh karena itu, penulis ingin mencoba membangun aplikasi yang dapat membantu dalam pengelolaan lalu lintas surat dengan menggunakan CI (CodeIgniter) framework karena dengan CI (CodeIgniter) framework, pengembangan aplikasi ini berjalan lebih cepat. Selain itu aplikasi akan menjadi lebih stabil serta efisien dalam mengorganisasi data yang banyak dan tampilan sesuai keinginan kita karena aplikasi ini berbasis web.

Pada kantor PT Semen Padang, surat-surat yang masuk masih disimpan dalam file-file yang masih bersifat manual. Sehingga memungkinkan surat-surat tersebut tercecer, dan ketika akan mencari surat yang diinginkan harus dicari secara satu-persatu, sehingga membutuhkan waktu lama dalam pencariannya dan pemrosesannya.


(25)

Berdasarkan uraian di atas, maka penulis tertarik melakukan penelitian

“Penerapan CI (CodeIgniter) dalam Pengembangan Sistem Informasi

Manajemen Surat dan Pengarsipan” dengan studi kasus pada lingkungan Kantor

Sekretariat PT Semen Padang. Nantinya, sistem ini diharapkan dapat memudahkan user dalam pengelolaan lalu lintas dan pengarsipan surat, dan pencarian arsip surat yang ada.

1.2. Perumusan Masalah

1.2.1. Identifikasi Masalah

Berdasarkan penjabaran pada latar belakang di atas, penulis mengidentifikasikan masalah yang saat ini dihadapi adalah:

1. Pekerjaan penangganan lalu lintas dan disposisi surat masuk masih dilakukan secara manual.

2. Munculnya kemungkinan surat yang masuk akan tercecer dan hilang pada saat proses disposisi dan agenda, sehingga menyulitkan dalam pengarsipan.

3. Proses disposisi surat kepada pihak-pihak yang bersangkutan akan membutuhkan penggunaan kertas dan waktu yang lama.

4. Munculnya kesulitan pencarian dan monitoring data surat apabila data yang terkumpul sudah banyak.

1.2.2. Rumusan Masalah

Dengan identifikasi masalah di atas penulis merumuskan bahwa permasalahan yang akan diselesaikan dengan penelitian ini adalah:


(26)

1. Bagaimana merancang dan membangun sistem yang membuat data-data surat masuk, baik eksternal maupun internal, dan surat keluar menjadi terkomputerisasi dengan pemanfaatan CI (CodeIgniter) Framework dan teknologi tepat guna yang ekonomis dan sudah memasyarakat untuk kemudahan penyampaian informasi?

2. Bagaimana membangun sistem yang user friendly sehingga mudah dipahami oleh pengguna?

3. Bagaimana membangun sebuah sistem dengan pemanfaatan framework Codeigniter yang struktur organisasi data sourcecode-nya menggunakan metode MVC yang mampu membantu programmer dalam penulisan sourcecode yang lebih efisien dan efektif sehingga sistem menjadi lebih mudah untuk dikembangkan lebih lanjut seiring perkembangan kebutuhan atas penyelesaian masalah yang muncul nanti?

1.3. Batasan Masalah

Berdasarkan perumusan yang telah dipaparkan, maka penulis membuat batasan-batasan permasalahannya sebagai berikut:

1. Aplikasi ini hanya untuk intern Kantor PT Semen Padang dan bukan untuk umum.

2. Analisis dan perancangan aplikasi berbasis web yang dapat mengakses informasi dari basis data tersebut kepada user.

3. Obsevasi data yang dilakukan pada prosedur, formulir-formulir, dokumen, dan laporan yang ada hubungannya dengan manajemen surat dan pengarsipan.


(27)

4. Dalam melakukan perancangan aplikasi, penulis menggunakan Unified Modelling Language (UML) sebagai tools.

5. Dalam proses developing, penulis menggunakan CI framework sebagai framework, database yang digunakan adalah MySQL.

6. Dokumen surat yang akan diproses dalam aplikasi yang akan dirancang akan dibagi menjadi tiga tipe yaitu, surat eksternal, surat internal, dan surat keluar.

7. Batasan proses pada rancangan aplikasi adalah pencatatan data dan pengarsipan elekronik pada surat eksternal, surat internal dan surat keluar, disposisi berlevel pada user terhadap surat eksternal dan internal, monitoring histori surat yang didisposisikan, dan pencetakan laporan data-data surat yang ada berdasarkan rentang waktu tertentu.

8. Merancang document workflow pada sistem infomasi manajemen surat dan pengarsipan dan membangunnya sampai pada tahap pengujian saja tidak sampai pada implementasi, sehingga sistem yang dihasilkan hanya berbentuk prototype yang bisa dikembangkan lagi.

1.4. Tujuan Penelitian

Tujuan dari penelitian adalah:

1. Membuat sebuah analisis dan perancangan sistem informasi manajemen surat dan pengarsipan.

2. Merancang aplikasi sistem informasi manajemen surat dan pengarsipan sehingga pemasukan dan pengelolaan data dapat dilakukan secara komputerisasi ke dalam database melalui media web.


(28)

3. Penyampaian disposisi berlevel melalui web sehingga tercapai suatu keefisiensian dalam penggunaan kertas (less-paper).

4. Merancang aplikasi sistem informasi manajemen surat yang dapat mempermudah pencarian serta pengorganisasian data.

5. Merancang aplikasi sistem informasi manajemen surat dan pengarsipan yang memanfaatkan framework Codeigniter, sehingga aplikasi lebih stabil dan mudah untuk dikembangkan.

1.5. Manfaat Penelitian

Adapun manfaat yang didapat dari penulisan skripsi ini adalah sebagai berikut:

1.5.1. Bagi perusahaan

1. Mempermudah proses pengelolaan lalu lintas surat, pengarsipan, dan laporan surat agar ketika dibutuhkan dengan cepat didapatkan.

2. Mempermudah dalam melakukan pencarian surat.

3. Meningkatkan efektifitas, efisiensi, dan produktivitas kerja. 1.5.2. Bagi Penulis:

1. Untuk memenuhi salah satu syarat kelulusan dalam menyelesaikan jenjang pendidikan strata satu pada Fakultas Sains dan Teknologi Program Studi Teknik Informatika.

2. Menambah wawasan penulis dalam penerapan Codeigniter framework dalam membangun sistem.


(29)

3. Menambah wawasan penulis di dalam pengembangan suatu sistem informasi manajemen surat dan pengarsipan.

1.6. Metodologi Penelitian

Metode yang digunakan dalam penelitian ini terdiri dari langkah-langkah berikut:

1.6.1. Pengumpulan Data 1. Observasi

Observasi lapangan dengan melakukan pengamatan langsung terhadap sistem yang sedang berjalan sesuai alur data dan prosedur di lingkungan perusahaan PT Semen Padang.

2. Wawancara

Wawancara yaitu pencarian data melalui wawancara langsung dengan orang-orang yang terlibat langsung maupun tidak dengan bagian manajemen surat pada lingkungan perusahaan PT Semen Padang.

3. Studi Pustaka

Melakukan Studi kepustakaan dengan mengumpulkan data dan informasi mengenai prosedur sistem yang telah ada, analisa perancangan sistem berorientasi objek dan bahasa pemograman yang dapat dijadikan acuan pembahasan dalam masalah ini. 4. Studi Sejenis

Dalam penelitian ini, diperlukan sebuah perbandingan studi literatur sejenis yang erat hubungannya dengan tema penulisan


(30)

skripsi ini. Perbandingan studi sejenis ini diperlukan agar nantinya penelitian ini dapat bermanfaat dan menjadi pelengkap dan penyempurna dari studi-studi literatur yang telah dilaksanakan sebelumnya.

1.6.2. Metodologi Pengembangan Sistem

Proses pengembangan sistem informasi manajemen surat dan pengarsipan ini menggunakan OOAD (Object Oriented Analysis and Design) yang terdiri dari metode analisis dan metode perancangan. (Nugroho : 2005). Alat bantu pemodelan sistem yang digunakan adalah Unified Modelling Language (UML).

1.7. Sistematika Penulisan

Untuk mempermudah mengikuti penelitian dan format penulisan skripsi ini, maka penulis membagi tahap demi tahap kegiatan sesuai dengan ruang lingkup yang dijelaskan sebelumnya secara garis besar, yang dibagi menjadi beberapa bab yang secara ringkas dapat dijabarkan sebagai berikut:

BAB I PENDAHULUAN

Berisi latar belakang, permasalahan, ruang lingkup penelitian, tujuan, manfaat penelitian, metode penelitian, dan sistematika penelitian.

BAB II LANDASAN TEORI

Dalam bab ini dijelaskan tentang teori-teori yang digunakan dalam menyelesaikan permasalahan.


(31)

BAB III METODOLOGI PENELITIAN

Dalam bab ini dijelaskan bagaimana langkah-langkah yang dilaksanakan dalam memecahkan permasalahan dalam penelitian ini.

BAB IV ANALISA DAN PERANCANGAN SISTEM

Pada bab ini membahas tentang visi dan misi, sejarah berdirinya perusahaan, perancangan sistem, yaitu rancangan basis data, rancangan proses, rancangan keluaran, masukan, rancangan layar dan rancangan konfigurasi komputer. Serta pengujian sistem yang dibangun dengan menggunakan PHP dan MySQL sebagai basis datanya dengan mengacu pada metodologi berorientasi objek dan UML sebagai alat bantu.

BAB V PENUTUP

Pada bab ini berisikan kesimpulan mengenai hasil akhir dari keseluruhan proses yang telah dijalani dan saran untuk pengembangan sistem.


(32)

(33)

10

Dalam membangun sistem informasi ini terdapat teori-teori ilmu terkait yang digunakan untuk membantu penelitian serta menyelesaikan permasalahan yang ada berkaitan dengan sistem yang akan dibuat. Tujuannya adalah agar sistem informasi ini mempunyai pijakan pustaka yang dapat dipertanggungjawabkan.

2.1. Penerapan

Berdasarkan definisi yang diberikan oleh Kamus Besar Bahasa Indonesia (KBBI), penerapan, yang berasal dari kata dasar terap, berarti proses, cara, perbuatan menerapkan. (Pusat Bahasa Departemen Pendidikan Nasional : 2008)

Jadi, penerapan adalah sebuah cara untuk melakukan sesuatu berdasarkan aturan atau metode tertentu. Dalam konteks ini, aturan yang menjadi acuan adalah CodeIgniter Framework. Mengenai CodeIgniter Framework, akan dijelaskan pada bagian berikutnya.

2.2. Framework

Framework dalam sistem berorientasi objek, merupakan kumpulan class yang melambangkan bentuk abstrak untuk pemecahan sejumlah masalah yang berhubungan. (Howe : 1995)

Framework adalah kumpulan perintah atau fungsi dasar yang membentuk aturan-aturan tertentu dan saling berinteraksi satu sama lain sehingga dalam pembuatan aplikasi web kita harus mengikuti aturan dari framework tersebut.


(34)

Dengan framework (dalam hal ini framework PHP), kita tidak perlu memikirkan kode perintah/fungsi dasar dari aplikasi website kita. (Wardana : 2010)

Pada pemrograman web, framework telah dikembangkan untuk bahasa pemrograman antara lain PHP dan Java. Untuk PHP, framework yang banyak digunakan misalnya Zend framework yang dikembangkan oleh Zend Technologies, CodeIgniter yang dikembangkan oleh Ellislab, Inc., dan Symfony Framework yang dikembangkan oleh SensioLabs.

Sebuah framework selain menyediakan lingkungan pengembangan sendiri juga menyediakan berbagai macam fungsi siap pakai yang bisa kita gunakan dalam pembuatan sebuah aplikasi berbasis web.

2.2.1. Zend Framework

Berdasarkan situs resminya (http://framework.zend.com/), Zend Framework adalah sebuah framework yang berbasis open source untuk mengembangkan aplikasi web, dan layanan dengan PHP 5 berdasarkan kesederhanaan, praktik terbaik berorientasi objek, lisensi yang corporate-friendly, dan basis kode agile yang teruji secara ketat. (Vaswani : 2010)

Framework ini menyediakan satu set alat yang komprehensif untuk membangun aplikasi web yang berbasis PHP, dengan menggunakan built-in APIs untuk fungsi-fungsi umum seperti keamanan, validasi input, data caching, operasi database dan XML, dan internasionalisasi.

Tidak seperti framework lainnya, Zend Framework menggunakan arsitektur Loosely Coupled. Secara sederhana, maksudnya adalah meskipun framework sendiri terdiri dari banyak komponen, komponen


(35)

ini sebagian besar independen dan memiliki hubungan minimal untuk satu sama lain. Arsitektur Loosely Coupled ini membantu dalam membangun aplikasi ringan, karena pengembang dapat memilij untuk hanya menggunakan komponen spesifik yang mereka butuhkan saja. Jadi, misalnya, pengembang ingin menambahkan otentikasi atau caching untuk aplikasi mereka bisa langsung memanfaatkan Zend_Auth atau komponen Zend_Cache, tanpa perlu komponen lainnya.

2.2.2. CakePHP

Berdasarkan situs resmi CakePHP (http://cakephp.org), CakePHP adalah framework pengembangan cepat untuk PHP yang menggunakan pola desain umum yang terkenal seperti Active Record, Assosiciation Data Mapping, Front Controller, dan MVC. Tujuan utamanya adalah untuk menyediakan framework yang terstruktur yang memungkinkan pengguna PHP di semua tingkat untuk mengembangkan aplikasi web yang handal secara cepat, tanpa kehilangan fleksibilitasnya. (Bari : 2008)

CakePHP membuang proses monoton dalam pengembangan aplikasi web. CakePHP menyediakan sebuah alat bantu yang diperlukan untuk memulai tugas coding yang perlu diselesaikan, yaitu logika aplikasi. Daripada membuat sesuatu yang baru setiap memulai proyek baru, kita bisa meninjau unduhan CakePHP dan mulai fokus kepada logik aplikasi yang hendak dibangun.


(36)

2.2.3. SymfonyFramework

Symfoni adalah framework lengkap yang dirancang untuk mengoptimalkan pengembangan aplikasi web dengan beberapa fitur utama. Bagi pemula, Symfoni memisahkan aturan bisnis aplikasi web, logika server, dan tampilan presentasi. Symfoni framework ini terdiri dari berbagai alat dan class yang bertujuan memperpendek waktu pengembangan sebuah aplikasi web yang kompleks. Selain itu, melakukan otomatisasi pada beberapa tugas-tugas umum dalam pemrogramam web, sehingga pengembangan dapat memfokuskan sepenuhnya pada spesifik aplikasi. Tujuannya adalah kita tidak perlu memulai dari awal lagi setiap kali sebuah aplikasi web baru dibangun. (Zaninotto : 2010)

Symfony sepenuhnya ditulis dalam PHP dan telah diuji secara menyeluruh diberbagai proyek didunia, dan sebenarnya digunakan untuk high-demand e-business websites (situs web e-bisnis dengan tingkat permintaan tinggi). Framework ini juga kompatibel dengan sebagian besar mesin database yang tersedia, termasuk MySQL, PostgreSQL, Oracle, dan Microsoft SQL Server. Selain itu, framework ini mampu berjalan pada platform *nix dan Windows.

2.2.4. CodeIgniterFramework

CodeIgniter adalah framework aplikasi web yang open source untuk bahasa pemrograman PHP. CodeIgniter memiliki banyak fitur yang membuatnya berbeda dengan framework lainnya. Tidak seperti


(37)

beberapa framework PHP lainnya, dokumentasi untuk framework ini sangat lengkap, yang mencakup seluruh aspek dalam framework. CodeIgniter juga mampu berjalan pada lingkungan shared hosting karena memiliki ukuran yang sangat kecil, namun memiliki kinerja yang sangat luar biasa. (Griffiths : 2010)

Dari sisi pemrograman, CodeIgniter kompatibel dengan PHP4 dan PHP5, sehingga akan berjalan dengan baik pada web host yang banyak dipakai pada saat ini. CodeIgniter menggunakan pola desain Model-View-Controller (MVC), yang merupakan cara untuk mengatur aplikasi web ke dalam tiga bagian yang berbeda, yaitu Model –lapisan abstraksi database, Views –file-file template tampilan depan, dan Controller – logika bisnis dari aplikasi. Pada intinya, CodeIgniter juga membuat penggunakan ekstensif dari pola desain Singleton. Maksudnya adalah cara untuk me-load class sehingga jika class itu dipanggil dalam beberapa kali, kejadian yang sama pada class tersebut akan digunakan kembali. Hal ini sangat berguna dalam koneksi database, karena kita hanya ingin menggunakan satu koneksi setiap kali class itu digunakan. (Griffiths : 2010)

CodeIgniter dikembangkan oleh Rick Ellis, dengan versi awal yang dirilis pada tanggal 28 Februari 2006. Dari tahun itulah hingga sekarang, telah muncul banyak versi CodeIgniter yang terus berkembang dengan penambahan fitur baru dari versi sebelumnya. Untuk versi terbaru dari code igniter adalah versi 2.0.3.


(38)

Bagaimana suatu proses data mengalir pada sistem yang menggunakan CodeIgniter Framework dapat diilustrasikan pada gambar berikut: (Basuki : 2010)

Gambar 2.1. Application Flow Chart CodeIgniter Framework

Keterangan:

1. index.php berfungsi sebagai front controller, menginisialisasi base resource untuk menjalankan CodeIgniter.

2. Router memerikas HTTP request untuk menentukan apa yang harus dilakukan dengannya.

3. Jika Cache aktif, maka hasilnya akan langsung dikirimkan ke browser dengan mengabaikan aliran data normal.

4. Security. Sebelum controller dimuat, HTTP request dan data yang dikirimkan user akan difilter untuk keamanan.

5. Controller memuat model, core libraries, plugins, helpers, dan semua resource yang diperlukan untuk memproses request. 6. Akhirnya View yang dihasilkan akan dikirim ke browser. Jika

cache aktif, maka view akan disimpan sebagai cache dahulu, sehingga pada request berikutnya langsung ditampilkan.


(39)

2.3. Model View Controller (MVC)

Model-View-Controller (MVC) pertama kali diperkenalkan peneliti Xerox PARC yang bekerja pada bahasa pemrograman Smalltalk di akhir tahun 1970-an dan awal 1980-an. Smalltalk adalah bahasa pemrograman yang berorientasi objek, bertipe dinamis, dan reflektif. Smalltalk pertama kali digunakan dalam pembelajaran edukasi, dan hal ini berbeda dari data mainframe dan struktur kontrol dalam program Smalltalk yang terlibat pada Windowed User Interfaces, konsep pemrograman berorientasi objek, pengantar pesan antara komponen-komponen objek, dan kemampuan untuk memonitor dan memodifikasi struktur dan perilakunya sendiri. (Myer : 2008)

Singkatnya, Model-View-Controller (MVC), adalah pola desain pengembangan perangkat lunak. MVC adalah sebuah pendekatan untuk memisahkan aplikasi menjadi tiga segmen, yaitu Models, Views, dan Controller. MVC menstrukturisasi aplikasi dengan cara tersebut untuk mempromosikan penggunaan kembali dari kode program. (Griffiths : 2010)


(40)

Berdasarkan gambar diatas dapat kita ketahui bahwa ketika datang sebuah permintaan dari user, maka permintaan tersebut akan ditangani oleh Controller, kemudian Controller akan memanggil Model jika memang diperlukan operasi database. Hasil query oleh Model kemudian akan dikembalikan ke Controller. Selanjutnya Controller akan memanggil View yang tepat dan mengkombinasikannya dengan hasil query Model. Hasil akhir dari operasi ini akan ditampilkan ke browser yang selanjutnya bisa dilihat oleh user.

2.3.1. Model

Model merupakan jenis data yang dapat digunakan oleh aplikasi. Beberapa contoh data yang biasa digunakan adalah database, RSS Feed, API calls, dan setiap tindakan lainnya yang melibatkan pengambilan (retrieving), pengembalian (returning), memperbarui (updating), menghapus (removing) data. (Griffiths : 2010)

2.3.2. View

File-file yang ditempatkan pada bagian ini bertanggung jawab untuk menunjukan data kami pada para pengunjung situs kita, atau pengguna dari aplikasi kita. Tidak ada logika pemrograman, tidak ada query insert atau update yang harus dijalankan disini, meskipun akses data bisa terjadi pada file-file ini. File-file disini hanya untuk menunjukkan hasil dari dua bagian lainnya. Jadi kita mengambil data dalam model, dan menampilkan dalam view. (Blanco : 2009)


(41)

2.3.3. Controller

Controller adalah logika bisnis dari aplikasi. File-file yang ada di sini akan melayani sebagai perantara antara Model dan Views. Controller akan merespon permintaan HTTP dan menghasilkan halaman web. Controller adalah inti dari aplikasi karena bagian menentukan bagaimana permintaan HTTP harus ditangani. (Griffiths : 2010)

2.4. Sistem Infomasi

Sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu. (Jogiyanto : 2005)

Menurut Jerry Fitzchald, Ardra F. FitzGerald, dan Warren D. Stallings, Jr., suatu sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran yang tertentu. (Jogiyanto : 2005)

Informasi adalah data yang diolah menjadi benttuk yang lebih berguna dan lebih berarti bagi yang menerimanya. Sumber dari informasi adalah data. Data merupakan bentuk jamak dari bentuk tunggal datum atau data item. Data adalah kenyataan yang menggambarkan suatu kejadi-kejadian dan kesatuan nyata. Kejadian-kejadian (events) adalah sesuatu yang terjadi pada saat tertentu. Data merupakan bentuk yang masih mentah yang belum dapat bercerita banyak, sehingga perlu diolah lebih lanjut. (Jogiyanto : 2005)

Informasi juga dapat menggambarkan kejadian nyata yang digunakan untuk pengambilan keputusan. Sumber dari informasi adalah data yang berbentuk huruf, simbol, alfabet, dan sebagainya.


(42)

Menurut Robert A. Leitch/K. Roscoe Davis, Sistem informasi adalah suatu sistem di dalam suatu organisasi yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung operasi, bersifat manajerial kegiatan strategi dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan. (Jogiyanto : 2005)

Sistem informasi mempunyai elemen utama, yaitu data yang menyediakan informasi, prosedur yang memberitahu pengguna bagaimana mengoperasikan sistem informasi, menyelesaikan masalah, membuat keputusan dan menggunakan sistem informasi tersebut. Orang-orang dalam sistem informasi akan membuat prosedur untuk mengolah data dan memanipulasi data tersebut sehingga menghasilkan informasi dan menyebarkan informasi tersebut ke lingkungannya.

Model dasar dari sebuah sistem adalah masukan, pengolahan dan pengeluaran. Fungsi pengolan informasi sering membutuhkan data yang telah dikumpulkan dan diolah dalam waktu periode sebelumnya. Oleh karena itu, dalam model sistem informasi ditambahkan pula media penyimpanan data. Maka fungsi pengolahan informasi bukan lagi mengubah data menjadi informasi semata, tetapi juga menympan data untuk penggunaan lanjutan.

Informasi merupakan data yang telah diolah menjadi suatu bentuk penjelasan yang berarti bagi penerimanya dan bermanfaat bagi pengambilan keputusan saat ini maupun di masa yang akan datang.

Kualitas dari sistem informasi bergantung pada dua hal, yaitu:


(43)

2. Informasi tersebut harus relevan, supaya informasi tersebut dapat memberikan masukan bagi penerimanya.

2.5. Sistem Informasi Manajemen

Menurut Raymond McLoed Jr., sistem informasi manajemen (SIM) didefinisikan sebagai sebuah sistem yang berbasi komputer yang menyediakan informasi bagi beberapa pemakai dengan kebutuhan yang serupa. (McLeod : 2004)

SIM akan menyediakan informasi dengan menggunakan dua jenis subsistem pengolah data yang ada di database menjadi sebuah informasi yang berarti, yaitu perangkat lunak penulis laporan dan model matematika. Perangkat lunak penulis laporan akan menyediakan laporan dalam bentuk laporan periodik dan laporan khusus.

Model matematika menyediakan informasi dalam bentuk hasil simulasi. Model ini mensimulasikan suatu entitas dan dapat bersifat statis atau dinamis, probalistik atau deteministik, dan omtimalisasi atau suboptimisasi. Model dirancang sehingga manajer dapat menentukan skenarionya dan menetapkan nilai-nilai pada variabel keputusan.

SIM menggambarkan sikap para eksekutif yang menginginkan agar komputer, tersedia untuk pemecah masalah perusahaan. Ketika SIM berada pada tempatnya dan berfungsi seperti yang diinginkan, SIM dapat membantu manajer dan pemakai lain yang ada di dalam dan di luar perusahaan dan organisasi untuk mengidentifikasi dan memahami permasalahan.


(44)

2.6. Surat

Surat merupakan salah satu sara komunikasi secara tertulis yang berbentuk lembaran kertas yang memuart suatu informasi yang hendak disampaikan oleh seseorang kepada orang lain. Informasi tersebut dapat berupa pemberitahuan, pertanyaan, permintaan, laporan, peringatan, dan sebagainya.

Selain sebagai alat komunikasi, surat juga dapat berfingsi sebagai:

1. Alat bukti tertulis, misalnya surat perjanjian, surat keputusan, dan sebagainya.

2. Alat pengingat, misalnya surat yang telah diarsipkan.

3. Dokumentasi historis, misalnya surat dalam arsip lama yang digunakan kembali untuk penyelidikan mengenai masa lalu.

4. Pedoman tindakan, misalnya surat perintah, surat tugas, surat edaran, dan sebagainya.

5. Jaminan keamanan, misalnya surat keterangan jalan.

6. Duta atau wakil organisasi, maksudnya surat mencerminkan keadaan mentalitas, jiwa, dan kondisi intern dari organisasi yang mengeluarkannya. Surat-surat yang dikirim oleh suatu kantor sring merupakan satu-satunya hubungan kantor yang satu dengan kantor yang lain. Karena itu, perlu sekali surat dirumuskan dan ditata sedemikian rupa sehingga menciptakan kesan baik dan berwibawa.

Penataan surat adalah kegiatan menata surat yang dimulai dari penerimaan surat masuk, pengolahan, atau penyelesaiannya sampai surat tersebut disimpan.


(45)

Untuk surat keluar, dimulai dari perintah membuat surat sapai surat tersebut dikirim dan tindasannya disimpan.

Dalam prakteknya, ada bermacam-macam jenis surat, yang dapat dibedakan sebagai berikut:

1. Jenis surat berdasarkan wujudnya

Berdasarkan wujud fisiknya, surat dapat berupa:

a. Surat bersampul, yakni lembaran surat yang dimasukkan ke dalam amplop.

b. Kartu pos, yakni surat yang berbentuk sehelai kartu berukuran 15 cm × 10 cm, sifatnya terbuka dan tidak formal, kadang-kadang dihiasi gambar dan potret.

c. Warkat pos, yakni lembaran surat yang dapat dilipat sekaligus berfungsi sebagai amplop, biasanya dipergunakan untuk korespondensi antar negeri karena ringan dan menghemat biaya pos. d. Memorandum (dari bahasa latin, berarti ‘untuk diingat’) atau biasa

disingkat memo, yakni surat pendek berisi petunjuk, perintah, laporan, atau pertanyaan, umumnya digunakan untuk keperluan intern suatu organisasi.

e. Telegram, yakni surat yang pengirimannya disalurkan melalui mesin telegraf.

2. Jenis surat berdasarkan cara pengirimannya

Berdasarkan cara pengirimannya lewat jasa kantor pos, surat berupa: a. Surat kilat.


(46)

b. Surat tercatat. c. Surat elektronik.

3. Jenis surat berdasarkan tujuan penulisan

Berdasarkan tujuan penulisannya, surat berupa surat pemberitahuan, surat perintah, surat permohonan, surat peringatan, surat panggilan, surat pengantar, surat keputusan, surat laporan, surat perjanjian, surat penawaran, dan sebagainya.

4. Jenis surat berdasarkan sifat isi surat

Menurut sifat isi surat, surat dapat diklasifikasikan sebagai:

a. Surat dinas, yaitu surat yang berisi persoalan dinas dan dibuat oleh instansi pemerintah dan swasta.

b. Surat pribadi, yakni surat yang berisi masalah perorangan atau pribadi, baik itu masalah kekeluargaan maupun masalah hubungan pribadi dengan dinas.

c. Surat niaga, yakni surat yang berisi persoalan niaga dan dibuat oleh perusahaan.

5. Jenis surat berdasarkan jumlah penerima surat

Ditinjau dari segi jumlah penerima surat, surat dapat diklasifikasikan menjadi:

a. Surat perorangan, yaitu surat yang dikirim kepada seseorang atau suatu organisasi tertentu.

b. Surat edaran, yaitu surat yang dikirim kepada beberapa pejabat atau beberapa orang tertentu.


(47)

c. Surat pengumuman, yaitu surat yang ditujukan kepada sejumlah orang atau pejabat sekaligus.

6. Jenis surat berdasarkan segi keamanannya

Ditinjau dari segi keamanan isinya, surat dapat diklasifikasikan sebagai berikut:

a. Surat rahasia/konfidensial (biasa diberi kode “RHS” atau “R”), yakni surat atau dokumen yang isinya tidak boleh diketahui oleh orang lain selain yang jelas dituju orah surat itu. Pengiriman surat rahasia dilakukan dengan mempergunakan dua amplop. Adapun surat konfidensial ialah surat yang isinya cukup diketahui oleh pejabat yang bersangkutan, tetapi rahasia.

b. Surat sangat rahasia (biasa diberi kode “SRHS” atau “SR”), yakni surat yang tingkat kerahasiaannya sangat tinggi, biasanya yang berhubungan erat dengan keamanan negara. Pengiriman surat sangat rahasia dilakukan dengan menggunakan tiga buah amplop. Amplop pertama diberi tanda “sangat rahasia” dan kemudian dilem. Kemudian amplop ini dimasukkan dalam amplop kedua yang diberi tanda “sangat rahasia” dan dilem. Selanjutnya, kedua amplop ini dimasukkan pada amplop ketiga, yang merupakan amplop biasa (tidak diberi tanda).

c. Surat biasa, yakni surat rutin yang kalau isinya terbaca oleh orang lain tidak akan menimbulkan sesuatu yang berakibat buruk bagi pihak-pihak yang terkait.


(48)

7. Jenis surat berdasarkan kemendesakannya

Berdasarkan kemendesakan atau urgensinya, surat dapat diklasifikasikan sebagai berikut:

a. Surat sangat segera, yakni surat yang perlu secepatnya ditanggapi atau diselesaikan atau diketahui oleh penerima. Oleh karena itu, pengirimannya pun harus dilakukan dalam waktu yang sesingkat-singkatnya.

b. Surat segera, yakni surat yang isinya harus segera ditanggapi atau diselesaikan atau diketahui oleh penerimanya, tetapi tidak perlu dalam waktu yang sesingkat-singkatnya seperti surat yang bersifat “sangat segera”.

c. Surat biasa, yakni surat yang isinya memerlukan tanggapan atau penyelesaiannya secara cepat. Pengurusannya dilakukan menurut urutan datangnya surat.

2.7. Arsip

Arsip (records) yang dalam istilah bahasa Indonesia ada yang menyebutkan sebagai “warkat”, pada pokoknya dapat diberikan pengertian sebagai: setiap catatan tertulis baik dalam bentuk gambar ataupun bagan yang memuat keterangan-keterangan mengenai sesuatu subyek (pokok persoalan) ataupun peristiwa yang dibuat orang untuk membantu daya ingatan orang itu pula. (Barthos : 2007)


(49)

Atas dasar pengertian di atas, maka yang termasuk pada pengertian arsip tersebut adalah surat-surat, kwitansi, faktur, pembukuan, daftar gaji, daftar harga, kartu penduduk, bagan organisasi, foto-foto dan lain sebagainya.

Berdasarkan Undang-Undang Nomor 7 Tahun 1971 tentang Ketentuan-Ketentuan Pokok Kearsipan, pasal 1 ayat a dan ayat b, menetapkan bahwa yang dimaksud dengan arsip adalah:

a. Naskah-naskah yang dibuat dan diterima oleh Lembaga-lembaga Negara dan Badan-Badan Pemerintahan dalam bentuk corak apapun baik dalam keadaan tunggal maupun berkelompok, dalam rangka pelaksanaan kegiatan pemerintahan

b. Naskah-naskah yang dibuat dan diterima Badan-Badan Swasta dan atau perorangan dalam bentuk corak apapun, baik dalam keadaan tunggal maupun berkelompok, dalam rangka pelaksanaan kehidupan kebangsaan.

Secara etimologi arsip berasal dari bahasa Yunani Kuno yaitu Archeon, Arche yang dapat bermakna permulaan, asal, tempat utama, kekuasaan dan juga berarti bangunan kantor. Bentuk media arsip dapat berupa kertas, film, suara maupun elektronik. Secara rinci pengelompokan tersebut adalah sebagai berikut:

a. Arsip berbasis kertas (paper records) yaitu arsip-arsip berupa teks yang tertulis diatas kertas. Bentuk arsip yang bermedia kertas ini juga lazim disebut sebagai arsip yang bersifat konvensional.


(50)

b. Arsip pandang-dengar (audio-visual records) merupakan arsip yang dapat dilihat dan didengar. Arsip pandang-dengar dapat dirinci kembali dalam 3 kategori:

c. Arsip elektronik, merupakan arsip-arsip yang disimpan dan diolah di dalam suatu format, dimana hanya komputer yang dapat memprosesnya maka sering dikatakan sebagai machine-readable-records.

1. Arsip gambar statik (static image), contohnya foto.

2. Arsip citra bergerak (moving image), contohnya video, film, dan sebagainya.

3. Arsip rekaman suara (sound recording), contohnya kaset.

2.8. Arsip dan Administrasi

Hubungan arsip dengan administrasi merupaka suatu hubungan dua sisi sebuah mata uang atau hubungan antara suatu benda dengan bayangannya. Arsip sebagai bagian dari proses administrasi hanya ada apabila administrasi itu berjalan.

1. Proses

Arsip tercipta sebagai endapan informasi yang terekam dari pelaksanaan kegiaatan administrasi suatu instansi/korporasi. Arsip merupakan substansi informasi yang melekat pada fungsi, sehingga setiap pengaturan arsip harus mempertimbangkan:

a. Agar informasi yang terdapat dalam arsip bisa digunakan untuk kepentingan operasional instansi korporasi secara fungsional.


(51)

b. Agar informasi dalam arsip dapat dikelompokkan dalam unit-unit informasi secara spesifik agar dapat diberikan secara tepat informasi, tepat waktu, tepat orang, dan tepat guna, serta dalam waktu yang secepat mungkin.

2. Fungsi Arsip

Menurut UU No. 7 Tahun 1971, fungsi arsip membedakan: (Barthos : 2007)

a. Arsip dinamis yang dipergunakan secara langsung dalam perencanaan, pelaksanaan, penyelenggaraan kehidupan kebangsaan pada umumnya dan dipergunakan secara langsung dalam penyelenggaraan administrasi negara.

b. Arsip statis yang tidak dipergunakan secara langsung untuk perencanaan, penyelenggaraan kehidupan kebangsaan pada umumnya maupun untuk penyelenggaraan sehari-hari administrasi negara.

Arsip statis adalah arsip yang tidak dipergunakan lagi di dalam fungsi manajemen, tetapi dapat dimanfaatkan untuk kepentingan pendidikan dan penelitian. Arsip statis merupakan arsip yang memiliki nilai guna yang berkelanjutan (continuing value).

Arsip dinamis berdasarkan kepentingan penggunaannya dapat dibedakan menjadui dua yaitu arsip dinamis aktif dan dinamis inaktif. Arsip dinamis aktif berarti arsip yang secara langsung dan terus-menerus diperlukan dan dipergunakan di dalam penyelenggaraan administrasi.


(52)

Sedangkan arsip dinamis inaktif merupakan arsip-arsip yang frekuensi penggunaannya untuk penyelenggaraan administrasi sudah menurun.

2.9. Records Management (Manajemen Arsip Dinamis)

Arsip sebagai sumber informasi (baik itu untuk kepentingan pengambilan keputusan, pembuktian fiskal, layanan publik, dll) merupakan informasi yang mengendap pada suatu media baik kertas maupun non-kertas yang belum atau tidak dipublikasikan (unpublished recorded information) dan sekaligus records management.

Pengelolaan kearsipan dinamis yang baik selalu ditandai dengan pengaturan informasinya yang dapat digunakan secara langsung untuk penyelesaian administrasi (proses pengambilan keputusan merupakan bagian dari penyelesaian administrasi).

Manajemen Records adalah kontrol sistematis terhadap semua catatan dari p enciptaan atau penerimaan, melalui pengolahan, distribusi, organisasi, penyimpanan, dan pengambilan, untuk disposisi akhirnya. (Read : 2010)

Manajemen kearsipan merupakan sebuah sistem yang mencakup keseluruhan aktivitas dari daur hidup arsip (life cycle of a records). Daur hidup arsip meliputi penciptaan (creation and receipt), pengurusan (ditribution), penggunaan ( use), pemeliharaan (maintenance), dan penentuan nasib akhir atau penyusutan (disposition) (Ricks : 1992). Masing-masing tahapan tersebut merupakan sub-sistem tersendiri yang saling berkaitan secara fungsional. Apabila


(53)

salah satu sub-sistem tersebut tidak berjalan maka akan menganggu keseluruhan proses sistem manajemen kearsipan.

Setidak-tidaknya terdapat empat alasan pokok mengapa manajemen kearsipan sangat diperlukan, pertama pusat ingatan kolektif instansi (corporate memory), kedua sebagai penyedia data atau informasi bagi pengambilan keputusan (decisions making), ketiga sebagai bahan pendukung proses pengadilan (litigation support), dan keempat penyusutan berkas kerja (Sauki :1999). Dalam sistem manajemen kearsipan harus mengandung tida komponen pokok yakni inputs, processes, dan outputs. Komponen input dalam sistem manajemen kearsipan merupakan faktor yang sangat penting dalam menggerakkan proses untuk mencapai tujuan oraganisasi. Komponen input dapat terdiri dari informasi (yang terekam dalam media kertas, elektronik, atau audio-visual), sarana dan prasarana (termasuk alat-alat kearsipan dan petunjuk manual untuk sistem kearsipan yang diterapkan), dana, dan sumber daya manusia.


(54)

Gambar 2.3. Life cycle of the records

Adapun proses mencakup pengelolaan informasi yang terkandung dalam arsip mulai dari penciptaan, pengurusan, penggunaan, pemeliharaan, dan penyusutan. Dari sebuah proses manajemen kearsipan akhirnya akan tercipta komponen output yakni informasi yang siap digunakan untuk fungsi primer (penunjang aktivitas instansi). Informasi sebagai input dapat berupa arsip kertas dan non-kertas. Equipment dan supplies dapat berupa perangkat keras dan perangkat lunak sedangkan money sebagi sumber pendanaan yang diperlukan untuk perencaan, pelaksanaan, dan operasional, serta kontrol. Sementara itu people adalah SDM yang dibutuhkan untuk mendukung sistem manajemen kearsipan adalah bentul-betul profesional. Komponen-komponen tersebut merupakan kesatuan subsistem sebagai komponen dasar dalam sistem manajemen kearsipan. Apabila salah satu komponen dalam sub-sistem tersebut tidak berjalan maka akan mengacaukan sub-sistem yang lain atau dalam konteks ini proses manajemen kearsipan akan mengalami hambatan-hambatan. Komponen proses adalah keseluruhan total dari fungsi-fungsi sistem manajemen kearsipan yakni records creation/receipt, distribution, use, maintenance, dan disposition. Records management merupakan sebuah sistem yang mencakup keseluruhan aktivitas dari daur hidup arsio (life cycle of a records). Daur hidup arsip meliputi creation and receipt (correspondence, forms, reports, drawings, copies, microform, computer input/output), distribution (internal and external), use (decision making, documentation, response, reference, legal requirements), maintenance (file,


(55)

retrieve, transfer), disposition (inactive storage, archive, discard, destroy). (Ricks : 1992)

Pengertian lembar disposisi adalah suatu formulir yang disertakan pada surat masuk sebagai sarana untuk mencatumkan disposisi/ pengarahan/ catatan dari pejabat yang berwenang atau yang memperolah delegasi wewenang untuk menyelesaikan atau menangani substansi surat serta sebagi sarana pengendalian yang berisi informasi perkembangan penanganan surat atau berkas.

2.10. Object Oriented Analysis and Design (OOAD)

OOAD adalah metode analisis yang memeriksa requirements dari sudut pandang kelas-kelas dan objek yang ditemui dalam ruang lingkup permasalahan yang mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem. OOAD merupakan cara baru dalam memikirkan suatu masalah dengan menggunakan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek, yang merupakan kombinasi antara struktur data dan perilaku dalam satu entintas.

OOAD mencakup analisis dan desain sebuah sistem dengan pendekatan objek, yaitu analisis berorientasi objek (OOA) dan desain berorientasi objek (OOD). OOA adalah metode analisis yang memeriksa requirement (syarat/keperluan yang harus dipenuhi sebuah sistem) dari sudut padang kelas-kelas dan objek-objek yang ditemui dalam ruang lingkup perusahan. Sedangkan OOD adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem.


(56)

Flowchart adalah bagan – bagan yang mempunyai arus yang menggambarkan langkah – langkah suatu masalah. Flowchart merupakan cara penyajian dari suatu algoritma (Ladjamuddin : 2005). Flowchart menggambarkan logika – logika yang berjalan pada proses di dalam aplikasi. Ada 2 macam flowchart yang menggambarkan proses dengan komputer:

1. Sistem flowchart

Bagan yang memperlihatkan urutan proses dalam sistem dengan menunjukkan alat media input, output, serta jenis media penyimpanan dalam proses pengolahan data.

2. Program flowchart

Bagan yang memperlihatkan instruksi yang digambarkan dengan simbol tertentu untuk memecahkan masalah dalam suatu program. (Ladjamuddin : 2005)

Dengan menggunakan flowchart maka kerja dari suatu proses dapat dipantau untuk pengembangan atau perbaikan.

Flowchart disusun dengan simbol. Simbol ini dipakai sebagai alat bantu menggambarkan proses di dalam program. Simbol-simbol yang digunakan dapat dibagi menjadi 3 (tiga) kelompok, yaitu :

1. Flow Direction Symbols (Simbol Penghubung atau Alur) Tabel 2.1 Simbol Penghubung (Ladjamudin : 2005)

No Symbol Nama dan Keterangan

1. Symbol arus /flow

Untuk menyatakan jalannya arus suatu proses


(57)

2. Simbol communicationlink

Untuk menyatakan bahwa ada suatu transisi suatu data / informasi dari satu lokasi kelokasi lainnya

3. Simbol connector

Untuk menyatakan sambungan dari satu proses ke proses lainnya dalam halaman / lembar yang sama

4. Simbol offlineconnector

Untuk menyatakan sambungan dari satu proses ke proses lainnya dalam halaman / lembar yang berbeda

2. Processing Symbols (Simbol Proses)

Simbol yang menunjukkan jenis operasi pengolahan dalam suatu proses / prosedur, simbol-simbol tersebut adalah :

Tabel 2.2 Simbol Proses Flowchart (Ladjamudin: 2005).

No Symbol Nama dan Keterangan

1.

Simbol Offline Connector

Untuk menyatakan sambungan dari satu proses ke proses lainnya kedalam halaman/lembar yang berbeda

2. Simbol Manual

Untuk menyatakan suatu tindakan (proses) yang tidak dilakukan oleh

komputer(manual)

3. Simbol Decision/logika

Untuk menunjukkan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan jawaban, ya/tidak

4. Simbol Predefined Proses

Untuk menyatakan penyediaan tempat penyimpanan suatu pengolahan untuk memberi harga awal


(58)

5. Simbol Terminal

Untuk menyatakan permulaan atau akhir suatu program

6. Simbol KeyingOperation

Untuk menyatakan segala jenis operasi yang diproses dengan menggunakan suatu mesin yang mempunyai keyboard

7. Simbol off-linestorage

Untuk menunjukkan bahwa data dalam symbol ini akan disimpan ke suatu media tertentu

8. Simbol ManualInput

Untuk memasukkan data secara manual dengan menggunakan online keyboard

3. Input-output Symbols

Simbol yang menunjukkan jenis peralatan yang digunakan sebagai media input atau output, simbol-simbol tersebut adalah : Tabel 2.3 Simbol input output flowchart (Ladjamudin : 2005).

No Symbol Nama dan Keterangan

1. Simbol Input-output

Untuk menyatakan proses input dan output tanpa tergantung dengan jenis peralatannya

2. Simbol PunchedCard

Untuk menyatakan input berasal dari kartu atau output ditulis ke kartu

3. Simbol Magnetic-tapeunit

Untuk menyatakan input berasal dari pita magnetik atau output disimpan ke pita


(59)

4. Simbol DiskStorage

Untuk menyatakan input berasal dari disk atau output disimpan ke disk

5. Simbol document

Untuk mencetak laporan ke printer

6. Simbol display

Untuk menyatakan peralatan output yang digunakan berupa layar (video, komputer)

2.12. Unified Modelling Language (UML)

UML didefinisikan sebagai solusi notasi diagram untuk mengambarkan artefak pada Object-Oriented Analysis and Design (OOAD). Dengan UML kita bisa memvisualisasikan, menetapkan, membuat dan mendokumentasikan aplikasi sofware kita. Saat sistem software menjadi lebih besar dan lebih kompleks, kita perlu untuk mengatur kekompleksan tersebut dan dalam arti menyederhanakannya sehingga kita bisa lebih mengertinya. (Dharwiyanti : 2003)

Dengan menggunakan diagram-diagram UML, developer dapat melakukan pemrograman kode yang biasa dikenal dengan sebutan forward engineering, yaitu kode dari model-model UML.

Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah


(60)

ada sebelum: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modelling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering). (Dharwiyanti : 2003)

Tabel 2.4. Notasi UML

No Notasi Keterangan

1 Class Diagram, digunakan untuk

mengambarkan kelas-kelas program. Terdiri atas nama kelas, atribute yaitu properties yang dimiliki oleh kelas, dan operation yaitu aktifitas yang dapat dilakukan oleh kelas tersebut

2. Relationship merupakan hubungan antar class. Dapat berupa one to one, one to many, maupun many to one

3. Aktor merupakan pelaku-pelaku yang terlibat

di dalam sistem

4. Use case merupakan penjelasan

kegiatan-kegiatan yang ada di dalam sistem

5. Initial node digunakan sebagai notasi awal dari proses yang dijalankan.

6. Action merupakan notasi yang

menggambarkan aksi yang terjadi di dalam suatu proses

7. Activity Final Node merupakan notasi yang melambangkan akhir dari sebuah proses

8. Activity merupakan aktifitas yang ada di dalam sistem. Biasa digunakan pada proses yang melibatkan proses lainnya.


(61)

9. Activity dengan parameter biasa digunakan pada proses yang melibatkan proses lainnya serta mengambil parameter dari proses tersebut.

10. Lifeline merupakan state dari sebuah proses yang ada di dalam sistem. Nantinya, setiap bagian dari proses akan berhenti pada lifeline yang sesuai.

Diagram-diagram yang terdapat di dalam pemodelan UML adalah sebagai berikut:

1. Use Case Diagram

Use Case Diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem.


(62)

Gambar 2.4. Contoh Use-case Diagram 2. Class Diagram

Class diagram adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class diagram menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dari deskripsi class, package, dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.

Class diagram memiliki tiga area pokok: 1. Nama (dan stereotype)

2. Atribut 3. Metoda


(63)

Gambar 2.5. Contoh Class Diagram 3. Statechart Diagram

Statechart Diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima. Pada umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram).

4. Activity Diagram

Activity Diagram menggambarkan berbagai alur aktivitas dalam sistem yang sedang dirancang, bagaiumana masing-masing alur berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.


(64)

Gambar 2.6. Contoh Activity Diagram

Activity Diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu, activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.

5. Sequence Diagram

Sequence Diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasul pengguna, display, dan sebagainya) berupa


(1)

$id_surat = $this->input->post('surat');

$dari = $this->input->post('dari');

$untuk = $this->input->post('user');//echo $untuk;

$keterangan = $this->input->post('keterangan');

$disposisi_surat =

$this->input->post('disposisi_surat');

$status_surat_disposisi =

$this->input->post('status_surat_disposisi');

$this-

>model_notifikasi_internal->add_status_surat($id_surat,$dari,$un tuk,$keterangan,$disposisi_surat,$sta tus_surat_disposisi);

}

public function update_status_surat(){

$id_surat = $this->input->post('id_surat');

$status_surat = $this->input->post('status_surat');

$dari = $this->session->userdata('nama_user');

$untuk = $this->input->post('user');

$keterangan = $this->input->post('keterangan');//echo $keterangan;

$this-

>model_notifikasi_internal->update_status_surat($id_surat,$statu s_surat,$dari,$untuk,$keterangan);

}

public function update_surat(){

$id_surat = $this->input->post('id_surat');

$this- >model_notifikasi_internal->update_surat($id_surat);

}

public function update_disposisi(){

$id_disposisi = $this->input->post('id_disposisi');

$id_surat = $this->input->post('id_surat');

$dari = $this->input->post('untuk');

$untuk = $this->input->post('user');

$keterangan = $this->input->post('keterangan');

$disposisi_status =

$this->input->post('disposisi_status'); $this-

>model_notifikasi_internal->update_disposisi($id_disposisi,$id_s urat,$dari,$untuk,$keterangan,$dispos isi_status);

}

public function

get_count_notifikasi($act='',$id='') {

$data['act'] = $act; $id_user = $this->session->userdata('id_user');

$data['surat_data']=$this- >model_notifikasi_internal->get_notifikasi_in($id_user);

$data['data_surat'] = $this->model_notifikasi_internal->get_by_surat($id);

$this->load->view('header',$data);

$this->load->view('notifikasi_internal/kotak_masu k', $data);

$this->load->view('footer');

}

public function

get_count_disposisi($act='',$id='') {

$data['act'] = $act; $id_user = $this->session->userdata('id_user');

$root_jabatan= $this->session->userdata('root_jabatan'); $id_jabatan = $this->session->userdata('id_jabatan');

$data['array_user'] =

$this->model_surat->get_user($id_user);

$data['result_user'] = $this->model_notifikasi_internal->get_user($id_user,$root_jabatan);

$data['disposisi_data']=$this-

>model_notifikasi_internal->get_disposisi($id_user);

$data['disposisi_surat'] = $this->model_notifikasi_internal->get_by_surat_disposisi($id);

$this->load->view('header',$data);

$this->load->view('notifikasi_internal/kotak_disp osisi', $data);

$this->load->view('footer');

}

public function detail($id_disposisi)

{

$data['detail_data']=$this-

>model_notifikasi->detail($id_disposisi);

$this->load->view('notifikasi_internal/detail',$d ata);

}

public function checbox_user(){

$cariUser = $this->input->post('cariUser');

$id_user = $this->session->userdata('id_user');

$root_jabatan= $this->session->userdata('root_jabatan');


(2)

$data['user_check']=$this-

>model_notifikasi_internal->checbox_user($cariUser,$id_user,$roo t_jabatan);

$this->load->view('notifikasi_internal/tampil_che ckbox',$data);

} }

…/manajemen_user/application/controlle

rs/disposisi.php

<?php

class Disposisi extends CI_Controller {

public function __construct() {

parent::__construct(); $this->model_session->cek_session();

$this->load->model('model_disposisi'); $this->load->model('model_surat');

$this->load->helper('download');

// Your own constructor code

}

public function index($act='',$id='')

{

$jsHeader = '<script src="'.base_url().'js/javascript.js"> </script>';

$data['jsHeader'] = $jsHeader;

$data['act'] = $act; $data['page'] = 'surat';

$id_user = $this->session->userdata('id_user');

$data['result_user'] =

$this->model_disposisi->get_user($id_user);

$data['result_surat'] =

$this->model_disposisi->get_surat_by();

$data['data_disposisi'] =

$this->model_disposisi->get_by_surat_disposisi($id); $this->load->view('header',$data);

$this->load->view('disposisi/index',$data);

$this->load->view('footer');

}

public function tampilkan_subkategori()

{

$this->load->library('fungsi');

$tipe_surat = $this->uri->segment(3);//echo $jabatan;

$subkategori = $this-

>model_disposisi->get_nama_surat($tipe_surat);

echo $this->fungsi->create_combobox('surat',$subkategori ,'id_surat','no_surat','','');

}

public function get_disposisi() {

$id_user = $this->session->userdata('id_user');

$kategori=$this->input->post('kategori');//echo $kategori;

$cari=$this->input->post('cari');

if($kategori=='' and $cari==''){

$this->db->select('*');

$this->db->from('disposisi_surat');

$this->db->order_by('id_disposisi','DESC');

}elseif($kategori!='' and $cari!=''){

$this->db->select('*');

$this->db->from('disposisi_surat');

$this->db->like($kategori,$cari);

$this->db->order_by('id_disposisi','DESC');

}elseif($kategori=='semua' and $cari==''){

$this->db->select('*');

$this->db->from('disposisi_surat');

$this->db->order_by('id_disposisi','DESC');

}

$getData = $this->db->get('');

$a = $getData->num_rows();

$config['base_url'] = base_url().'index.php/disposisi/get_d isposisi/'; //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->initialize($config); //initialize pagination

$data['title'] = 'menampilkan list notifikasi surat';

$data['array_disposisi'] =


(3)

$this->model_disposisi->get_all_disposisi($config['per_page'

],$this->uri->segment(3),$kategori,$cari); $this->load->view('header',$data);

$this->load->view('disposisi/index', $data);

$this->load->view('footer');

}

public function insert(){ $id_surat = $this->input->post('surat');

$dari = $this->input->post('dari');

$untuk = $this->input->post('user');

$disposisi_status =

$this->input->post('disposisi_status'); $status_surat_disposisi =

$this->input->post('status_surat_disposisi'); $tipe_surat_disposisi =

$this->input->post('tipe_surat_disposisi');

$this-

>model_disposisi->insert($id_surat,$dari,$untuk,$dispo sisi_status,$status_surat_disposisi,$ tipe_surat_disposisi);

}

public function update(){ $id_disposisi = $this->input->post('id_disposisi');

$id_surat = $this->input->post('surat');

$dari = $this->input->post('dari');

$untuk = $this->input->post('user');

$disposisi_status =

$this->input->post('disposisi_status'); $status_surat_disposisi =

$this->input->post('status_surat_disposisi'); $tipe_surat_disposisi =

$this->input->post('tipe_surat_disposisi');

$this-

>model_disposisi->update($id_disposisi,$id_surat,$dari ,$untuk,$disposisi_status,$status_sur at_disposisi,$tipe_surat_disposisi);

}

public function delete($id_disposisi){

$this-

>model_disposisi->delete($id_disposisi); }

public function detail($id_disposisi)

{

$data['detail_data']=$this-

>model_disposisi->detail($id_disposisi);

$this->load->view('disposisi/detail',$data);

}

public function cetak_disposisi()

{

$id=$this->input->post("id");//print_r($id);

$data['cetak_laporan']=$this-

>model_disposisi->cetak_disposisi($id);

$this->load->view('disposisi/cetak', $data); }

public function cetak_ALLdisposisi()

{

$data['cetak_laporan']=$this-

>model_disposisi->cetak_ALLdisposisi();

$this->load->view('disposisi/cetak', $data); }

}

…/manajemen_user/application/controlle

rs/bagian.php

<?php

class Bagian extends CI_Controller { public function __construct() {

parent::__construct(); $this->model_session->cek_session();

$this->load->model('model_bagian');

$this->load->model('model_user');

// Your own constructor code

}

public function index($act='',$id='')

{

$jsHeader = '<script src="'.base_url().'js/javascript.js"> </script>';

$data['jsHeader'] = $jsHeader;

$data['act'] = $act; $data['page'] = 'bagian';

$data['data_bagian'] = $this->model_bagian->get_by_id($id);

$data['result_jabatan'] = $this->model_user->get_jabatan();

$this->load->view('header',$data);

$this->load->view('bagian/index', $data);

$this->load->view('footer');

}

public function get_bagian() {

$kategori=$this->input->post('kategori');//echo $kategori;


(4)

$cari=$this->input->post('cari');

if($kategori=='' and $cari==''){

$this->db->select('*');

$this->db->from('mst_bagian');

$this->db->order_by('id_bagian','DESC');

}elseif($kategori!='' and $cari!=''){

$this->db->select('*');

$this->db->from('mst_bagian');

$this->db->like($kategori,$cari);

$this->db->order_by('id_bagian','DESC');

}elseif($kategori=='semua' and $cari==''){

$this->db->select('*');

$this->db->from('mst_bagian');

$this->db->order_by('id_bagian','DESC');

}

$getData = $this->db->get('');

$a = $getData->num_rows();

$config['base_url'] = base_url().'index.php/bagian/get_bagi an/'; //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->initialize($config); //initialize pagination

$data['title'] = 'menampilkan isi bagian';

$data['detail'] =

$this->model_bagian- >get_all($config['per_page'],$this->uri->segment(3),$kategori,$cari);

$this->load->view('header',$data);

$this->load->view('bagian/index', $data);

$this->load->view('footer');

}

public function insert() {

$nama_bagian = $this->input->post('nama_bagian');

$kode_bagian = $this->input->post('kode_bagian');

$keterangan = $this->input->post('keterangan');

$this->model_bagian->insert($nama_bagian,$kode_bagian,$ke terangan);

$this->index(); }

public function update() {

$id_bagian = $this->input->post('id_bagian');

$nama_bagian = $this->input->post('nama_bagian');

$kode_bagian = $this->input->post('kode_bagian');

$keterangan = $this->input->post('keterangan');

$this->model_bagian->update($id_bagian,$nama_bagian,$kode _bagian,$keterangan);

$this->index(); }

public function delete($id) {

$this->model_bagian->delete($id);

$this->index(); }

public function cetak_bagian() {

$id=$this->input->post("id");//print_r($id);

$data['cetak_laporan']=$this->model_bagian->cetak_bagian($id);

$this->load->view('bagian/cetak', $data); }

public function cetak_ALLbagian()

{

$data['cetak_laporan']=$this->model_bagian->cetak_Allbagian();

$this->load->view('bagian/cetak', $data); }

}

…/manajemen_user/application/controlle

rs/history.php

<?php

class History extends CI_Controller { public function __construct() {

parent::__construct(); $this->model_session->cek_session();

$this->load->model('model_history');

$this->load->model('model_surat');

$this->load->helper('download');


(5)

// Your own constructor code

}

public function index() {

$jsHeader = '<script src="'.base_url().'js/javascript.js"> </script>';

$kategori=$this->input->post('kategori');//echo $kategori;

$cari=$this->input->post('cari');

$data['jsHeader'] = $jsHeader;

$data['page'] = 'surat';

if($kategori=='' and $cari==''){

$this->db->select('a.id_surat, a.no_surat, a.tipe_surat, a.asal_surat, a.dari, a.id_user,b.nama_user, a.perihal, a.keterangan, a.tanggal_entry, a.waktu_entry, a.status_surat, a.status_disposisi');

$this->db->from('mst_surat a,mst_user b');

$this->db->where('a.id_user = b.id_user');

$this->db->where('a.status_disposisi','disposis i');

$this->db->order_by('a.id_surat','DESC');

}elseif($kategori!='' and $cari!=''){

$this->db->select('a.id_surat, a.no_surat, a.tipe_surat, a.asal_surat, a.dari, a.id_user,b.nama_user, a.perihal, a.keterangan, a.tanggal_entry, a.waktu_entry, a.status_surat, a.status_disposisi');

$this->db->from('mst_surat a,mst_user b');

$this->db->where('a.id_user = b.id_user');

$this->db->where('a.status_disposisi','disposis i');

$this->db->like('a.'.$kategori,$cari);

$this->db->order_by('a.id_surat','DESC');

}elseif($kategori=='semua'){ $this->db->select('a.id_surat, a.no_surat, a.tipe_surat, a.asal_surat, a.dari, a.id_user,b.nama_user, a.perihal, a.keterangan, a.tanggal_entry, a.waktu_entry, a.status_surat, a.status_disposisi');

$this->db->from('mst_surat a,mst_user b');

$this->db->where('a.id_user = b.id_user');

$this->db->where('a.status_disposisi','disposis i');

$this->db->order_by('a.id_surat','DESC');

}

$getData = $this->db->get('');

$a = $getData->num_rows();

$config['base_url'] = base_url().'index.php/history'; //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->initialize($config); //initialize pagination

$data['title'] = 'menampilkan list surat';

$data['array_surat'] =

$this->model_history->get_all_surat($config['per_page'],$t

his->uri->segment(3),$kategori,$cari); $this->load->view('header',$data);

$this->load->view('history/index', $data);

$this->load->view('footer');

}

public function history_surat($id_surat)

{

$data['all_history']=$this-

>model_history->history_surat($id_surat); $this->load->view('history/history',$data);

} }

…/manajemen_user/application/controlle

rs/laporan.php

<?php

class Laporan extends CI_Controller { public function __construct() {

parent::__construct(); $this->model_session->cek_session();

$this->load->model('model_laporan');

// Your own constructor code

}

public function index($act='',$id='')


(6)

{

$jsHeader = '<script src="'.base_url().'js/javascript.js"> </script>';

$data['jsHeader'] = $jsHeader;

$data['act'] = $act;

$this->load->view('header',$data); $this->load->view('laporan/index', $data);

$this->load->view('footer');

}

public function cari_laporan() {

$tipe_surat=$this->input->post("tipe_surat");//echo $tipe_surat;

$tgl_awal=$this->input->post("tgl_awal");

$tgl_akhir=$this->input->post("tgl_akhir");

$this->load->view('header'); $data['data_laporan']=$this-

>model_laporan->cari_laporan($tipe_surat,$tgl_awal,$ tgl_akhir);

if($tipe_surat=='keluar'){ $this->load->view('laporan/laporanKeluar', $data);

}else{

$this->load->view('laporan/laporan', $data);

}

$this->load->view('footer'); }

public function preview_laporan()

{

$id=$this->input->post("id");//print_r($id);

$data['preview_laporan']=$this

->model_laporan->preview_laporan($id);

$this->load->view('laporan/preview', $data); }

public function preview_laporan_keluar()

{

$id=$this->input->post("id");//print_r($id);

$data['preview_laporan']=$this

->model_laporan->preview_laporan_keluar($id);

$this->load->view('laporan/preview_keluar', $data);

}

public function cetak_laporan()

{

$this->load->library('cezpdf');

$id=$this->input->post("id");//print_r($id);

$judul_kolom=array(

'no_surat'=>'Nomor Surat',

'asal_surat'=>'Dari',

'dari'=>'Entry',

'nama_user'=>'Untuk', 'perihal'=>'Perihal',

'keterangan'=>'Keterangan',

'status_surat'=>'Status Surat' );

$data['preview_laporan']=$this ->model_laporan->cetak_laporan($id);

$text = "Laporan Surat";

$this->cezpdf->ezText($text,12,array('justification ' => 'center'));

$this->cezpdf->ezText("\n", 7);

$this->cezpdf->ezTable($data['preview_laporan'],$ju dul_kolom);

$this->cezpdf-

>ezStream(array('Content-Disposition'=>'nama_file.pdf')); }

public function cetak_laporan_keluar()

{

$this->load->library('cezpdf');

$id=$this->input->post("id");//print_r($id);

$judul_kolom=array(

'no_surat'=>'Nomor Surat',

'tipe_surat'=>'Tipe Surat',

'tanggal_surat'=>'Tanggal',

'jenis_surat'=>'Jenis Surat',

'asal_surat'=>'Asal Surat',

'tujuan_surat_keluar'=>'Tujuan', 'perihal'=>'Perihal Surat',

'keterangan'=>'Keterangan' );

$data['preview_laporan']=$this

->model_laporan->cetak_laporan_keluar($id); $text = "Laporan Surat Keluar";

$this->cezpdf->ezText($text,12,array('justification ' => 'center'));

$this->cezpdf->ezText("\n", 7);

$this->cezpdf->ezTable($data['preview_laporan'],$ju dul_kolom);

$this->cezpdf-

>ezStream(array('Content-Disposition'=>'nama_file.pdf')); }