Anda di halaman 1dari 60

Formulir Permohonan Pencatatan Ciptaan

Data Permohonan
Nomor Permohonan : EC00202025939
Tanggal Pengajuan : 04-08-2020
Jenis Ciptaan : Program Komputer
Judul Ciptaan : SIPASJANDA (Sistem Informasi Pengarsipan Surat dan Jadwal Agenda) STIKes
Muhammadiyah Tegal
Uraian Ciptaan : SIPASJANDA adalah sebuah Sistem Informasi yang berguna untuk mendata dan
manajemen data surat masuk maupun surat keluar dan penjadwalan agenda kegiatan
untuk diproses sehingga menghasilkan memudahkannya penyampaian informasi
dengan cepat dengan luaran berupa laporan dan statistik yang dapat digunakan
manajemen STIKes Muhammadiyah Tegal.
Tanggal dan tempat : Tegal,04-08-2020
diumumkan pertama kali

Pencipta
Nama Alamat Kebangsaan
Husni Faqih Jl. Mangga RT.01/RW.04, Kel.Procot, Kec.Slawi, Kab.Tegal Indonesia
52412
Zamghoni Mukhotob Dukuh Kedawung RT.01/RW.01, Ds. Padaharja, Kec. Kramat, Indonesia
Kab. Tegal
Fandhilah Jl. Porong RT.04/RW.04, Kebondalem, Pemalang Indonesia
Ery Suryanti Dukuh Wungu Pangkah RT.08/RW.06, Ds. Pangkah, Indonesia
Kec.Pangkah, Kab.Tegal
Hendra Lesmana Jl. Makam Joglo RT.08/RW.03, Kel.Joglo, Kec.Kembangan, Indonesia
Kab.Brebes
Ratnawati Mahkota Regency Blok K 2/23 RT.07/RW.08, Kel.Sirnabaya, Indonesia
Kec.Telukjambe Timur, Karawang 41316

Pemegang
Nama Alamat Kebangsaan
Husni Faqih Jl. Mangga RT.01/RW.04, Kel.Procot, Kec.Slawi, Kab.Tegal Indonesia
52412
Zamghoni Mukhotob Dukuh Kedawung RT.01/RW.01, Ds. Padaharja, Kec. Kramat, Indonesia
Kab. Tegal 52181
Fandhilah Jl. Porong RT.04/RW.04, Kebondalem, Pemalang 52312 Indonesia
Ery Suryanti Dukuh Wungu Pangkah RT.08/RW.06, Ds. Pangkah, Indonesia
Kec.Pangkah, Kab.Tegal 52471
Hendra Lesmana Jl. Makam Joglo RT.08/RW.03, Kel.Joglo, Kec.Kembangan, Indonesia
Kab.Brebes 11460
Ratnawati Mahkota Regency Blok K 2/23 RT.07/RW.08, Kel.Sirnabaya, Indonesia
Kec.Telukjambe Timur, Kab.Karawang 41316

Lampiran
KTP
NPWP
Peringatan
Detail
Jakarta, 04-08-2020
Pemohon/Kuasa

t.t.d.

Tanda Tangan
Nama Lengkap Husni Faqih

Catatan: Jika dalam jangka waktu 5(lima) hari kerja belum mendapatkan surat pencatatan ciptaan, agar menghubungi
email: permohonan.ciptadesain@dgip.go.id

Powered by TCPDF (www.tcpdf.org)


Scan KTP Pemohon dan Pencipta
Aplikasi SIPASJANDA (Sistem Informasi Pengarsipan Surat dan Jadwal Agenda)
STIKes Muhammadiyah Tegal
Manual Penggunaan & Source Code Program E-Squad Barber Course

SIPASJANDA
(Sistem Informasi Pengarsipan Surat dan Jadwal Agenda) STIKes Muhammadiyah Tegal

Manual Penggunaan dan Source Code

Abstract
SIPASJANDA adalah sebuah SI yang berguna untuk mendata dan manajemen data surat
masuk maupun surat keluar dan penjadwalan agenda kegiatan untuk diproses sehingga
menghasilkan memudahkannya penyampaian informasi dengan cepat dengan luaran berupa
laporan dan statistik yang dapat digunakan manajemen STIKes Muhammadiyah Tegal.

Pencipta:
1. Husni Faqih
2. Zamghoni Mukhotob
3. Fandhilah
4. Ery Suryanti
5. Hendra Lesmana
6. Ratnawati
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

Manual Penggunaan program dan Source Code


=============================================
Use Case Diagram Aplikasi SIPASJANDA

Gambar 1. Use Case Diagram Aplikasi SIPASJANDA


Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

Class Diagram Aplikasi SIPASJANDA

Gambar 2. Class Diagram Aplikasi PRELOC SSI


Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

Manual Penggunaan program sbb:


1. Halaman Home
Terdapat menu home, agenda, statistik, kontak, pencarian dan login. Berikut langkah-
lengkah mengakses aplikasi SIPASJANDA:
a. Buka browser (Mozilla Firefox, Google Chrome, Microsoft Edge dll).
b. Masukkan url berikut http://localhost/sipasjanda

Gambar 3. Halaman Home


Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

2. Halaman Agenda
Menampilkan seluruh agenda yang telah dibuat. Untuk membuka halaman ini dengan
cara klik menu Agenda pada halaman home.

Gambar 4. Halaman Agenda


Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

3. Halaman Statistik
Menampilkan seluruh statistik dari data surat masuk, surat kelar dan jadwal agenda
dalam grafik. Untuk membuka halaman ini dengan cara klik menu Statistik pada
halaman home.

Gambar 5. Halaman Statistik


Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

4. Form Login
Form Login User digunakan untuk autentikasi bagi para user atau staff yang terdaftar
dengan memasukan username dan password sesuai jenis akun User atau
Administrator. Untuk membuka halaman ini dengan cara klik menu Login pada
halaman home.

Gambar 6. Form Login User

5. Halaman User
Pada halaman ini user hanya bisa melihat data. Pada halaman user yang terdapat
menu home, agenda, surat masuk dan surat keluar, kode surat yang terdiri dari kode
pokok masalah dan kode indeks khusus, laporan, edit profil, pengumuman dan logout.

Gambar 7. Halaman User Home


Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

Gambar 8. Halaman User Agenda

Gambar 9. Halaman User Surat Masuk

Gambar 10. Halaman User Surat Keluar


Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

Gambar 11. Halaman User Laporan Surat Masuk

Gambar 12. Halaman User Laporan Surat Keluar

Gambar 13. Halaman User Edit Profile


Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

6. Halaman Admin
Pada halaman ini berisi menu home, agenda, surat masuk dan keluar, kode surat yang
terdiri dari kode pokok masalah dan kode indeks khusus, laporan surat masuk dan
keluar, manajemen admin, ketentuan, edit profil dan logout. Pada halaman ini admin
juga bisa melakukan penambahan data, penghapusan data, pengeditan data, dan
pengimporan data.

Gambar 14. Halaman Admin Home

Gambar 15. Halaman Admin Agenda


Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

Gambar 16. Halaman Admin Surat Masuk

Gambar 17. Halaman Admin Surat Keluar

Gambar 18. Halaman Admin Laporan Surat Masuk


Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

Gambar 19. Halaman Admin Laporan Surat Keluar

Gambar 20. Halaman Admin Manajemen User


Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

Source Code Aplikasi

1. Index
a. Controller Home
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Home extends CI_Controller{
private $folder = "frontend/home/";
private $foldertemplate = "frontend/";
public function __construct()
{
parent::__construct();
//Codeigniter : Write Less Do More
}
function index()
{
$jum=$this->M_agenda->get();
$page=$this->uri->segment(3);
if(!$page):
$offset = 0;
else:
$offset = $page;
endif;
$limit=3;
$config['base_url'] = base_url() . 'home/index/';
$config['total_rows'] = $jum->num_rows();
$config['per_page'] = $limit;
$config['uri_segment'] = 3;
//Tambahan untuk styling
$config['full_tag_open'] = '<nav aria-label="Page navigation example"><ul class="pagination
justify-content-center">';
$config['full_tag_close'] = '</ul></nav>';
$config['num_tag_open'] = '<li class="page-item"><span class="page-link">';
$config['num_tag_close'] = '</span></li>';
$config['cur_tag_open'] = '<li class="page-item active"><span class="page-link">';
$config['cur_tag_close'] = '<span class="sr-only">(current)</span></span></li>';
$config['next_tag_open'] = '<li class="page-item"><span class="page-link">';
$config['next_tagl_close'] = '<span aria-hidden="true">&raquo;</span></span></li>';
$config['prev_tag_open'] = '<li class="page-item"><span class="page-link">';
$config['prev_tagl_close'] = '</span>Next</li>';
$config['first_tag_open'] = '<li class="page-item"><span class="page-link">';
$config['first_tagl_close'] = '</span></li>';
$config['last_tag_open'] = '<li class="page-item"><span class="page-link">';
$config['last_tagl_close'] = '</span></li>';
$config['first_link'] = 'Awal';
$config['last_link'] = 'Akhir';
$config['next_link'] = 'Next';
$config['prev_link'] = 'Previous';
$this->pagination->initialize($config);
$data = array(
'page' => 'Home',
'halaman' => $this->pagination->create_links(),
'semua_agenda' => $this->M_agenda->agenda_perhalaman($offset,$limit),
// 'agenda' => $this->M_agenda->homeget(),
);
$this->template->load($this->foldertemplate.'template',$this->folder.'data',$data);
}
function get_autocomplete(){
if (isset($_GET['term'])) {
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

$result = $this->M_surat->search($_GET['term']);
if (count($result) > 0) {
foreach ($result as $row)
$arr_result[] = array(
'label' => $row->no_surat,
);
echo json_encode($arr_result);
}
}
}
function search(){
$title=$this->input->get('title');
$data['data']=$this->M_surat->search($title);
$data['page']='Search Result';
$this->template->load($this->foldertemplate.'template',$this->folder.'search',$data);
}
public function detail($id)
{
$query = $this->M_surat->getsm($id);
if ($query->num_rows() > 0) {
$surat = $query->row();
$data = array(
'page' => 'Surat Masuk',
'subpage' => 'Detail',
'row' => $surat,
);
}
$this->template->load($this->foldertemplate.'template',$this->folder.'detail', $data);
}
public function Sdetail($id)
{
$query = $this->M_surat->get($id);
if ($query->num_rows() > 0) {
$surat = $query->row();
$data = array(
'page' => 'Surat Keluar',
'subpage' => 'Detail',
'row' => $surat,
);
}
$this->template->load($this->foldertemplate.'template',$this->folder.'detail', $data);
}
public function statistik()
{
$data = array(
'page' => 'Statistik',
'masuk' => $this->M_surat->getsm_statistik(),
'keluar' => $this->M_surat->getsk_statistik(),
'agenda' => $this->M_agenda->getagenda_statistik(),
);
$this->template->load($this->foldertemplate.'template',$this->folder.'statistik', $data);
}
public function kontak()
{
$data = array(
'page' => 'Kontak',
);
$this->template->load($this->foldertemplate.'template',$this->folder.'kontak',$data);
}
}
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

