You are on page 1of 12

Mata Kuliah : Sistem Layanan Berbasis Lokasi

Pertemuan : 12

MEMBUAT SISTEM INFORMASI GEOGRAFIS SEKOLAH

 Membuat Halaman Login


1. Pertama, buat file baru dengan nama v_login.php pada folder views dan ketikkan koding
berikut.
==========
<div class="col-sm-4"> </div>
<div class="col-sm-4">

<div class="panel panel-primary">


<div class="panel-heading">
<?= $title ?>
</div>
<!-- /.panel-heading -->
<div class="panel-body">

<?php
if ($this->session->flashdata('pesan')) {
echo '<div class="alert alert-success alert-dismissible"><button type="button"
class="close" data-dismiss="alert" aria-hidden="true">&times;</button>';
echo $this->session->flashdata('pesan');
echo '<a href="#" class="alert-link"></a>.</div>';
}
?>

<?php echo form_open('user/login'); ?>

<div class="form-group">
<label>Username</label>
<input class="form-control" name="username" placeholder="Username" required>
</div>

<div class="form-group">
<label>Password</label>
<input type="password" class="form-control" name="password" placeholder="Password"
required>
</div>

<div class="form-group">
<button class="btn btn-primary btn-block type="submit">Login</button>
</div>

<?php echo form_close() ?>


</div>
</div>
</div>
<div class="col-sm-4"> </div>
==========
Mata Kuliah : Sistem Layanan Berbasis Lokasi
Pertemuan : 12

2. Sehingga file v_login.php yang baru kita tambah tampak seperti berikut.

