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
SIPASJANDA
(Sistem Informasi Pengarsipan Surat dan Jadwal Agenda) STIKes Muhammadiyah Tegal
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
2. Halaman Agenda
Menampilkan seluruh agenda yang telah dibuat. Untuk membuka halaman ini dengan
cara klik menu Agenda pada halaman home.
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.
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.
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.
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.
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">»</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
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">©<?=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>
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
} 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
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;
}
$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
}
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
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>
<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
<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();
</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>
require('./vendor/autoload.php');
Manual Penggunaan & Source Code Program Aplikasi SIPASJANDA
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
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);
}
$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);
}
$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));
}
}
$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++;
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');
}
$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++;
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
} ?>
</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>
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:
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
No Nama Alamat
2 Zamghoni Mukhotob Dukuh Kedawung RT.01/RW.01, Ds. Padaharja, Kec. Kramat, Kab. Tegal
4 Ery Suryanti Dukuh Wungu Pangkah RT.08/RW.06, Ds. Pangkah, Kec.Pangkah, Kab.Tegal
LAMPIRAN PEMEGANG
No Nama Alamat
5 Hendra Lesmana Jl. Makam Joglo RT.08/RW.03, Kel.Joglo, Kec.Kembangan, Kab.Brebes 11460