b. Model Home
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class M_agenda extends CI_Model{
public function __construct()
{
parent::__construct();
//Codeigniter : Write Less Do More
}
function get($id = null)
{
$this->db->from('agenda');
$this->db->join('surat','surat.id_surat = agenda.id_surat_agenda');
$this->db->order_by('tgl_agenda', 'DESC');
if ($id != null) {
$this->db->where('id_surat_agenda',$id);
}
$query = $this->db->get();
return $query;
}
public function getagenda_statistik()
{
$tahun = date('Y');
$this->db->from('agenda');
$this->db->where_in('YEAR(tgl_agenda)',$tahun);
$query = $this->db->get();
return $query;
}
function homeget($id = null)
{
$this->db->from('agenda');
$this->db->join('surat srt','srt.id_surat = agenda.id_surat_agenda');
$this->db->order_by('tgl_agenda', 'DESC');
$this->db->limit('12');
if ($id != null) {
$this->db->where('id_agenda',$id);
}
$query = $this->db->get();
return $query;
}
function search_surat($title){
$this->db->like('no_surat', $title , 'both');
$this->db->order_by('no_surat', 'ASC');
$this->db->limit(10);
return $this->db->get('surat')->result();
}
public function add($post)
{
$params = [
'id_surat_agenda' => $post['id_surat_agenda'],
'created' => date('Y-m-d H:i:s')
];
$this->db->insert('agenda', $params);
}
public function edit($post)
{
$params = [
'nama_agenda' => $post['nama_agenda'],
'tgl_agenda' => $post['tgl_agenda'],
'waktu' => $post['waktu'],
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

'tempat' => $post['tempat'],


'ket_agenda' => $post['ket_agenda'],
'updated_at' => date('Y-m-d H:i:s')
];
$this->db->where('id_surat_agenda', $post['id_surat_agenda']);
$this->db->update('agenda', $params);
}
function cek_id_surat_agenda($code, $id = null)
{
$this->db->from('agenda');
$this->db->where('id_surat_agenda', $code);
if($id != null){
$this->db->where('id_surat_agenda !=', $id);
}
$query = $this->db->get();
return $query;
}
public function del($id)
{
$data = $this->M_agenda->get($id)->row();
$this->db->where('id_agenda', $id);
$this->db->delete('agenda');
}
function agenda_perhalaman($offset,$limit)
{
$hsl=$this->db->query("SELECT * FROM agenda join surat srt on
id_surat=id_surat_agenda ORDER BY tgl_agenda DESC limit $offset,$limit");
// $this->db->join('surat srt','srt.id_surat = agenda.id_surat_agenda');
return $hsl;
}
}

c. Model Home
<!doctype html>
<html lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-
fit=no">
<meta name="description" content="Sistem Informasi Arsip Surat Sekolah Tinggi Ilmu
Kesehatan Muhammadiyah Tegal">
<meta name="author" content="Zamghoni Mukhotob">
<meta name="generator" content="Jekyll v3.8.6">
<meta name="theme-color" content="#563d7c">
<title>STIKes Muhammadiyah Tegal</title>
<!-- Favicons -->
<link rel="icon" href="https://stikesmutegal.ac.id/wp-
content/uploads/2019/08/cropped-Untitled-1-01-2-32x32.png" alt="favicon"
sizes="32x32" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-
awesome/5.11.2/css/all.css" integrity="sha256-
46qynGAkLSFpVbEBog43gvNhfrOj+BmwXdxFgVK/Kvc=" crossorigin="anonymous" />
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css">
<!-- custom css -->
<link rel="stylesheet" href="<?=base_url()?>/assets/frontend/css/template.css">
<!-- Bootstrap CSS -->
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity="sha384-
Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

crossorigin="anonymous">
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-
J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
integrity="sha384-
Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
integrity="sha384-
wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
crossorigin="anonymous"></script>
<!-- Custom styles for this template -->
<link href="https://getbootstrap.com/docs/4.4/examples/pricing/pricing.css"
rel="stylesheet">
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/data.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<script src="https://code.highcharts.com/modules/accessibility.js"></script>
</head>
<body>
<?php $setting=$this->db->query("SELECT * FROM setting WHERE id_setting ='1'");
foreach ($setting->result_array() as $data): ?>
<div class="d-flex flex-column flex-md-row align-items-center p-3 px-md-4 bg-white
border-bottom shadow animated fadeInDown">
<img src="<?=base_url('upload/setting/'.$data['logo_header'])?>" width="50"
height="50" class="d-inline-block align-top" alt="">
<h5 class="d-none d-lg-block my-0 mr-md-auto font-weight-normal" style="padding-
left:10px;"><?=$data['nama']?></h5>
<nav class="my-2 my-md-0 mr-md-3 ">
<a class="p-2 text-dark" href="<?=site_url('')?>" style="text-
decoration:none;">Home</a>
<a class="p-2 text-dark" href="<?=site_url('semua_agenda')?>" style="text-
decoration:none;">Agenda</a>
<a class="p-2 text-dark" href="<?=site_url('statistik')?>" style="text-
decoration:none;">Statistik</a>
<a class="p-2 text-dark" href="<?=site_url('kontak')?>" style="text-
decoration:none;">Kontak</a>
</nav>
<a class="btn btn-outline-primary" href="<?=site_url('auth')?>"><i class="fa fa-sign-in-
alt"></i> Login</a>
</div>
<div class="animated fadeIn delay-0.5s">
<link rel="stylesheet" href="<?php echo base_url().'assets/backend/css/jquery-ui.css'?>">
<?php $setting=$this->db->query("SELECT * FROM setting WHERE id_setting ='1'");
foreach ($setting->result_array() as $data): ?>
<section id="home" class="slider-1-bg pb-5 pt-5" style="background-image:
url(<?=base_url('upload/setting/'.$data['img_cover'])?>);">
<?php endforeach; ?>
<div class="pt-2 pb-5">
<div class="pricing-header px-3 py-3 pt-md-5 pb-md-4 mx-auto text-center text-white">
<h1 class="display-4 font-weight-bold animated slideInLeft">Dengan Arsip Surat <br>
Semua Jadi Rapi</h1>
<p class="lead animated fadeInUp">Sistem Informasi Pengarsipan Surat dan Jadwal
Agenda (SIPAS-JANDA)<br> STIKes Muhammadiyah Tegal</p>
</div>
<div class="container">
<div class="card shadow pb-2" style="background:#622F8E;">
<div class="card-body">
<form id="form_search" action="<?php echo site_url('home/search');?>"
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

method="GET">
<div class="row">
<div class="col-md-9">
<input type="text" name="title" class="form-control form-control-lg" id="title"
placeholder="Keyword : [Kode Surat]">
<small class="form-text text-white text-left">Contoh Pencarian: <br>
<b>211/TGS/I.3/E/XI/201</b></small>
</div>
<div class="col-md-3">
<button type="submit" class="btn btn-block btn-lg btn-primary"><i class="fas fa-fw
fa-search"></i> Cari</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</section>
<script src="<?php echo base_url().'assets/backend/js/jquery-3.3.1.js'?>"
type="text/javascript"></script>
<script src="<?php echo base_url().'assets/backend/js/jquery-ui.js'?>"
type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#title').autocomplete({
source: "<?php echo site_url('home/get_autocomplete');?>",
select: function (event, ui) {
$(this).val(ui.item.label);
$("#form_search").submit();
}
});
});
</script>
<section id="agenda">
<div class="container">
<h1 class="pt-5 pb-5 mt-5 text-center">Agenda</h1>
<?php
if ($semua_agenda->result() == null){
echo "<h5 class='text-center'>Tidak Ada Agenda</h5>";
}
?>
<div class="row">
<?php $no=1;
foreach($semua_agenda->result()as $key => $data){?>
<div class="col-lg-4">
<div class="card">
<div class="card-body">
<h5 class="card-title text-capitalize"><?=$data->nama_agenda?></h5>
<p class="card-text">
<table>
<tr>
<td><i class="far fa-calendar-alt"></i></td>
<td width="15px"> </td>
<td><?=date_indo($data->tgl_agenda)?></td>
</tr>
<tr>
<td><i class="far fa-clock"></i></td>
<td width="15px"> </td>
<td><?=$data->waktu?> WIB</td>
</tr>
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

<tr>
<td><i class="fa fa-map-marker-alt"></i></td>
<td width="15px"> </td>
<td><?=$data->tempat?></td>
</tr>
<tr>
<td><i class="fa fa-info-circle"></i></td>
<td width="15px"> </td>
<td><?=$data->ket_agenda?></td>
</tr>
</table>
</p>
<?php if ($data->status == 1 ){ ?>
<a href="<?=site_url('home/detail/'.$data->id_surat)?>" class="btn btn-sm btn-
outline-primary"><?=$data->no_surat?></a>
<?php } ?>
<?php if ($data->status == 2 ){ ?>
<a href="<?=site_url('home/Sdetail/'.$data->id_surat)?>" class="btn btn-sm btn-
outline-primary"><?=$data->no_surat?></a>
<?php } ?>
</div>
<div class="card-footer">
<small class="text-muted"><?=igDate($data->created)?></small>
</div>
</div><br>
</div>
<?php
} ?>
</div>
</div>
<div class="text-center">
<div class="pt-5 pb-5">
<?php echo $halaman;?>
<a href="<?=site_url('semua_agenda')?>" class="btn btn-outline-primary">Lihat Semua
Agenda</a>
</div>
</div>
</section>
</div>
<section class="footerdua" style="background-image:
url(<?=base_url('upload/setting/'.$data['img_footer'])?>);">
<div class="pl-5 pr-5">
<div class="row">
<div class="col-md-6">
<img src="<?=base_url('upload/setting/'.$data['logo_footer']) ?>" alt="logo"
width="100%">
<p>
<i class="fas fa-phone-alt"></i> No Telp : <a
href="tel:<?=$data['no_telp']?>"><?=$data['no_telp']?></a><br>
<i class="fa fa-envelope-open-text"></i> Email : <a
href="mailto:<?=$data['email']?>"><?=$data['email']?></a><br>
<i class="fa fa-map-marker-alt"></i> Alamat : <?=$data['alamat']?><br>
</p>
<h5><i class="fa fa-question-circle"></i> INFO PMB</h5>
<p>
<i class="fa fa-globe"></i> Website : <a href="https://<?=$data['web_pmb']?>"
target="_blank"><?=$data['web_pmb']?></a> <br>
<i class="fa fa-envelope-open-text"></i> Email : <a
href="mailto:<?=$data['email_pmb']?>"><?=$data['email_pmb']?></a> <br>
<i class="fab fa-whatsapp"></i> Whatapps 1 : <a
href="https://api.whatsapp.com/send?phone=<?=$data['wa_satu']?>"
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