3. Buka file controller User.php dan tambahkan fungsi login seperti berikut.
==========
<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class User extends CI_Controller {

public function __construct()


{
parent::__construct();
$this->load->library('Googlemaps');
}

public function index()


{
$this->user_login->cek_login();
$data = array (
'title' => 'Data User',
'map' => $this->googlemaps->create_map(),
'isi' => 'user/v_lists'
);
$this->load->view('template/v_wrapper', $data, FALSE);
}

public function login()


{
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');

if ($this->form_validation->run() == TRUE) {
$username=$this->input->post('username');
$password=$this->input->post('password');
$this->user_login->login($username,$password);
}

$data = array (
'title' => 'Login',
Mata Kuliah : Sistem Layanan Berbasis Lokasi
Pertemuan : 12

'map' => $this->googlemaps->create_map(),


'isi' => 'v_login'
);
$this->load->view('template/v_wrapper', $data, FALSE);
}

/* End of file User.php */


==========

4. Buka file v_header.php dan tambahkan koding berikut.


==========
<body>

<div id="wrapper">

<!-- Navigation -->


<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="navbar-header">
<a class="navbar-brand" href="<?= base_url() ?>">GIS Sekolah</a>
</div>

<ul class="nav navbar-right navbar-top-links">

<li class="dropdown">
<?php if ($this->session->userdata('username')<>"") {?>
<a class="dropdown-toggle" href="<?= base_url('user/logout') ?>">
<i class="fa fa-sign-in fa-fw"></i> Logout
</a>
<?php } else { ?>
<a class="dropdown-toggle" href="<?= base_url('user/login') ?>">
<i class="fa fa-sign-in fa-fw"></i> Login
</a>
<?php } ?>
</li>
</ul>
<!-- /.navbar-top-links -->
==========

5. Buka localhost/phpmyadmin dan tambahkan data pada tbl_user misalkan seperti berikut.
Mata Kuliah : Sistem Layanan Berbasis Lokasi
Pertemuan : 12

6. Buat file PHP baru dengan nama M_user.php pada folder models dan ketikkan koding
berikut.
==========
<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class M_user extends CI_Model {

public function login($username,$password)


{
$this->db->select('*');
$this->db->from('tbl_user');
$this->db->where(array(
'username'=>$username,
'password'=>$password,
));
return $this->db->get()->row();
}

/* End of file M_user.php */


==========

7. Untuk proteksi, kita buat file PHP baru pada folder libraries dengan nama User_login.php
dan ketikkan koding berikut.
==========
<?php

defined('BASEPATH') OR exit('No direct script access allowed');


class User_login
{
protected $ci;

public function __construct()


{
$this->ci =& get_instance();
$this->ci->load->model('m_user');
}

public function login($username, $password)


{
$cek=$this->ci->m_user->login($username,$password);
if ($cek)
{
$username=$cek->username;
$nama_user=$cek->nama_user;

$this->ci->session->set_userdata( 'username',$username );
$this->ci->session->set_userdata( 'nama_user',$nama_user );
Mata Kuliah : Sistem Layanan Berbasis Lokasi
Pertemuan : 12

redirect('home');
} else {
$this->ci->session->set_flashdata('pesan', 'Username atau Password Tidak Cocok !!');
redirect('user/login');
}
}

public function cek_login()


{
if ($this->ci->session->userdata('username')=='')
{
$this->ci->session->set_flashdata('pesan', 'Silahkan Login Dulu !!!');
redirect('user/login');
}
}

public function logout()


{
$this->ci->session->unset_userdata('username');
$this->ci->session->unset_userdata('password');
$this->ci->session->set_flashdata('pesan', 'Logout Berhasil !!!');
redirect('user/login');
}

/* End of file User_login.php */


==========

8. Sehingga penambahan file-nya tampak seperti berikut.

9. Buka file autoload.php yang terdapat pada folder config dan tambahkan koding berikut.
==========
$autoload['libraries'] = array('session','form_validation','upload','database','user_login');
$autoload['model'] = array('m_user');
==========

10. Buka file v_list.php pada folder views/sekolah dan tambahkan koding berikut.
==========
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading">
<?= $title ?>
Mata Kuliah : Sistem Layanan Berbasis Lokasi
Pertemuan : 12

</div>
<!-- /.panel-heading -->
<div class="panel-body">

<?php if ($this->session->userdata('username')<>"") {?>


<a href="<?= base_url('sekolah/input') ?> "class="btn btn-primary btn-sm"><i class="fa fa-
plus"></i>Tambah Data</a>
<?php } ?>
<div> <br> </div>

<?php
if ($this->session->flashdata('pesan')) {
echo '<div class="alert alert-success alert-dismissible"><button type="button"
class="close" data-dismiss="alert" aria-hidden="true">&times;</button>';
echo $this->session->flashdata('pesan');
echo '<a href="#" class="alert-link"></a>.</div>';
}
?>
<div class="table-responsive">
<table class="table table-striped table-bordered table-hover" id="dataTables-
example">
<thead>
<tr>
<th>No</th>
<th>Nama Sekolah</th>
<th>Alamat</th>
<th>No Telepon</th>
<th>Latitude</th>
<th>Longitude</th>
<?php if ($this->session->userdata('username')<>"") {?>
<th>Aksi</th>
<?php } ?>
</tr>
</thead>
<tbody>
<?php $no=1; foreach ($sekolah as $key => $value) { ?>
<tr>
<td><?= $no++; ?> </td>
<td><?= $value->nama_sekolah ?></td>
<td><?= $value->alamat ?></td>
<td><?= $value->no_telpon ?></td>
<td><?= $value->latitude ?></td>
<td><?= $value->longitude ?></td>
<?php if ($this->session->userdata('username')<>"") {?>
<td>
<a href="<?= base_url('sekolah/edit/'.$value->id_sekolah); ?>" class="btn btn-
success btn-sm">Edit</a>
<a href="<?= base_url('sekolah/delete/'.$value->id_sekolah); ?>" class="btn
btn-danger btn-sm" onclick=" return confirm('Apakah Ingin Hapus Data??')">Hapus</a>
</td>
<?php } ?>
</tr>
<?php } ?>
</tbody>
Mata Kuliah : Sistem Layanan Berbasis Lokasi
Pertemuan : 12

</table>
</div>
</div>
</div>
==========

11. Sehingga tampilan ketika kita klik menu Sekolah maka akan tampak seperti berikut.

12. Kemudian buka file v_nav.php pada folder views/template dan tambahkan koding berikut.
==========
<div class="navbar-default sidebar" role="navigation">
<div class="sidebar-nav navbar-collapse">
<ul class="nav" id="side-menu">
<li class="sidebar-search">
<div class="input-group custom-search-form">
<input type="text" class="form-control" placeholder="Search...">
<span class="input-group-btn">
<button class="btn btn-primary" type="button">
<i class="fa fa-search"></i>
</button>
</span>
</div>
<!-- /input-group -->
</li>
<li>
<a href="<?= base_url()?>"><i class="fa fa-map fa-fw"></i> Pemetaan</a>
</li>

<li>
<a href="<?= base_url('sekolah') ?>"><i class="fa fa-table fa-fw"></i>
Sekolah</a>
</li>

<?php if ($this->session->userdata('username')<>"") {?>


<li>
<a href="<?= base_url('user') ?>"><i class="fa fa-user fa-fw"></i> User</a>
</li>
<?php } ?>

</ul>
Mata Kuliah : Sistem Layanan Berbasis Lokasi
Pertemuan : 12

</div>
<!-- /.sidebar-collapse -->
</div>
<!-- /.navbar-static-side -->
</nav>

<!-- Page Content -->


<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h1 class="page-header"><?= $title ?></h1>
</div>
==========

13. Buka file controller User.php dan tambahkan fungsi logout.


==========
<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class User extends CI_Controller {

public function __construct()


{
parent::__construct();
$this->load->library('Googlemaps');
}

public function index()


{
$this->user_login->cek_login();
$data = array (
'title' => 'Data User',
'map' => $this->googlemaps->create_map(),
'isi' => 'user/v_lists'
);
$this->load->view('template/v_wrapper', $data, FALSE);
}

public function login()


{
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');

if ($this->form_validation->run() == TRUE) {
$username=$this->input->post('username');
$password=$this->input->post('password');
$this->user_login->login($username,$password);
}

$data = array (
'title' => 'Login',
Mata Kuliah : Sistem Layanan Berbasis Lokasi
Pertemuan : 12

'map' => $this->googlemaps->create_map(),


'isi' => 'v_login'
);
$this->load->view('template/v_wrapper', $data, FALSE);
}

public function logout()


{
$this->user_login->logout();
}

/* End of file User.php */


==========

14. Buka file controller Sekolah.php dan tambahkan koding berikut agar file terproteksi.
==========
<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Sekolah extends CI_Controller {

public function __construct()


{
parent::__construct();
$this->load->library('Googlemaps');
$this->load->model('m_sekolah');
}

public function index()


{
$data = array (
'title' => 'Data Sekolah',
'map' => $this->googlemaps->create_map(),
'sekolah' => $this->m_sekolah->lists(),
'isi' => 'sekolah/v_lists'
);
$this->load->view('template/v_wrapper', $data, FALSE);
}

public function input()


{
$this->user_login->cek_login();
$config['center'] = '-3.713346, 128.178823';
$config['zoom'] = 15;
$this->googlemaps->initialize($config);

$marker['position'] = '-3.713346, 128.178823';


$marker['draggable'] = true;
$marker['ondragend'] = 'setToForm(event.latLng.lat(),event.latLng.lng())';
$this->googlemaps->add_marker($marker);
Mata Kuliah : Sistem Layanan Berbasis Lokasi
Pertemuan : 12

$this->form_validation->set_rules('nama_sekolah', 'Nama Sekolah', 'required');


$this->form_validation->set_rules('no_telpon', 'Nomor Telepon Sekolah', 'required');
$this->form_validation->set_rules('alamat', 'Alamat Sekolah', 'required');
$this->form_validation->set_rules('latitude', 'Latitude', 'required');
$this->form_validation->set_rules('longitude', 'Longitude', 'required');
$this->form_validation->set_rules('deskripsi', 'Deskripsi', 'required');

if ($this->form_validation->run() == FALSE) {
$data = array (
'title' => 'Tambah Data Sekolah',
'map' => $this->googlemaps->create_map(),
'isi' => 'sekolah/v_add'
);
$this->load->view('template/v_wrapper', $data, FALSE);
} else {
$data = array(
'nama_sekolah' => $this->input->post('nama_sekolah'),
'no_telpon' => $this->input->post('no_telpon'),
'alamat' => $this->input->post('alamat'),
'latitude' => $this->input->post('latitude'),
'longitude' => $this->input->post('longitude'),
'deskripsi' => $this->input->post('deskripsi'),
);
$this->m_sekolah->input($data);
$this->session->set_flashdata('pesan', 'Data Berhasil Disimpan');
redirect('sekolah');
}
}

public function edit($id_sekolah)


{
$this->user_login->cek_login();
$config['center'] = '-3.713346, 128.178823';
$config['zoom'] = 15;
$this->googlemaps->initialize($config);

$marker['position'] = '-3.713346, 128.178823';


$marker['draggable'] = true;
$marker['ondragend'] = 'setToForm(event.latLng.lat(),event.latLng.lng())';
$this->googlemaps->add_marker($marker);

$this->form_validation->set_rules('nama_sekolah', 'Nama Sekolah', 'required');


$this->form_validation->set_rules('no_telpon', 'Nomor Telepon Sekolah', 'required');
$this->form_validation->set_rules('alamat', 'Alamat Sekolah', 'required');
$this->form_validation->set_rules('latitude', 'Latitude', 'required');
$this->form_validation->set_rules('longitude', 'Longitude', 'required');
$this->form_validation->set_rules('deskripsi', 'Deskripsi', 'required');

if ($this->form_validation->run() == FALSE) {
$data = array (
'title' => 'Edit Data Sekolah',
'map' => $this->googlemaps->create_map(),
Mata Kuliah : Sistem Layanan Berbasis Lokasi
Pertemuan : 12

'sekolah' => $this->m_sekolah->detail($id_sekolah),


'isi' => 'sekolah/v_edit'
);
$this->load->view('template/v_wrapper', $data, FALSE);
} else {
$data = array(
'id_sekolah' => $id_sekolah,
'nama_sekolah' => $this->input->post('nama_sekolah'),
'no_telpon' => $this->input->post('no_telpon'),
'alamat' => $this->input->post('alamat'),
'latitude' => $this->input->post('latitude'),
'longitude' => $this->input->post('longitude'),
'deskripsi' => $this->input->post('deskripsi'),
);
$this->m_sekolah->edit($data);
$this->session->set_flashdata('pesan', 'Data Berhasil Diedit !!!');
redirect('sekolah');
}
}

public function delete($id_sekolah)


{
$this->user_login->cek_login();
$data = array('id_sekolah' => $id_sekolah);
$this->m_sekolah->delete($data);
$this->session->set_flashdata('pesan', 'Data Berhasil Dihapus !!!');
redirect('sekolah');
}

/* End of file Sekolah.php */


==========

15. Sampai disini proses Membuat Sistem Informasi Geografis Sekolah telah selesai. Jika kita
kunjungi localhost/gis-sekolah maka akan tampak seperti berikut.
Mata Kuliah : Sistem Layanan Berbasis Lokasi
Pertemuan : 12

16. Jika kita klik tombol Login maka akan tampil form login seperti berikut.

17. Jika username dan password yang kita inputkan benar, maka akan tampil tampilan sebagai
admin yang dapat melakukan perubahan data seperti berikut.

18. Untuk folder lengkapnya, dapat didownload DISINI.


19. Untuk menambahkan data user, kita dapat menggunakan form tambah data seperti pada
tambah data sekolah sekaligus dapat menampilkan data user dalam bentuk tabel.

You might also like