target="_blank"><?=$data['wa_satu']?></a><br>
<i class="fab fa-whatsapp"></i> Whatapps 2 : <a
href="https://api.whatsapp.com/send?phone=<?=$data['wa_dua']?>"
target="_blank"><?=$data['wa_dua']?></a><br>
</p>
</div>
<div class="col-md-6">
<h5>Lokasi</h5>
<iframe class="shadow"
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3959.68019367974!
2d109.14313191402154!3d-
7.046816394910247!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x2e6f95d0d
9b542a9%3A0xa46ecd126b0ea7a3!2sHQ%20STIKes%20Muhammadiyah%20Tegal!5e0!3m
2!1sid!2sid!4v1567769465429!5m2!1sid!2sid" width="100%" height="300"
frameborder="0" style="border-radius:10px;" allowfullscreen=""></iframe>
</div>
</div>
</div>
</section>
<?php endforeach; ?>
<section class="pt-2 pb-2" style="background-color:#294164;">
<div class="container">
<footer class=" mt-2 mb-2 text-center">
<small class="d-block mb-3 text-white">&copy;<?=date('Y')?> Dikembangkan oleh
Biro Sistem Informasi STIKes Muhammadiyah Tegal</small>
</footer>
</div>
</section>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"url": "https://agenda.stikesmutegal.ac.id/",
"name": "STIKes Muhammadiyah Tegal",
"contactPoint": {
"@type": "ContactPoint",
"telephone": "08979156600",
"contactType": "Administration service"
}
}
</script>
</body>
</html>

2. Input Surat Masuk dan Surat Keluar


a. Controller
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require('./application/third_party/vendor/autoload.php');
class Surat extends CI_Controller{
private $folder = "backend/surat/";
private $foldertemplate = "backend/";
public function __construct()
{
parent::__construct();
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

belum_login();
}
// Surat Masuk
public function index()
{
$data = array(
'page' => 'Surat Masuk',
'subpage' => '',
'row' => $this->M_surat->getsm(),
'user' => $this->M_user->get(),
'bagian' => $this->M_bagian->get(),
);
$this->template->load($this->foldertemplate.'template',$this->folder.'data', $data);
}
public function form()
{
$surat = new stdClass();
$surat->id_surat= null;
$surat->id_user= null;
$surat->id_bagian_surat= null;
$surat->no_surat = null;
$surat->tgl = null;
$surat->pengirim = null;
$surat->perihal = null;
$surat->ket = null;
$surat->file_surat = null;
$data = array(
'page' => 'Surat Masuk',
'subpage' => 'Tambah',
'row' => $surat,
'bagian' => $this->M_bagian->get(),
);
if ($this->form_validation->run() == FALSE) {
$this->template->load($this->foldertemplate.'template',$this->folder.'form', $data);
}
}
public function edit($id)
{
$query = $this->M_surat->getsm($id);
if ($query->num_rows() > 0) {
$surat = $query->row();
$data = array(
'page' => 'Surat Masuk',
'subpage' => 'Edit',
'row' => $surat,
'bagian' => $this->M_bagian->get(),
);
$this->template->load($this->foldertemplate.'template',$this-
>folder.'form', $data);
} else {
$this->session->set_flashdata('error', "Data tidak ditemukan");
redirect('surat');
}
}
public function detail($id)
{
$query = $this->M_surat->getsm($id);
if ($query->num_rows() > 0) {
$surat = $query->row();
$data = array(
'page' => 'Surat Masuk',
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

'subpage' => 'Detail',


'row' => $surat,
'bagian' => $this->M_bagian->get(),
);
}
$this->template->load($this->foldertemplate.'template',$this->folder.'detail', $data);
}
public function process()
{
$post = $this->input->post(null, TRUE);
if (isset($_POST['Tambah'])) {
if($this->M_surat->cek_no_surat($post['no_surat'])->num_rows() > 0){
$this->session->set_flashdata('error', "Nomor <b>$post[no_surat]</b> sudah dipakai, silahkan
ganti dengan yang berbeda");
redirect('surat/form');
} else {
$this->M_surat->add($post);
}
}else if (isset($_POST['Edit'])) {
$this->M_surat->edit($post);
}
if ($this->db->affected_rows() > 0) {
$this->session->set_flashdata('success', 'Data berhasil disimpan');
}
redirect('surat');
}
public function del($id)
{
$this->M_surat->del($id);
if ($this->db->affected_rows() > 0) {
$this->session->set_flashdata('success', 'Data berhasil dihapus');
}
redirect('surat');
}
public function import()
{
$data = array(
'page' => 'Surat Masuk',
'subpage' => 'Import',
);
$this->template->load($this->foldertemplate.'template',$this->folder.'import', $data);
}
// file upload functionality
public function upload() {
$data = array(
'page' => 'Surat Masuk',
'subpage' => 'Import',
);
// Load form validation library
$this->form_validation->set_rules('fileURL', 'Upload File', 'callback_checkFileValidation');
if($this->form_validation->run() == false) {
$this->template->load($this->foldertemplate.'template',$this->folder.'import', $data);
} else {
// If file uploaded
if(!empty($_FILES['fileURL']['name'])) {
// get file extension
$extension = pathinfo($_FILES['fileURL']['name'], PATHINFO_EXTENSION);
if($extension == 'csv'){
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
} elseif($extension == 'xlsx') {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

} else {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
}
// file path
$spreadsheet = $reader->load($_FILES['fileURL']['tmp_name']);
$allDataInSheet = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
// array Count
$arrayCount = count($allDataInSheet);
$flag = 0;
$createArray = array('Nomor_Surat', 'Id_User', 'Tanggal_Diterima', 'Pengirim', 'Perihal',
'Keterangan');
$makeArray = array('Nomor_Surat' => 'Nomor_Surat', 'Id_User' => 'Id_User',
'Tanggal_Diterima' => 'Tanggal_Diterima', 'Pengirim' => 'Pengirim', 'Perihal' => 'Perihal', 'Keterangan' =>
'Keterangan');
$SheetDataKey = array();
foreach ($allDataInSheet as $dataInSheet) {
foreach ($dataInSheet as $key => $value) {
if (in_array(trim($value), $createArray)) {
$value = preg_replace('/\s+/', '', $value);
$SheetDataKey[trim($value)] = $key;
}
}
}
$dataDiff = array_diff_key($makeArray, $SheetDataKey);
if (empty($dataDiff)) {
$flag = 1;
}
// match excel sheet column
if ($flag == 1) {
for ($i = 2; $i <= $arrayCount; $i++) {
$addresses = array();
$no_surat = $SheetDataKey['Nomor_Surat'];
$id_user = $SheetDataKey['Id_User'];
$tgl = $SheetDataKey['Tanggal_Diterima'];
$pengirim = $SheetDataKey['Pengirim'];
$perihal = $SheetDataKey['Perihal'];
$ket = $SheetDataKey['Keterangan'];
$no_surat = filter_var(trim($allDataInSheet[$i][$no_surat]), FILTER_SANITIZE_STRING);
$id_user = filter_var(trim($allDataInSheet[$i][$id_user]), FILTER_SANITIZE_STRING);
$tgl = filter_var(trim($allDataInSheet[$i][$tgl]), FILTER_SANITIZE_STRING);
$pengirim = filter_var(trim($allDataInSheet[$i][$pengirim]), FILTER_SANITIZE_EMAIL);
$perihal = filter_var(trim($allDataInSheet[$i][$perihal]), FILTER_SANITIZE_STRING);
$ket = filter_var(trim($allDataInSheet[$i][$ket]), FILTER_SANITIZE_STRING);
$fetchData[] = array('no_surat' => $no_surat, 'id_user' => $id_user, 'tgl' => $tgl, 'pengirim'
=> $pengirim, 'perihal' => $perihal, 'ket' => $ket);
}
$data['dataInfo'] = $fetchData; //tidak perlu
$this->M_surat->setBatchImport($fetchData); //tidak perlu
$this->M_surat->importData(); //tidak perlu
} else {
$this->session->set_flashdata('error', "Please import correct file, did not match excel sheet
column");
}
$this->session->set_flashdata('success', 'Data berhasil dimport');
// $this->template->load($this->foldertemplate.'template',$this->folder.'data', $data);
redirect('surat_masuk','refresh');
}
}
}
// checkFileValidation
public function checkFileValidation($string) {
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

$file_mimes = array('text/x-comma-separated-values',
'text/comma-separated-values',
'application/octet-stream',
'application/vnd.ms-excel',
'application/x-csv',
'text/x-csv',
'text/csv',
'application/csv',
'application/excel',
'application/vnd.msexcel',
'text/plain',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
);
if(isset($_FILES['fileURL']['name'])) {
$arr_file = explode('.', $_FILES['fileURL']['name']);
$extension = end($arr_file);
if(($extension == 'xlsx' || $extension == 'xls' || $extension == 'csv') &&
in_array($_FILES['fileURL']['type'], $file_mimes)){
return true;
}else{
$this->form_validation->set_message('checkFileValidation', 'Please choose correct file.');
return false;
}
}else{
$this->form_validation->set_message('checkFileValidation', 'Please choose a file.');
return false;
}
}
// End Surat Masuk

// Surat Keluar
public function Skeluar()
{
$data = array(
'page' => 'Surat Keluar',
'subpage' => '',
'row' => $this->M_surat->get(),
'user' => $this->M_user->get(),
'bagian' => $this->M_bagian->get(),
);
$this->template->load($this->foldertemplate.'template',$this->folder.'data', $data);
}
public function Sform()
{
$surat = new stdClass();
$surat->id_surat= null;
$surat->id_user= null;
$surat->kodeik= null;
$surat->kodepm= null;
$surat->no_surat = null;
$surat->tgl = null;
$surat->pengirim = null;
$surat->perihal = null;
$surat->ket = null;
$surat->file_surat = null;
$data = array(
'page' => 'Surat Keluar',
'subpage' => 'Tambah',
'row' => $surat,
'kodeik' => $this->M_kodeik->getik(),
'kodepm' => $this->M_kodepm->getpm(),
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

'bagian' => $this->M_bagian->get(),


);
if ($this->form_validation->run() == FALSE) {
$this->template->load($this->foldertemplate.'template',$this->folder.'form', $data);
}
}
public function Sedit($id)
{
$query = $this->M_surat->get($id);
if ($query->num_rows() > 0) {
$surat = $query->row();
$data = array(
'page' => 'Surat Keluar',
'subpage' => 'Edit',
'row' => $surat,
'kodeik' => $this->M_kodeik->getik(),
'kodepm' => $this->M_kodepm->getpm(),
'bagian' => $this->M_bagian->get(),
);
$this->template->load($this->foldertemplate.'template',$this->folder.'form', $data);
} else {
$this->session->set_flashdata('error', "Data tidak ditemukan");
redirect('surat/Skeluar');
}
}
public function Sdetail($id)
{
$query = $this->M_surat->get($id);
if ($query->num_rows() > 0) {
$surat = $query->row();
$data = array(
'page' => 'Surat Keluar',
'subpage' => 'Detail',
'row' => $surat,
'bagian' => $this->M_bagian->get(),
);
}
$this->template->load($this->foldertemplate.'template',$this->folder.'detail', $data);
}
public function Sprocess()
{
$post = $this->input->post(null, TRUE);
if (isset($_POST['Tambah'])) {
if($this->M_surat->cek_no_surat($post['no_surat'])->num_rows() > 0){
$this->session->set_flashdata('error', "Nomor $post[no_surat] sudah dipakai, silahkan ganti dengan
yang berbeda");
redirect('surat/Sform');
} else {
$this->M_surat->Sadd($post);
}
}else if (isset($_POST['Edit'])) {
$this->M_surat->Sedit($post);
}
if ($this->db->affected_rows() > 0) {
$this->session->set_flashdata('success', 'Data berhasil disimpan');
}
redirect('surat/Skeluar');
}
public function Sdel($id)
{
$this->M_surat->Sdel($id);
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

if ($this->db->affected_rows() > 0) {
$this->session->set_flashdata('success', 'Data berhasil dihapus');
}
redirect('surat/Skeluar');
}
public function imports()
{
$data = array(
'page' => 'Surat Keluar',
'subpage' => 'Import',
);
$this->template->load($this->foldertemplate.'template',$this->folder.'import', $data);
}
// file upload functionality
public function uploads() {
$data = array(
'page' => 'Surat Keluar',
'subpage' => 'Import',
);
// Load form validation library
$this->form_validation->set_rules('fileURL', 'Upload File', 'callback_checkFileValidation');
if($this->form_validation->run() == false) {
$this->template->load($this->foldertemplate.'template',$this->folder.'import', $data);
} else {
// If file uploaded
if(!empty($_FILES['fileURL']['name'])) {
// get file extension
$extension = pathinfo($_FILES['fileURL']['name'], PATHINFO_EXTENSION);

if($extension == 'csv'){
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
} elseif($extension == 'xlsx') {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
} else {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
}
// file path
$spreadsheet = $reader->load($_FILES['fileURL']['tmp_name']);
$allDataInSheet = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
// array Count
$arrayCount = count($allDataInSheet);
$flag = 0;
$createArray = array('Nomor_Surat', 'Id_User', 'Kodeik', 'Kodepm', 'Tanggal_Surat', 'Penerima',
'Perihal', 'Keterangan', 'Status');
$makeArray = array('Nomor_Surat' => 'Nomor_Surat', 'Id_User' => 'Id_User', 'Kodeik' => 'Kodeik',
'Kodepm' => 'Kodepm', 'Tanggal_Surat' => 'Tanggal_Surat', 'Penerima' => 'Penerima', 'Perihal' =>
'Perihal', 'Keterangan' => 'Keterangan', 'Status' => 'Status');
$SheetDataKey = array();
foreach ($allDataInSheet as $dataInSheet) {
foreach ($dataInSheet as $key => $value) {
if (in_array(trim($value), $createArray)) {
$value = preg_replace('/\s+/', '', $value);
$SheetDataKey[trim($value)] = $key;
}
}
}
$dataDiff = array_diff_key($makeArray, $SheetDataKey);
if (empty($dataDiff)) {
$flag = 1;
}
// match excel sheet column
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

if ($flag == 1) {
for ($i = 2; $i <= $arrayCount; $i++) {
$addresses = array();
$no_surat = $SheetDataKey['Nomor_Surat'];
$id_user = $SheetDataKey['Id_User'];
$kodeik = $SheetDataKey['Kodeik'];
$kodepm = $SheetDataKey['Kodepm'];
$tgl = $SheetDataKey['Tanggal_Surat'];
$penerima = $SheetDataKey['Penerima'];
$perihal = $SheetDataKey['Perihal'];
$ket = $SheetDataKey['Keterangan'];
$status = $SheetDataKey['Status'];
$no_surat = filter_var(trim($allDataInSheet[$i][$no_surat]), FILTER_SANITIZE_STRING);
$id_user = filter_var(trim($allDataInSheet[$i][$id_user]), FILTER_SANITIZE_STRING);
$kodeik = filter_var(trim($allDataInSheet[$i][$kodeik]), FILTER_SANITIZE_STRING);
$kodepm = filter_var(trim($allDataInSheet[$i][$kodepm]), FILTER_SANITIZE_STRING);
$tgl = filter_var(trim($allDataInSheet[$i][$tgl]), FILTER_SANITIZE_STRING);
$penerima = filter_var(trim($allDataInSheet[$i][$penerima]), FILTER_SANITIZE_EMAIL);
$perihal = filter_var(trim($allDataInSheet[$i][$perihal]), FILTER_SANITIZE_STRING);
$ket = filter_var(trim($allDataInSheet[$i][$ket]), FILTER_SANITIZE_STRING);
$status = filter_var(trim($allDataInSheet[$i][$status]), FILTER_SANITIZE_STRING);
$fetchData[] = array('no_surat' => $no_surat, 'id_user' => $id_user, 'kodeik' => $kodeik, 'kodepm'
=> $kodepm, 'tgl' => $tgl, 'pengirim' => $penerima, 'perihal' => $perihal, 'ket' => $ket, 'status' =>
$status);
}
$data['dataInfo'] = $fetchData; //tidak perlu
$this->M_surat->setBatchImport($fetchData); //tidak perlu
$this->M_surat->importData(); //tidak perlu
} else {
$this->session->set_flashdata('error', "Please import correct file, did not match excel sheet
column");
}
$this->session->set_flashdata('success', 'Data berhasil dimport');
// $this->template->load($this->foldertemplate.'template',$this->folder.'data', $data);
redirect('surat_keluar','refresh');
}
}
}
public function notif()
{
$this->session->set_flashdata('error', 'Hubungi admin untuk mengupload file surat');
redirect('surat');
}
// End Surat Keluar
}

b. Model
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class M_surat extends CI_Model{
private $_batchImport;
public function __construct()
{
parent::__construct();
//Codeigniter : Write Less Do More
}
function getsm($id = null)
{
$start_date = $this->input->post('dari_tgl');
$end_date = $this->input->post('sampai_tgl');
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

$disposisi = $this->input->post('id_bagian_surat');
$id_bagian = $this->fungsi->user_login()->id_bagian_user;
$this->db->from('surat');
$this->db->join('user','user.id = surat.id_user');
$this->db->where('status',1);
if ($id_bagian != '1') {
$this->db->where_in('id_bagian_surat', $id_bagian);
}
$this->db->order_by('id_surat','DESC');
if ($disposisi) {
$this->db->where_in('id_bagian_surat', $disposisi);
}
if($start_date && $end_date){
$this->db->order_by('tgl','DESC');
$this->db->where('tgl BETWEEN "'. date('Y-m-d', strtotime($start_date)). '" and "'. date('Y-m-d',
strtotime($end_date)).'"');
}
if ($id != null) {
$this->db->where('id_surat',$id);
}
$query = $this->db->get();
return $query;
}
public function getsm_statistik()
{
$tahun = date('Y');
$this->db->from('surat');
$this->db->where('status',1);
$this->db->where_in('YEAR(tgl)',$tahun);
$query = $this->db->get();
return $query;
}
function get($id = null)
{
$start_date = $this->input->post('dari_tgl');
$end_date = $this->input->post('sampai_tgl');
$kodeik = $this->input->post('kodeik');
$kodepm = $this->input->post('kodepm');
$id_bagian = $this->fungsi->user_login()->id_bagian_user;

$this->db->from('surat');
$this->db->join('user','user.id = surat.id_user');
$this->db->join('kodeik','kodeik.id_kodeik = surat.kodeik');
$this->db->join('kodepm','kodepm.id_kodepm = surat.kodepm');
$this->db->where('status',2);
if ($id_bagian != '1') {
$this->db->where_in('id_bagian_surat', $id_bagian);
}
$this->db->order_by('id_surat','DESC');
if($this->input->post('dari_tgl') && $this->input->post('sampai_tgl')){
$this->db->order_by("tgl","desc");
$this->db->where('tgl BETWEEN "'. date('Y-m-d', strtotime($start_date)). '" and "'. date('Y-m-d',
strtotime($end_date)).'"');
}
if ($this->input->post('kodeik')) {
$this->db->where('surat.kodeik', $kodeik);
}
if ($this->input->post('kodepm')) {
$this->db->where('surat.kodepm', $kodepm);
}
if ($id != null) {
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

$this->db->where('id_surat',$id);
}
$query = $this->db->get();
return $query;
}

public function getsk_statistik()


{
$tahun = date('Y');
$this->db->from('surat');
$this->db->where('status',2);
$this->db->where_in('YEAR(tgl)',$tahun);
$query = $this->db->get();
return $query;
}
public function add($post)
{
$params = [
'no_surat' => $post['no_surat'],
'id_user' => $this->fungsi->user_login()->id,
'tgl' => $post['tgl'],
'pengirim' => $post['pengirim'],
'perihal' => $post['perihal'],
'ket' => $post['ket'],
'status' => 1,
'id_bagian_surat' => 1,
'created_at' => date('Y-m-d H:i:s')
];
if (!empty($post['id_bagian_surat'])) {
$params['id_bagian_surat'] = $post['id_bagian_surat'];
}
if (!empty($_FILES['file_surat']['name'])) {
$upload = $this->_do_uploadfile();
$params['file_surat'] = $upload;
}
$this->db->insert('surat', $params);
}
private function _do_uploadfile()
{
unset($config);
$config['upload_path'] = './upload/surat_masuk/';
$config['allowed_types'] = 'pdf|doc|docx|jpg|jpeg';
$config['max_size'] = 10240;
$config['file_name'] = 'File Surat Masuk'.date('ymd').'-'.substr(md5(rand()),0,10);

$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('file_surat')) {
$this->session->set_flashdata('error', $this->upload->display_errors('',''));
redirect('surat','refresh');
}
return $this->upload->data('file_name');
}
public function edit($post)
{
$params = [
'no_surat' => $post['no_surat'],
'id_user' => $this->fungsi->user_login()->id,
'tgl' => $post['tgl'],
'pengirim' => $post['pengirim'],
'perihal' => $post['perihal'],
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

'ket' => $post['ket'],


'status' => 1,
'updated_at' => date('Y-m-d H:i:s')
];
if (!empty($post['id_bagian_surat'])) {
$params['id_bagian_surat'] = $post['id_bagian_surat'];
}
if (!empty($_FILES['file_surat']['name'])) {
$upload = $this->_do_uploadfile();
$params['file_surat'] = $upload;
unlink("./upload/surat_masuk/".$this->input->post('old_file_surat'));
}
$this->db->where('id_surat', $post['id_surat']);
$this->db->update('surat', $params);
}
function cek_no_surat($code, $id = null)
{
$this->db->from('surat');
$this->db->where('no_surat', $code);
if($id != null){
$this->db->where('id_surat !=', $id);
}
$query = $this->db->get();
return $query;
}
public function del($id)
{
$data = $this->M_surat->get($id)->row();
if($data->file_surat != null) {
$file_file = './upload/surat_masuk/'.$data->file_surat;
unlink($file_file);
}
$this->db->where('id_surat', $id);
$this->db->delete('surat');
}
public function setBatchImport($batchImport) {
$this->_batchImport = $batchImport;
}
// save data
public function importData() {
$data = $this->_batchImport;
$this->db->insert_batch('surat', $data);
}
//Surat keluar
public function Sadd($post)
{
$params = [
'id_user' => $this->fungsi->user_login()->id,
'kodeik' =>$post['kodeik'],
'kodepm' =>$post['kodepm'],
'no_surat' => $post['no_surat'],
'tgl' => $post['tgl'],
'pengirim' => $post['pengirim'],
'perihal' => $post['perihal'],
'ket' => $post['ket'],
'status' => 2,
'id_bagian_surat' => 1,
'created_at' => date('Y-m-d H:i:s')
];
if (!empty($post['id_bagian_surat'])) {
$params['id_bagian_surat'] = $post['id_bagian_surat'];
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

}
if (!empty($_FILES['file_surat']['name'])) {
$upload = $this->S_do_uploadfile();
$params['file_surat'] = $upload;
}
$this->db->insert('surat', $params);
}
private function S_do_uploadfile()
{
unset($config);
$config['upload_path'] = './upload/surat_keluar/';
$config['allowed_types'] = 'pdf|doc|docx|jpg|jpeg';
$config['max_size'] = 10240;
$config['file_name'] = 'File Surat Keluar'.date('ymd').'-'.substr(md5(rand()),0,10);

$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('file_surat')) {
$this->session->set_flashdata('error', $this->upload->display_errors('',''));
redirect('surat/Skeluar','refresh');
}
return $this->upload->data('file_name');
}
public function Sedit($post)
{
$params = [
'id_user' => $this->fungsi->user_login()->id,
'kodeik' =>$post['kodeik'],
'kodepm' =>$post['kodepm'],
'no_surat' => $post['no_surat'],
'tgl' => $post['tgl'],
'pengirim' => $post['pengirim'],
'perihal' => $post['perihal'],
'ket' => $post['ket'],
'status' => 2,
'updated_at' => date('Y-m-d H:i:s')
];
if (!empty($post['id_bagian_surat'])) {
$params['id_bagian_surat'] = $post['id_bagian_surat'];
}
if (!empty($_FILES['file_surat']['name'])) {
$upload = $this->S_do_uploadfile();
$params['file_surat'] = $upload;
unlink("./upload/surat_keluar/".$this->input->post('old_file_surat'));
}
$this->db->where('id_surat', $post['id_surat']);
$this->db->update('surat', $params);
}
public function Sdel($id)
{
$data = $this->M_surat->get($id)->row();
if($data->file_surat != null) {
$file_file = './upload/surat_keluar/'.$data->file_surat;
unlink($file_file);
}
$this->db->where('id_surat', $id);
$this->db->delete('surat');
}
// Autocomplete
function search($title){
$this->db->like('no_surat', $title , 'both');
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

$this->db->order_by('no_surat', 'ASC');
$this->db->limit(10);
return $this->db->get('surat')->result();
}
}

c. View
• Data.php
<!-- First Column -->
<div class="col-lg-12 pb-5">
<?php $this->view('message')?>
<!-- Custom Text Color Utilities -->
<br>
<div class="card shadow mb-4">
<?php if ($this->fungsi->user_login()->role != 0){ ?>
<div class="card-header py-3">
<div class="row">
<div class="col-6">
<a <?php if ($page == "Surat Masuk"){ ?>
href="<?=site_url('surat/form')?>"
<?php } else { ?>
href="<?=site_url('surat/Sform')?>"
<?php } ?> class="btn btn-primary" title="Tambah Data User"><i class="fas fa-fw fa-plus-
square"></i> <?=$page?></a>
</div>
<div class="col-6">
<div class="text-right">
<a <?php if ($page != 'Surat Keluar') { ?>
href="<?=base_url('import')?>"
<?php } ?>
<?php if ($page != 'Surat Masuk') { ?>
href="<?=base_url('imports')?>"
<?php } ?>class="btn btn-outline-success"><i class="fa fa-file-import"></i> Import Data</a>
</div>
</div>
</div>
</div>
<?php } ?>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered table-hover" id="dataTable" width="100%" cellspacing="0">
<thead>
<tr>
<?php if ($this->fungsi->user_login()->role != 0){ ?>
<th>Agenda</th>
<?php } ?>
<th>No Surat</th>
<?php if ($page == "Surat Masuk"): ?>
<th>Diterima dari</th>
<?php endif; ?>
<?php if ($page == "Surat Keluar"): ?>
<th>Dikirim ke</th>
<?php endif; ?>
<th>Perihal</th>
<th>Disposisi</th>
<th>Detail</th>
<?php if ($this->fungsi->user_login()->role != 0){ ?>
<th style="width:55px">Aksi</th>
<?php } ?>
</tr>
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

</thead>
<tbody>
<?php $no=1;
foreach($row->result()as $key => $data) {
if ($page == "Surat Masuk" && $data->status != 2) {
?>
<?php $date = date('Y-m-d', strtotime($data->tgl));?>
<tr>
<?php if ($this->fungsi->user_login()->role != 0){ ?>
<td><form action="<?=site_url('agenda/process')?>" method="post">
<input type="hidden" name="id_surat_agenda" value="<?=$data->id_surat?>">
<button type="submit" name="Tambah" class="btn btn-sm btn-outline-info" title="Buat
Agenda"><i class="fas fa-fw fa-calendar-plus"></i></button>
</form></td>
<?php } ?>
<td><?=$data->no_surat?> <br></td>
<td><?=$data->pengirim?></td>
<td><?=$data->perihal?></td>
<td><?php foreach ($bagian->result() as $key => $bgn){ ?>
<?php if ($bgn->id_bagian == $data->id_bagian_surat){ ?>
<span class="badge badge-warning" title="<?=$bgn->ket_bagian?>"> <?php echo
ucwords(strtolower($bgn->nama_bagian)); ?> </span>
<?php } ?>
<?php } if ($data->id_bagian_surat == null || $data->id_bagian_surat == 0){ ?>
<span class="badge badge-light"> Arsip </span>
<?php } ?>
</td>
<td>
<a href="<?=site_url('surat/detail/'.$data->id_surat)?>" title="Detail" class="btn btn-sm btn-
outline-primary">
<i class="far fa-eye"></i></a>
</td>
<?php if ($this->fungsi->user_login()->role != 0){ ?>
<td class="actions-hover actions-fade">
<a href="<?=site_url('surat/edit/'.$data->id_surat)?>" title="Edit" class="btn btn-sm btn-
success"><i class="fas fa-edit"></i></a>
<a href="<?=site_url('surat/del/'.$data->id_surat)?>" title="Hapus" class="btn btn-sm btn-
danger hapus-surat text-white"><i class="fas fa-trash-alt"></i></a>
</td>
<?php } ?>
<script>
$(document).on("click",".hapus-surat",function(e){
e.preventDefault();
const href = $(this).attr('href');

Swal.fire({
title: 'Apakah anda yakin?',
text: "Data surat tersebut akan dihapus",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Hapus Data!'
}).then((result) => {
if (result.value) {
document.location.href = href;
}
})
});
</script>
</tr>
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

<?php
}
if ($page == "Surat Keluar" && $data->status != 1) {
?>
<?php $date = date('Y-m-d', strtotime($data->tgl));?>
<tr>
<?php if ($this->fungsi->user_login()->role != 0){ ?>
<td><form action="<?=site_url('agenda/process')?>" method="post">
<input type="hidden" name="id_surat_agenda" value="<?=$data->id_surat?>">
<button type="submit" name="Tambah" class="btn btn-sm btn-outline-info" title="Buat
Agenda"><i class="fas fa-fw fa-calendar-plus"></i></button>
</form></td>
<?php } ?>
<td><?=$data->no_surat?></td>
<td><?=$data->pengirim?></td>
<td><?=$data->perihal?></td>
<td><?php foreach ($bagian->result() as $key => $bgn){ ?>
<?php if ($bgn->id_bagian == $data->id_bagian_surat){ ?>
<span class="badge badge-warning" title="<?=$bgn->ket_bagian?>"> <?php echo
ucwords(strtolower($bgn->nama_bagian)); ?> </span>
<?php } ?>
<?php } if ($data->id_bagian_surat == null || $data->id_bagian_surat == 0){ ?>
<span class="badge badge-light"> Arsip </span>
<?php } ?>
</td>
<td>
<a href="<?=site_url('surat/Sdetail/'.$data->id_surat)?>" title="Detail" class="btn btn-sm btn-
outline-primary">
<i class="far fa-eye"></i></a>
</td>
<?php if ($this->fungsi->user_login()->role != 0){ ?>
<td class="actions-hover actions-fade">
<a href="<?=site_url('surat/Sedit/'.$data->id_surat)?>" title="Edit" class="btn btn-sm btn-
success"><i class="fas fa-edit"></i></a>
<a href="<?=site_url('surat/Sdel/'.$data->id_surat)?>" title="Hapus" class="btn btn-sm btn-
danger hapus-surat text-white"><i class="fas fa-trash-alt"></i></a>
</td>
<?php } ?>
<script>
$(document).on("click",".hapus-surat",function(e){
e.preventDefault();
const href = $(this).attr('href');
Swal.fire({
title: 'Apakah anda yakin?',
text: "Data surat tersebut akan dihapus",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Hapus Data!'
}).then((result) => {
if (result.value) {
document.location.href = href;
}
})
});
</script>
</tr>
<?php
}
}
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

?>
</tbody>
<tfoot>
<tr>
<?php if ($this->fungsi->user_login()->role != 0){ ?>
<th>Agenda</th>
<?php } ?>
<th>No Surat</th>
<?php if ($page == "Surat Masuk"): ?>
<th>Diterima dari</th>
<?php endif; ?>
<?php if ($page == "Surat Keluar"): ?>
<th>Dikirim ke</th>
<?php endif; ?>
<th>Perihal</th>
<th>Disposisi</th>
<th>Detail</th>
<?php if ($this->fungsi->user_login()->role != 0){ ?>
<th>Aksi</th>
<?php } ?>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
<!-- end -->
• Detail.php
<!-- First Column -->
<div class="col-lg-12 pb-5">
<?php $this->view('message')?>
<!-- Custom Text Color Utilities -->
<div class="card shadow">
<div class="card-header">
<a <?php if ($page == "Surat Masuk"){ ?>
href="javascript:history.back()"
<?php } ?>
<?php if ($page == "Surat Keluar"){ ?>
href="javascript:history.back()"
<?php } ?>
class="btn btn-danger" title="Kembali"><i class="fas fa-fw fa-arrow-left"></i> Kembali</a>
</div>
<div class="card-body">
<table>
<tr>
<th width="180px">Nomor Surat</th>
<td width="15px"> : </td>
<td><?=$row->no_surat?></td>
</tr>
<?php if ($page != "Surat Masuk"){ ?>
<tr>
<th>Kode Indeks Khusus</th>
<td> : </td>
<td><?=$row->ket_kodeik?></td>
</tr>
<tr>
<th>Kode Pokok Masalah</th>
<td> : </td>
<td><?=$row->ket_kodepm?></td>
</tr>
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

<?php } ?>
<tr>
<?php if ($page == "Surat Masuk") { ?>
<th>Diterima dari</th>
<?php } ?>
<?php if ($page == "Surat Keluar") { ?>
<th>Dikirim ke</th>
<?php } ?>
<td> : </td>
<td><?=$row->pengirim?></td>
</tr>
<tr>
<th>Pada tanggal</th>
<td> : </td>
<td><?=date_indo($row->tgl)?></td>
</tr>
<tr>
<th>Perihal</th>
<td> : </td>
<td><?=$row->perihal?></td>
</tr>
<?php if ($row->ket != null){ ?>
<tr>
<th>Keterangan</th>
<td> : </td>
<td><?=$row->ket?></td>
</tr>
<?php } ?>
<?php if ($row->id_bagian_surat != null && $row->id_bagian_surat != 0){ ?>
<tr>
<th>Disposisi ke bagian</th>
<td> : </td>
<td>
<?php foreach ($bagian->result() as $key => $data){ ?>
<?php if ($data->id_bagian == $row->id_bagian_surat){ ?>
<span class="badge badge-warning"> <?php echo ucwords(strtolower($data->nama_bagian)) .'
- '.$data->ket_bagian; ?> </span>
<?php } ?>
<?php } ?>
</td>
</tr>
<?php } ?>
<tr>
<th>File Surat</th>
<td> : </td>
<td><?php if($row->file_surat != null) { ?>
<a
<?php if ($page == "Surat Masuk"){ ?>
href="<?=base_url('upload/surat_masuk/'.$row->file_surat)?>"
<?php } ?>
<?php if ($page == "Surat Keluar"){ ?>
href="<?=base_url('upload/surat_keluar/'.$row->file_surat)?>"
<?php } ?>
target="_blank">
<i class="fas fa-cloud-download-alt"></i> Download</a><br>
<?php } else { ?>
<?php if ($this->fungsi->user_login()->role == 0){ ?>
<a href="<?=site_url('surat/notif')?>" title="Not Found"><i class="fas fa-cloud-upload-alt"></i>
Upload</a>
<?php } ?>
<?php if ($this->fungsi->user_login()->role != 0){ ?>
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

<a href="<?=site_url('surat/edit/'.$row->id_surat)?>" title="Edit"><i class="fas fa-cloud-


upload-alt"></i> Upload</a>
<?php } ?>
<?php } ?> </td>
</tr>
<tr>
<th>Dibuat oleh </th>
<td> : </td>
<?php $date = date('Y-m-d', strtotime($row->created_at));?>
<td><?=ucfirst($row->username).' pada hari '.longdate_indo($date)?></td>
</tr>
<?php if($row->file_surat != null) { ?>
<tr>
<th>Ekstensi </th>
<td> : </td>
<?php
$ekstensi = substr($row->file_surat, -3);?>
<td><?=$ekstensi?></td>
</tr>
<?php } ?>
</table> <br>
<?php if ($row->file_surat != null) { ?>
<div class="text-center">
<?php if ($page == "Surat Masuk" && $ekstensi == 'pdf'){ ?>
<iframe src="https://docs.google.com/viewer?url=<?=base_url('upload/surat_masuk/'.$row-
>file_surat)?> &embedded=true" width="75%" height="780" style="border-radius:
5px;"></iframe><br>
<?php } ?>
<?php if ($page == "Surat Masuk" && $ekstensi != 'pdf'){ ?>
<img src="<?=base_url('upload/surat_masuk/'.$row->file_surat)?>" alt="Surat Masuk"
width="75%" style="border-radius: 5px;">
<?php } ?>
<?php if ($page == "Surat Keluar" && $ekstensi == 'pdf'){ ?>
<iframe src="https://docs.google.com/viewer?url=<?=base_url('upload/surat_keluar/'.$row-
>file_surat)?> &embedded=true" width="75%" height="780" style="border-radius:
5px;"></iframe><br>
<?php } ?>
<?php if ($page == "Surat Keluar" && $ekstensi != 'pdf'){ ?>
<img src="<?=base_url('upload/surat_keluar/'.$row->file_surat)?>" alt="Surat Keluar"
width="75%" style="border-radius: 5px;">
<?php } ?>
</div>
<?php } else {?>
<p>File Surat Belum di Upload</p>
<?php } ?>
</div>
</div>
</div>
<!-- end -->
<br>
• Form.php
<!-- First Column -->
<div class="col-lg-12 pb-5">
<?php $this->view('message')?>
<!-- Custom Text Color Utilities -->
<div class="card shadow">
<div class="card-header">
<a <?php if ($page == "Surat Masuk"){ ?>
href="<?=site_url('surat')?>"
<?php } ?>
<?php if ($page == "Surat Keluar"){ ?>
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

href="<?=site_url('surat/Skeluar')?>"
<?php } ?>
class="btn btn-danger" title="Kembali"><i class="fas fa-fw fa-arrow-left"></i> Kembali</a>
</div>
<div class="card-body">
<?php
if ($page == "Surat Masuk") {
$attributes = array('id'=> 'form1','onsubmit' => 'return false');
echo form_open_multipart('surat/process');
}else{
echo form_open_multipart('surat/Sprocess');
}
?>
<div class="form-group">
<label class="control-label" for="no_surat">Nomor Surat *</label>
<input type="hidden" name="id_surat" value="<?=$row->id_surat?>">
<input type="text" value="<?=$row->no_surat?>" name="no_surat" class="form-control"
id="no_surat" required
oninvalid="this.setCustomValidity('Masukkan no_surat disini')" oninput="setCustomValidity('')">
</div>

<?php if ($page != "Surat Masuk"){ ?>


<div class="form-group">
<label class="control-label" for="kodeik">Kode Indeks Khusus *</label>
<select class="form-control" name="kodeik" id="kodeik" required>
<option value="">- Pilih Kode Indeks Khusus -</option>
<?php foreach ($kodeik->result() as $key => $data) { ?>
<option value="<?=$data->id_kodeik?>" <?=$data->kodeik == $row->kodeik ? 'selected' :
null?>> <?=$data->kodeik .' - '.$data->ket_kodeik?></option>
<?php }?>
</select>
</div>

<div class="form-group">
<label class="control-label" for="kodepm">Kode Pokok Masalah *</label>
<select class="form-control" name="kodepm" id="kodepm" required>
<option value="">- Pilih Kode Pokok Masalah -</option>
<?php foreach ($kodepm->result() as $key => $data) { ?>
<option value="<?=$data->id_kodepm?>" <?=$data->kodepm == $row->kodepm ?
'selected' : null?>> <?=$data->kodepm .' - '.$data->ket_kodepm?></option>
<?php }?>
</select>
</div>
<?php } ?>

<div class="form-group">
<label class="control-label" for="tgl">
<?php if ($page == "Surat Masuk"){ ?>
Tanggal Terima *
<?php } else { ?>
Tanggal *
<?php } ?>
</label>
<input type="date" value="<?=$row->tgl?>" name="tgl" class="form-control" id="tgl"required
oninvalid="this.setCustomValidity('Masukkan tanggal diterima disini')"
oninput="setCustomValidity('')">
</div>

<div class="form-group">
<label class="control-label" for="pengirim">
<?php if ($page == "Surat Masuk"){
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

echo "Pengirim *";


} else {
echo "Alamat Penerima *";
} ?>
</label>
<input type="text" name="pengirim" value="<?=$row->pengirim?>" class="form-control"
id="pengirim" required
oninvalid="this.setCustomValidity('Masukkan pengirim disini')" oninput="setCustomValidity('')">
</div>

<div class="form-group">
<label class="control-label" for="perihal">Perihal *</label>
<input type="text" name="perihal" value="<?=$row->perihal?>" class="form-control"
id="perihal" required
oninvalid="this.setCustomValidity('Masukkan perihal disini')" oninput="setCustomValidity('')">
</div>

<div class="form-group">
<label class="control-label" for="ket">Keterangan</label>
<input type="text" name="ket" value="<?=$row->ket?>" class="form-control" id="ket">
</div>

<div class="form-group">
<label class="control-label" for="id_bagian_surat">Disposisikan untuk bagian</label>
<select class="form-control" name="id_bagian_surat" id="id_bagian_surat">
<option value="">- Pilih -</option>
<?php
$no = 1;
foreach ($bagian->result() as $key => $data) { ?>
<option value="<?=$data->id_bagian?>" <?=$data->id_bagian == $row->id_bagian_surat ?
'selected' : null?>> <?=$no.') '.$data->nama_bagian .' - '.$data->ket_bagian?></option>
<?php $no++;
} ?>
</select>
<small>Apabila tidak didisposisikan, <b> boleh tidak memilih</b></small>
</div>

<div class="form-group">
<label class="control-label" for="file_surat">File Surat </label><br>
<?php if ($subpage == 'Edit') {
if ($row->file_surat != null) { ?>
<!-- <img class="img-responsive" src="<?=base_url('upload/foto/'.$row->file_surat)?>"
style="width:100px; margin-bottom:8px;"><br> -->
<?php
}
}
?>
<div class="custom-file mb-3">
<input type="file" value="<?=$row->file_surat?>" class="custom-file-input" name="file_surat"
id="file_surat">
<label class="custom-file-label" for="customFile">Choose file</label>
<input type="hidden" name="old_file_surat" value="<?=$row->file_surat?>" readonly>
<small>Exstensi file bisa berupa *pdf, *doc, *docx, *jpg, *jpeg dan ukuran <b>maks.
10MB</b></small><br>
<small>(Biarkan kosong jika tidak <?=$subpage == 'Edit' ? 'diganti' : 'ada'?>) </small>
</div>
<script type="text/javascript">
// Add the following code if you want the name of the file appear on select
$(".custom-file-input").on("change", function() {
var fileName = $(this).val().split("\\").pop();
$(this).siblings(".custom-file-label").addClass("selected").html(fileName);
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

});
</script>
<img src="" id="profile-img-tag" width="100px" />
<script type="text/javascript">
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();

reader.onload = function (e) {


$('#profile-img-tag').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
$("#file_surat").change(function(){
readURL(this);
});
</script>

</div>

<div class="text-center">
<button type="reset" class="btn btn-secondary"><i class="fas fa-fw fa-undo-alt"></i>
Reset</button>
<button type="submit" name="<?=$subpage?>" class="btn btn-primary"><i class="fas fa-fw fa-
save"></i> Save</button>
</div>

<?php echo form_close(); ?>


</div>
</div>
</div>
<!-- end -->
<br>
• Import.php
<div class="col-lg-12 pb-5">
<a <?php if ($page != "Surat Keluar") { ?>
href="<?=site_url('surat_masuk')?>"
<?php } ?>
<?php if ($page != "Surat Masuk") { ?>
href="<?=site_url('surat_keluar')?>"
<?php } ?>
class="btn btn-danger" title="Kembali"><i class="fas fa-fw fa-arrow-left"></i> Kembali</a>
<p></p>
<?php $this->view('message')?>
<div class="card shadow p-5 bd-callout bd-callout-primary">
<h4 class="text-primary">Import Data <?=$page?></h4>
<br>
<!-- container -->
<?php if(form_error('fileURL')) {?>
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<?php print form_error('fileURL'); ?>
</div>
<?php } ?>
<div class="row">
<div class="col-md-12">
<label>Download Sample File : </label><br>
<div class="btn-group" role="group" aria-label="Basic example">
<?php if ($page != "Surat Keluar") { ?>
<a href="<?=base_url('assets/sample-masuk/Sample-xlsx.xlsx')?>" class="btn btn-outline-success"
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

target="_blank"><i class="fa fa-file-excel"></i> Sample .XLSX</a>


<a href="<?=base_url('assets/sample-masuk/Sample-xls.xls')?>" class="btn btn-outline-success"
target="_blank"><i class="fa fa-file-excel"></i> Sample .XLS</a>
<!-- <a href="" class="btn btn-outline-primary" target="_blank"><i class="fa fa-file-csv"></i>
Sample .CSV</a> -->
<?php } ?>
<?php if ($page != "Surat Masuk") { ?>
<a href="<?=base_url('assets/sample-keluar/Sample-xlsx.xlsx')?>" class="btn btn-outline-
success" target="_blank"><i class="fa fa-file-excel"></i> Sample .XLSX</a>
<a href="<?=base_url('assets/sample-keluar/Sample-xls.xls')?>" class="btn btn-outline-success"
target="_blank"><i class="fa fa-file-excel"></i> Sample .XLS</a>
<!-- <a href="" class="btn btn-outline-primary" target="_blank"><i class="fa fa-file-csv"></i>
Sample .CSV</a> -->
<?php } ?>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<form <?php if ($page != "Surat Keluar") { ?>
action="<?=site_url('surat/upload');?>"
<?php } ?>
<?php if ($page != "Surat Masuk") { ?>
action="<?=site_url('surat/uploads');?>"
<?php } ?>
class="excel-upl" id="excel-upl" enctype="multipart/form-data" method="post" accept-
charset="utf-8">
<div class="input-group">
<div class="custom-file">
<input type="file" class="custom-file-input" name="fileURL" id="inputGroupFile04" aria-
describedby="inputGroupFileAddon04">
<label class="custom-file-label" for="inputGroupFile04">Choose file..</label>
</div>
<div class="input-group-append">
<button class="btn btn-outline-primary" type="submit" name="import"
id="inputGroupFileAddon04"><i class="fa fa-file-import"></i> Import</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<br>
<script>
// Add the following code if you want the name of the file appear on select
$(".custom-file-input").on("change", function() {
var fileName = $(this).val().split("\\").pop();
$(this).siblings(".custom-file-label").addClass("selected").html(fileName);
});
</script>

3. Laporan Surat Masuk dan Surat Keluar


a. Controller
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

require('./vendor/autoload.php');
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

class Laporan extends CI_Controller{

private $folder = "backend/laporan/";


private $foldertemplate = "backend/";

public function __construct()


{
parent::__construct();
belum_login();
//Codeigniter : Write Less Do More
}

function index()
{
$data = array(
'page' => 'Surat Masuk',
'subpage' => 'Laporan',
'row' => $this->M_surat->getsm(),
'user' => $this->M_user->get(),
'bagian' => $this->M_bagian->get(),
);
$this->template->load($this->foldertemplate.'template',$this->folder.'data', $data);
}

public function process()


{
$post = $this->input->post(null, TRUE);
if (isset($_POST['filter'])) {
$data = array(
'page' => 'Surat Masuk',
'subpage' => 'Laporan',
'row' => $this->M_surat->getsm(),
'user' => $this->M_user->get(),
'bagian' => $this->M_bagian->get(),
);
$this->template->load($this->foldertemplate.'template',$this->folder.'data', $data);
} else if (isset($_POST['export'])) {
$data = $this->M_surat->getsm()->result();
$spreadsheet = new Spreadsheet;
$spreadsheet->setActiveSheetIndex(0)
->setCellValue('A1', 'No')
->setCellValue('B1', 'Nomor Surat')
->setCellValue('C1', 'Tanggal Diterima')
->setCellValue('D1', 'Pengirim')
->setCellValue('E1', 'Perihal')
->setCellValue('F1', 'Keterangan')
->setCellValue('G1', 'File Surat');
$kolom = 2;
$nomor = 1;
foreach($data as $row) {
$spreadsheet->setActiveSheetIndex(0)
->setCellValue('A' . $kolom, $nomor)
->setCellValue('B' . $kolom, $row->no_surat)
->setCellValue('C' . $kolom, date_indo($row->tgl))
->setCellValue('D' . $kolom, $row->pengirim)
->setCellValue('E' . $kolom, $row->perihal)
->setCellValue('F' . $kolom, $row->ket)
->setCellValue('G' . $kolom, $row->file_surat);
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

$kolom++;
$nomor++;
}
// Autowidth
foreach(range('A','G') as $columnID) {
$spreadsheet->getActiveSheet()->getColumnDimension($columnID)->setAutoSize(true);
}
$writer = new Xlsx($spreadsheet);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Laporan Surat Masuk.xlsx"');
header('Cache-Control: max-age=0');
$writer->save('php://output');
} else if (isset($_POST['cetak'])) {
$this->load->library('pdf');
$data = array(
'page' => 'Surat Masuk',
'subpage' => 'Laporan',
'row' => $this->M_surat->getsm(),
'user' => $this->M_user->get(),
'bagian' => $this->M_bagian->get(),
);
$this->load->view($this->folder.'lap_surat_masuk', $data);
$html = $this->output->get_output();
$this->pdf->setPaper('A4', 'potrait');
// $this->pdf->filename = "Laporan Surat Masuk.pdf";
$this->pdf->load_html($html);
$this->pdf->render();
$this->pdf->stream("Laporan Surat Masuk.pdf", array('Attachment' => 0));
}
}

function Skeluar()
{
$data = array(
'page' => 'Surat Keluar',
'subpage' => 'Laporan',
'row' => $this->M_surat->get(),
'user' => $this->M_user->get(),
'kodeik' => $this->M_kodeik->getik(),
'kodepm' => $this->M_kodepm->getpm(),
'bagian' => $this->M_bagian->get(),
);
$this->template->load($this->foldertemplate.'template',$this->folder.'data', $data);
}

public function Sprocess()


{
$post = $this->input->post(null, TRUE);
if (isset($_POST['filter'])) {
$data = array(
'page' => 'Surat Keluar',
'subpage' => 'Laporan',
'row' => $this->M_surat->get(),
'user' => $this->M_user->get(),
'kodeik' => $this->M_kodeik->getik(),
'kodepm' => $this->M_kodepm->getpm(),
'bagian' => $this->M_bagian->get(),
);
$this->template->load($this->foldertemplate.'template',$this->folder.'data', $data);
}else if (isset($_POST['cetak'])) {
$this->load->library('dompdf_gen');
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

$data['keuangan'] = $this->M_keuangan->GetAll()->result_array();

$this->load->view($this->folder.'lap_keuangan_pdf', $data);

$paper_size = 'A4';
$orientation = 'portrait';
$html = $this->output->get_output();
$this->dompdf->set_paper($paper_size, $orientation);
$this->dompdf->load_html($html);
$this->dompdf->render();
$this->dompdf->stream("Laporan_Keuangan.pdf", array('Attachment' => 0));
}
}

public function export()


{
$data = $this->M_surat->getsm()->result();

$spreadsheet = new Spreadsheet;

$spreadsheet->setActiveSheetIndex(0)
->setCellValue('A1', 'No')
->setCellValue('B1', 'Nomor Surat')
->setCellValue('C1', 'Tanggal Diterima')
->setCellValue('D1', 'Pengirim')
->setCellValue('E1', 'Perihal')
->setCellValue('F1', 'Keterangan')
->setCellValue('G1', 'File Surat');

$kolom = 2;
$nomor = 1;
foreach($data as $row) {

$spreadsheet->setActiveSheetIndex(0)
->setCellValue('A' . $kolom, $nomor)
->setCellValue('B' . $kolom, $row->no_surat)
->setCellValue('C' . $kolom, $row->tgl)
->setCellValue('D' . $kolom, $row->pengirim)
->setCellValue('E' . $kolom, $row->perihal)
->setCellValue('F' . $kolom, $row->ket)
->setCellValue('G' . $kolom, $row->file_surat);

$kolom++;
$nomor++;

$writer = new Xlsx($spreadsheet);

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Laporan Surat Masuk.xlsx"');
header('Cache-Control: max-age=0');

$writer->save('php://output');
}

public function exports()


{
$data = $this->M_surat->get()->result();
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

$spreadsheet = new Spreadsheet;

$spreadsheet->setActiveSheetIndex(0)
->setCellValue('A1', 'No')
->setCellValue('B1', 'Nomor Surat')
->setCellValue('C1', 'Kode Indeks Khusus')
->setCellValue('D1', 'Kode Pokok Masalah')
->setCellValue('E1', 'Tanggal')
->setCellValue('F1', 'Pengirim')
->setCellValue('G1', 'Perihal')
->setCellValue('H1', 'Keterangan')
->setCellValue('I1', 'File Surat');

$kolom = 2;
$nomor = 1;
foreach($data as $row) {

$spreadsheet->setActiveSheetIndex(0)
->setCellValue('A' . $kolom, $nomor)
->setCellValue('B' . $kolom, $row->no_surat)
->setCellValue('C' . $kolom, $row->ket_kodeik)
->setCellValue('D' . $kolom, $row->ket_kodepm)
->setCellValue('E' . $kolom, $row->tgl)
->setCellValue('F' . $kolom, $row->pengirim)
->setCellValue('G' . $kolom, $row->perihal)
->setCellValue('H' . $kolom, $row->ket)
->setCellValue('I' . $kolom, $row->file_surat);

$kolom++;
$nomor++;

$writer = new Xlsx($spreadsheet);

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Laporan Surat Keluar.xlsx"');
header('Cache-Control: max-age=0');

$writer->save('php://output');
}

b. Model
Menggunakan Model Surat

c. View
• Data.php
<div class="col-lg-12 pb-3">
<div class="card shadow p-5 bd-callout bd-callout-primary">
<h4 class="text-primary">Download <?php if ($subpage != null){ ?>
<?=$subpage?>
<?php } ?><?=$page?></h4>
<br>
<?php
$attributes = array('onsubmit' => 'return tambah(this)');
if ($page != 'Surat Keluar') {
// echo form_open_multipart('export_smasuk',$attributes);
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

echo form_open_multipart('laporan/process',$attributes); ?>


<?php } ?>
<?php if ($page != 'Surat Masuk'){
// echo form_open_multipart('export_skeluar',$attributes);
echo form_open_multipart('laporan/Sprocess',$attributes);?>
<?php } ?>
<div class="row">
<div class="col-md-3">
<div class="form-group">
<label class="control-label" for="dari_tgl">Dari Tanggal :</label>
<input type="date" name="dari_tgl" class="form-control" id="dari_tgl" <?php if ($this->input-
>post('dari_tgl')){ ?>
value="<?=$this->input->post('dari_tgl') ?>"
<?php } ?>>
</div>
<?php if ($page != 'Surat Masuk') { ?>
<div class="form-group">
<label class="control-label" for="kodeik">Kode Indeks Khusus</label>
<select class="form-control" name="kodeik" id="kodeik">
<option value="">- Pilih Kode Indeks Khusus -</option>
<?php foreach ($kodeik->result() as $key => $data) { ?>
<option value="<?=$data->id_kodeik?>"> <?=$data->kodeik .' - '.$data-
>ket_kodeik?></option>
<?php }?>
</select>
</div>
<?php } ?>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="control-label" for="sampai_tgl">Sampai Tanggal :</label>
<input type="date" name="sampai_tgl" class="form-control" id="sampai_tgl" <?php if ($this-
>input->post('sampai_tgl')){ ?>
value="<?=$this->input->post('sampai_tgl') ?>"
<?php } ?>>
</div>
<?php if ($page != 'Surat Masuk') { ?>
<div class="form-group">
<label class="control-label" for="kodepm">Kode Pokok Masalah</label>
<select class="form-control" name="kodepm" id="kodepm">
<option value="">- Pilih Kode Pokok Masalah -</option>
<?php foreach ($kodepm->result() as $key => $data) { ?>
<option value="<?=$data->id_kodepm?>"> <?=$data->kodepm .' - '.$data-
>ket_kodepm?></option>
<?php }?>
</select>
</div>
<?php } ?>
</div>
<div class="col-md-3">
<div class="form-group">
<label class="control-label" for="id_bagian_surat">Disposisi :</label>
<select class="form-control" name="id_bagian_surat" id="id_bagian_surat">
<option value="">- Pilih -</option>
<?php
$no = 1;
foreach ($bagian->result() as $key => $data) { ?>
<option value="<?=$data->id_bagian?>" <?=$data->id_bagian == $this->input-
>post('id_bagian_surat') ? 'selected' : null?>> <?=$no.') '.$data->nama_bagian .' - '.$data-
>ket_bagian?></option>
<?php $no++;
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

} ?>
</select>
</div>
</div>
<div class="col-md-3">
<label class="control-label" for="sampai_tgl">Proses </label><br>
<button type="reset" name="button" class="btn btn-outline-secondary"><i class="fas fa-redo-
alt"></i> Reset</button>
<button type="submit" name="filter" title="Filter Data" class="btn btn-primary"><i class="fas fa-
fw fa-filter"></i> Filter</button>
<button type="submit" name="export" title="Export Excel" class="btn btn-success"><i class="fas
fa-file-excel"></i> Excel</button>
<button type="submit" name="cetak" title="Cetak PDF" class="btn btn-danger"><i class="fas fa-
file-pdf"></i> PDF</button>
</div>
</div>
<small>Apabila range tanggal tidak di isi maka file akan merekap semua data <?=$page?></small>
<?php echo form_close(); ?>
</div>
</div>
<div class="col-lg-12 pb-5">
<div class="card shadow mb-4">
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered table-hover" id="dataTable" width="100%" cellspacing="0" >
<thead>
<tr>
<th>No</th>
<th>Tanggal</th>
<th>No Surat</th>
<?php if ($page == "Surat Masuk"): ?>
<th>Diterima dari</th>
<?php endif; ?>
<?php if ($page == "Surat Keluar"): ?>
<th>Dikirim ke</th>
<?php endif; ?>
<th>Perihal</th>
<?php if ($this->input->post('id_bagian_surat')){ ?>
<th>Disposisi</th>
<?php } ?>
</tr>
</thead>
<tbody>
<?php $no=1;
foreach($row->result()as $key => $data) {
if ($page == "Surat Masuk" && $data->status != 2) {
?>
<?php $date = date('Y-m-d', strtotime($data->tgl));?>
<tr>
<td><?=$no; ?></td>
<td><?=date_indo($data->tgl)?></td>
<td><?=$data->no_surat?></td>
<td><?=$data->pengirim?></td>
<td><?=$data->perihal?></td>
<?php if ($this->input->post('id_bagian_surat')){ ?>
<td><?php foreach ($bagian->result() as $key => $bgn){ ?>
<?php if ($bgn->id_bagian == $data->id_bagian_surat){ ?>
<span class="badge badge-warning" title="<?=$bgn->ket_bagian?>"> <?php echo
ucwords(strtolower($bgn->nama_bagian)); ?> </span>
<?php } ?>
<?php } ?>
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

</td>
<?php } ?>
</tr>
<?php
}
if ($page == "Surat Keluar" && $data->status != 1) {
?>
<?php $date = date('Y-m-d', strtotime($data->tgl));?>
<tr>
<td><?=$no; ?></td>
<td><?=date_indo($data->tgl)?></td>
<td><?=$data->no_surat?></td>
<td><?=$data->pengirim?></td>
<td><?=$data->perihal?></td>
<td><?php foreach ($bagian->result() as $key => $bgn){ ?>
<?php if ($bgn->id_bagian == $data->id_bagian_surat){ ?>
<span class="badge badge-warning"> <?php echo ucwords(strtolower($bgn-
>nama_bagian)); ?> </span>
<?php } ?>
<?php } ?></td>
</tr>
<?php
}
$no++;
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
• Lap_surat.php
<style>
table{
border-radius: .2rem;
}
#tabel1 {
margin-left: 15px;
color: #444;
border-collapse: collapse;
border: 1px solid #f2f5f7;
font-size: 14px;
}

#tabel1 tr th {
background: #284063;
color: #fff;
font-weight: normal;
line-height: 20px;
}

#tabel1, th, td {
padding: 3px 6px;
border: 1px solid #f2f5f7;
}

#tabel1 tr:nth-child(odd) {
background-color: #f2f2f2;
}
p{
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

text-align: center;
}

</style>
<?php $url=base_url(); ?>
<img src="<?php echo $url.'assets/backend/img/kop.png' ?>" alt="Logo" style="width: 100%">
<h3><center>Laporan Surat Masuk<br>STIKes Muhammadiyah Tegal</center></h3>
<?php if ($this->input->post('id_bagian_surat')){ ?>
<p><center>Disposisi:
<?php foreach ($bagian->result() as $key => $bgn){ ?>
<?php if ($bgn->id_bagian == $this->input->post('id_bagian_surat')){ ?>
<span class="badge badge-warning" title="<?=$bgn->ket_bagian?>"> <?php echo
ucwords(strtolower($bgn->nama_bagian)); ?> </span>
<?php } } ?>
</center></p>
<?php } ?>
<?php if ($this->input->post('dari_tgl')){ ?>
<p><center>Periode:
<?=date_indo($this->input->post('dari_tgl')); ?> s.d
<?=date_indo($this->input->post('sampai_tgl')); ?>
</center></p>
<?php } ?>
<br>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered table-hover" id="tabel1" width="100%" cellspacing="0" >
<thead>
<tr>
<th>No</th>
<th>Tanggal</th>
<th>No Surat</th>
<th>Diterima dari</th>
<th>Perihal</th>
<?php if ($this->input->post('id_bagian_surat')){ ?>
<th>Disposisi</th>
<?php } ?>
</tr>
</thead>
<tbody>
<?php $no=1;
foreach($row->result()as $key => $data) {
?>
<?php $date = date('Y-m-d', strtotime($data->tgl));?>
<tr>
<td><?=$no; ?></td>
<td><?=date_indo($data->tgl)?></td>
<td><?=$data->no_surat?></td>
<td><?=$data->pengirim?></td>
<td><?=$data->perihal?></td>
<?php if ($this->input->post('id_bagian_surat')){ ?>
<td><?php foreach ($bagian->result() as $key => $bgn){ ?>
<?php if ($bgn->id_bagian == $data->id_bagian_surat){ ?>
<span class="badge badge-warning" title="<?=$bgn->ket_bagian?>"> <?php echo
ucwords(strtolower($bgn->nama_bagian)); ?> </span>
<?php } } ?>
</td>
<?php } ?>
</tr>
<?php
$no++;
}
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA

?>
</tbody>
</table>
<br><br>
<?php $date = date('Y-m-d'); ?>
<center>
<strong>Dicetak pada :</strong> <?=longdate_indo($date); ?> <br> <strong>Jam :</strong>
<?=date('h:i:s') ?>
</center>

Powered by TCPDF (www.tcpdf.org)


REPUBLIK INDONESIA
KEMENTERIAN HUKUM DAN HAK ASASI MANUSIA

SURAT PENCATATAN
CIPTAAN
Dalam rangka pelindungan ciptaan di bidang ilmu pengetahuan, seni dan sastra berdasarkan Undang-Undang Nomor 28
Tahun 2014 tentang Hak Cipta, dengan ini menerangkan:

Nomor dan tanggal permohonan : EC00202025939, 4 Agustus 2020

Pencipta
Nama : Husni Faqih, Zamghoni Mukhotob dkk
Alamat : Jl. Mangga RT.01/RW.04, Kel.Procot, Kec.Slawi, Kab.Tegal 52412,
Kabupaten Tegal, Jawa Tengah, 52412
Kewarganegaraan : Indonesia

Pemegang Hak Cipta


Nama : Husni Faqih, Zamghoni Mukhotob, , dkk
Alamat : Jl. Mangga RT.01/RW.04, Kel.Procot, Kec.Slawi, Kab.Tegal 52412,
Kabupaten Tegal, 9, 52412
Kewarganegaraan : Indonesia
Jenis Ciptaan : Program Komputer
Judul Ciptaan : SIPASJANDA (Sistem Informasi Pengarsipan Surat Dan Jadwal
Agenda) STIKes Muhammadiyah Tegal
Tanggal dan tempat diumumkan untuk pertama : 4 Agustus 2020, di Tegal
kali di wilayah Indonesia atau di luar wilayah
Indonesia
Jangka waktu pelindungan : Berlaku selama 50 (lima puluh) tahun sejak Ciptaan tersebut pertama
kali dilakukan Pengumuman.

Nomor pencatatan : 000197528

adalah benar berdasarkan keterangan yang diberikan oleh Pemohon.


Surat Pencatatan Hak Cipta atau produk Hak terkait ini sesuai dengan Pasal 72 Undang-Undang Nomor 28 Tahun 2014
tentang Hak Cipta.

a.n. MENTERI HUKUM DAN HAK ASASI MANUSIA


DIREKTUR JENDERAL KEKAYAAN INTELEKTUAL

Dr. Freddy Harris, S.H., LL.M., ACCS.


NIP. 196611181994031001
LAMPIRAN PENCIPTA

No Nama Alamat

1 Husni Faqih Jl. Mangga RT.01/RW.04, Kel.Procot, Kec.Slawi, Kab.Tegal 52412

2 Zamghoni Mukhotob Dukuh Kedawung RT.01/RW.01, Ds. Padaharja, Kec. Kramat, Kab. Tegal

3 Fandhilah Jl. Porong RT.04/RW.04, Kebondalem, Pemalang

4 Ery Suryanti Dukuh Wungu Pangkah RT.08/RW.06, Ds. Pangkah, Kec.Pangkah, Kab.Tegal

5 Hendra Lesmana Jl. Makam Joglo RT.08/RW.03, Kel.Joglo, Kec.Kembangan, Kab.Brebes

Mahkota Regency Blok K 2/23 RT.07/RW.08, Kel.Sirnabaya, Kec.Telukjambe


6 Ratnawati
Timur, Karawang 41316

LAMPIRAN PEMEGANG

No Nama Alamat

1 Husni Faqih Jl. Mangga RT.01/RW.04, Kel.Procot, Kec.Slawi, Kab.Tegal 52412

Dukuh Kedawung RT.01/RW.01, Ds. Padaharja, Kec. Kramat, Kab. Tegal


2 Zamghoni Mukhotob
52181

3 Fandhilah Jl. Porong RT.04/RW.04, Kebondalem, Pemalang 52312

Dukuh Wungu Pangkah RT.08/RW.06, Ds. Pangkah, Kec.Pangkah, Kab.Tegal


4 Ery Suryanti
52471

5 Hendra Lesmana Jl. Makam Joglo RT.08/RW.03, Kel.Joglo, Kec.Kembangan, Kab.Brebes 11460

Mahkota Regency Blok K 2/23 RT.07/RW.08, Kel.Sirnabaya, Kec.Telukjambe


6 Ratnawati
Timur, Kab.Karawang 41316

Powered by TCPDF (www.tcpdf.org)

Anda mungkin juga menyukai