Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
26
BAB II Perancangan Aplikasi
2.1. Rancangan Database
Dalam pembuatan aplikasi ini kita membutuhkan media penyimpanan. Untuk menyimpan data-data yang telah diproses dalam proyek ini kita menggunakan XAMPP sebagai media penyimpanan datanya. Adapun data-data yang tersimpan adalah sebagai berikut:
Gambar II. 1 Tabel Database CV. AMIN GROUP
Didalam database CV. AMIN GROUP terdapat delapan tabel diantaranya:
1. Tabel Admin
Fungsi tabel admin untuk menyimpan data diri agar bisa login ke aplikasi.
Gambar II.2 Tabel Admin CV. AMIN GROUP
27
2. Tabel Detail Transaksi
Fungsi tabel detail transaksi untuk menyimpan data dari keranjang.
Gambar II.3 Tabel Detail Transaksi CV. AMIN GROUP
3. Tabel Keranjang
Fungsi tabel keranjang untuk menyimpan transaksi sementara.
Gambar II.4 Tabel Keranjang CV. AMIN GROUP
28
4. Tabel Kostumer
Fungsi tabel kostumer untuk menyimpan data diri kostumer agar bisa login ke aplikasi dan melakukan transaksi.
Gambar II.5 Tabel Kostumer CV. AMIN GROUP
5. Tabel Mobil
Fungsi tabel mobil untuk menyimpan data mobil.
Gambar II.6 Tabel Mobil CV. AMIN GROUP
29
6. Tabel Pembayaran
Fungsi tabel pembayaran untuk menyimpan data pembayaran yang telah di konfirmasi oleh admin.
Gambar II.7 Tabel Pembayaran CV. AMIN GROUP
7. Tabel Transaksi
Fungsi tabel transaksi untuk menyimpan data transaksi berdasarkan transaksi_id.
Gambar II.8 Tabel Transaksi CV. AMIN GROUP
30
8. Tabel User Token
Fungsi user token untuk menyimpan kode token yang telah pertama kali di daftarkan oleh kostumer.
Gambar II.9 Tabel User Token CV. AMIN GROUP
2.2. Rancangan Form Master
Tampilan dibawah menampilkan halaman awal website aplikasi rental mobil. Yang bisa diakses oleh semua orang dalam memenuhi kebutuhan transpotasi mereka.
Gambar II.10 Form Master SIREMO
31
1. Codingan Form Master
Buat sebuah folder yang bernama template dan buat sebuah
file bernama content, header, header2, footer, header_login,
header_lupaPass dan main
a. header.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-
scale=1.0">
<meta name="description" content="">
<meta name="author" content="webthemez">
<title>Rental Mobil</title>
32 <!-- core CSS -->
<link href="<?= base_url('assets/'); ?>/css/bootstrap.min.css"
rel="stylesheet">
<link href="<?= base_url('assets/'); ?>/css/font-awesome.min.css"
rel="stylesheet">
<link href="<?= base_url('assets/'); ?>/css/animate.min.css"
rel="stylesheet">
<link href="<?= base_url('assets/'); ?>/css/owl.carousel.css"
rel="stylesheet">
<link href="<?= base_url('assets/'); ?>/css/owl.transitions.css"
rel="stylesheet">
<link href="<?= base_url('assets/'); ?>/css/prettyPhoto.css"
rel="stylesheet">
<link href="<?= base_url('assets/'); ?>/css/magnific-popup.css"
rel="stylesheet">
<link href="<?= base_url('assets/'); ?>/css/gallery-1.css"
rel="stylesheet">
<link href="<?= base_url('assets/'); ?>/css/styles.css"
rel="stylesheet">
<!--[if lt IE 9]>
<script src="<?= base_url('assets/'); ?>/js/html5shiv.js"></script>
<script src="<?= base_url('assets/'); ?>/js/respond.min.js"></script>
33 <![endif]-->
<link rel="shortcut icon" href="<?= base_url('assets/');
?>/images/ico/favicon.ico">
</head>
<body id="home">
<header id="header">
<nav id="main-nav" class="navbar navbar-default navbar-fixed-
top" role="banner">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-
toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<i class="fa fa-car" aria-hidden="true"></i>
<div class="logoSection"> <a class="navbar-brand"
href="index.html">Amin Group</a>
<span class="caption">Rental Mobil</span>
34 </div>
</div>
<div class="collapse navbar-collapse navbar-right">
<ul class="nav navbar-nav">
<liclass="scrollactive"><ahref="<?=base_url("auth/#beranda")
?>"></i>Beranda</a></li>
<liclass="scroll"><ahref="<?=base_url('')?>#about"></i>Tentang
Kami</a></li>
<li class="scroll"><a href="#pesan">Cara Pesan</a></li>
<liclass="scroll"><ahref="<?= base_url('')?>#s">Persyaratan</a></li>
<liclass="scroll"><ahref="<?=base_url('')?>#portfolio">Mobil</a></li
>
<li class="scroll"><a href="<?= base_url('')?>#contact-us"></i>Kontak
Kami</a></li>
<?php
if($sesi['email'] !=""):
?>
<li class="scroll">
<ahref="<?= base_url('lihat-keranjang')?>" class="btn btn-lg
glyphicon glyphicon-shopping-cart"><span class="badge badge-
35 primary"><?=$this->Model_user->get_data('keranjang')-
>num_rows(); ?></span></a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"
role="button"aria-haspopup="true"aria-
expanded="false">LAINNYA</b> <span class="caret"></span></a>
<ul class="dropdown-menu">
<li>
<a href="<?php echo base_url('lihat-history')?>">
<span class="glyphicon glyphicon-tags"></span> Data Transaksi
</a>
</li>
<li>
<a href="<?php echo base_url('lihat-history-pembayaran')?>">
<i class="glyphicon glyphicon-bookmark"></i> Data Pembayaran
</a>
</li>
<li>
<a href="<?php echo base_url().'edit_user' ?>">
<i class="glyphicon glyphicon-user"></i> Edit Data Diri
36 </a>
</li>
<li>
<a href="<?php echo base_url().'gantiPass_user'?>">
<i class="glyphicon glyphicon-lock"></i> Ganti Password
</a>
</li>
<li>
<a href="<?php echo base_url('#'); ?>"class="glyphicon glyphicon-
log-out" style="font-size: 18px;" data-toggle="modal"
data-target="#logout">Logout
</a>
</li>
</ul>
<?php else: ?>
<li >
<a href="<?=base_url("login_user") ?>">LOGIN</a>
</li>
<?php endif ?>
</ul>
37 </div>
</div><!--/.container-->
</nav><!--/nav-->
</header><!--/header-->
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
<!-- Modal -->
<!-- Button trigger modal -->
<div class="modal fade" id="logout" tabindex="-1" role="dialog" aria-
labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5class="modal-title"id="exampleModalLabel">Ingin
melanjutkan?</h5>
<button class="close" type="button" data-dismiss="modal" aria-
label="Close">
<span aria-hidden="true">×</span>
</button>
38 </div>
<div class="modal-body">Pilih "Logout" jika anda ingin keluar..</div>
<div class="modal-footer">
<button class="btn btn-primary" type="button" data-
dismiss="modal"> <span class="glyphicon glyphicon-folder-close">
</span> Cancel</button>
<a class="btn btn-primary" href="<?= base_url('logout'); ?>"><span
class="glyphicon glyphicon-log-out"></span> Logout</a>
</div>
</div>
</div>
</div>
b. content.php
<section id="main-slider">
<div class="owl-carousel">
<divclass="item"style="background-image:
url(<?=base_url("assets/images/slider/bg1.jpg") ?>);">
<div class="slider-inner">
<div class="container">
<div class="row">
<div class="carousel-caption">
<div class="carousel-content">
39 <h2>Mengemudi di Kota</h2>
<p>Anda dapat menyewa mobil di tempat kami</p>
</div>
</div>
</div>
</div>
</div>
</div><!--/.item-->
<divclass="item"style="background-image:
url(<?=base_url("assets/images/slider/bg2.jpg") ?>);">
<div class="slider-inner">
<div class="container">
<div class="row">
<div class="carousel-caption">
<div class="carousel-content">
<h2>Amin Group</h2>
<p>Menyediakan mobil-mobil rental dengan harga yang
terjangkau</p>
</div>
</div>
</div>
40 </div> </div>
</div>
</div>
</div><!--/.item-->
</div><!--/.owl-carousel-->
</section><!--/#main-slider-->
c. main.php
<section id="hero-text" class="wow fadeIn">
<div class="container">`
<div class="row">
<div class="col-sm-9"
<h2>Tempat Rental terbaik di kota ini</h2>
<p style="font-size: 16px;" >Kami menyediakan unit mobil sesuai
kebutuhan anda dari mulai city car dan family car dengan harga yang
bersahabat dalam kondisi mobil yang prima, bersih dan terawat.
</p>
</div>
</div>
</div>
</section><!--/#hero-text-->
41 d. index.php
<section id="about">
<div class="container">
<div class="section-header">
<h2 class="section-title text-center wow fadeInDown">Tentang
Kami</h2>
<pstyle="font-size:16px;"class="text-centerwow
fadeInDown">Selamat datang di Rental Amin Group
<br> Semoga anda puas dengan pelayanan kami.</p>
</div>
<div class="row">
<div class="col-sm-6 wow fadeInLeft">
<imgclass="img
responsive"src="<?=base_url()?>assets/images/about.png" alt="">
</div>
<div class="col-sm-6 wow fadeInRight">
<h3 class="column-title">Kami Berusaha Memberikan Yang
Terbaik.</h3>
<pstyle="font-size:
16px;">        
42 Amin Group merupakan perusahaan yang bergerak dibidang jasa
tranportasi rental mobil yang berada di daerah karawang. Baik
perusahaan ataupun perorangan. Banyak perusahaan yang
mempercayakan urusan transportasi kepada Rental ini.</p>
<p style="font-size: 16px;">Mengapa mempercayakan jasa rental
mobil pada Amin Group: </p>
<b>
<p style="font-size: 16px;">1. Kondisi mobil prima bersih dan
terawat<br>
2. Tarif tidak berubah-ubah<br>
3. Mobil berasuransi<br>
4. Driver berpengalaman, menguasai rute dan mengerti kondisi
mobil<br>
5. Lepas kunci(tanpa sewa driver)
</p></b>
</div>
</div>
</div>
</section><!--/#about-->
<section id="pesan">
<div class="container">
<div class="section-header">
43 <h2 class="section-title text-center wow fadeInDown">Cara
Memesan </h2>
<pstyle="font-size: 16px;" class="text-center wow
fadeInDown">Selamat datang di Rental Amin Group
<br> Semoga anda puas dengan pelayanan kami.</p>
</div>
<div class="row">
<div class="col-sm-6 wow fadeInLeft">
<imgclass="img-responsive"src="<?=base_url()
?>assets/images/langkah.jpeg" alt="Jejak" style="width: 520px;">
</div>
<div class="col-sm-6 wow fadeInRight">
<h3 class="column-title">Langkah - langkah dalam menyewa mobil
</h3>
<p style="font-size: 16px;">1. Anda terlebih dahulu harus menjadi
member kami, klik login pada menu utama, disana ada pilihan untuk
daftar ataupun login<br>
2. Setelah anda berhasil mendaftarkan diri menjadi member. Kami
akan mengirimkan konfirmasi aktivasi email, kemudian anda harus
mengaktivasi email tersebut agar dapat login<br>
3. Setelah email aktif anda sudah bisa menyewa mobil yang kami
sediakan<br>
4. Pilih mobil yang ingin disewa lalu klik view detail ataupun
booking<br>
44 5. Setelah itu data anda akan masuk kedalam keranjang disitu anda
harus menentukan tgl booking serta apa saja yang ingin anda
butuhkan seperti menggunakan supir dan lama sewa <br>
6. Setelah menentukan tgl booking anda harus klik update keranjang
lalu klik selesai transaksi ataupun anda ingin melakukan penyewaan
lagi<br>
7. Pada menu selesai transaksi anda bisa langsung menyelesaikan
transaksi dengan cara klik simpan atau pun anda bisa mengedit
transaksi tersebut jika ada kesalahan <br>
8. Setelah semuanya selesai klik simpan pada menu selesai transaksi
dan anda akan dialihkan ke menu transaksi dimana menu tersebut
anda harus melakukan pembayaran lalu setelah melakukan
pembayaran anda akan diminta upload bukti transfer<br>
9. Lalu anda menunggu konfirmasi pembayaran dari admin setelah
proses konfirmasi selesai anda dinyatakan sudah bayar<br>
10. Kemudian anda dapat melihat menu pembayaran tersebut dan
mencetaknya untuk bukti bahwa anda telah melakukan
pembayaran<br
11. Admin akan menghubungi anda apakah mobil akan diantar
ataupun di ambil sendiri oleh kostumer<br>
12. Jangan lupa persyaratan (asli) harap di serahkan kepada admin
sebagai jaminan anda menyewa mobil <br>
13. Selesai
</p></b>
</div> </div>
45 </div>
</section><!--/#pesan-->
<section id="syarat">
<div class="container">
<div class="section-header">
<h2class="section-titletext-centerwow
fadeInDown">Persyaratan</h2>
</div>
<div class="row">
<div class="col-sm-6 wow fadeInLeft">
<imgclass="img-responsive"src="<?=base_url()
?>assets/images/amplop.png" alt="amplop" style="width: 450px;">
</div>
<div class="col-sm-6 wow fadeInRight">
<h3 class="column-title">Persyaratan yang harus dipenuhi</h3>
<p style="font-size: 16px;">Berikut adalah beberapa persyaratan
yang harus anda penuhi ketika ingin menyewa mobil pada kami :</p>
<p><b>1. KTP ASLI</p>
<p>2. KK ASLI</p>
<p>3. STNK MOTOR KENDARAAN ASLI PENYEWA</p>
46 <p>3. SIM MOTOR PENYEWA (HANYA DIPERLIHATKAN SAJA TIDAK DI
UPLOAD)</p></b>
</div>
</div>
</div>
</section><!--/#s-->
<section id="portfolio">
<!-- Start Gallery 1-2 -->
<section id="gallery-1" data-section="gallery-1" class="data-section"
class="content-block section-wrapper gallery-1">
<div class="container">
<div class="section-header">
<h2 class="section-title text-center wow fadeInDown animated"
style="visibility: visible; animation-name: fadeInDown;">Mobil</h2>
<p style="font-size: 16px;" class="text-center wow fadeInDown
animated" style="visibility: visible; animation-name:
fadeInDown;">Disini kami menyediakan berbagai jenis mobil yang
akan di sewakan, dari mulai harga yang menengah sampe harga kelas
atas<br>dan kami menyediakan pelayanan yang baik kepada
Kostumer.</p>
</div>
<div class="row">
<?php foreach ($mobil as $m) { ?>
47 <div id="isotope-gallery-container">
<div class="col-md-4 col-sm-6 col-xs-12 gallery-item-wrapper artwork
creative">
<div class="mobil">
<div class="gallery-item" style="max-height: 500px; height: 500px">
<div class="gallery-thumb">
<img src="<?= base_url('upload-mobil/'.$m->image)?>" class="img-
responsive" alt="1st gallery Thumb">
<div class="image-overlay"></div>
<a href="<?= base_url('upload-mobil/'.$m->image)?>" class="gallery-
zoom"><i class="fa fa-eye"></i></a>
<a href="#" class="gallery-link"></a>
</div>
<div class="gallery-details">
<div class="editContent">
<center>
<h5> <?= strtoupper($m->mobil_merk)?></h5>
<h5> <?= strtoupper($m->mobil_warna) ?></h5>
<h5>Harga</b> Rp.<?= $m->harga_sewa ?></center></h5>
</div>
<div class="editContent">
48 <p>
<?php
if($sesi['email']!=""):
?>
<center><a class="btn btn-danger" href="<?= base_url('view-
detail/'.$m->mobil_id)?>" role="button" style="margin-
top:5px;">Lihat detail »</a></center>.
<?php
else:
?>
<center><a class="btn btn-danger"
href="<?= base_url('view-detail/').$m->mobil_id ?>" role="button"
style="margin-top:5px;">Lihat detail »</a></center>.
<?php endif ?>
</p>
</div>
</div>
</div>
</div>
</div>
<?php } ?>
49 </div>
<!-- /.isotope-gallery-container -->
</div>
<!-- /.row -->
</div>
<!-- /.container -->
</section>
<!--// End Gallery 1-2 -->
</section><!--/#portfolio-->
<section id="testimonial">
<div class="container">
<div class="row">
<div class="col-sm-8 col-sm-offset-2">
<div id="carousel-testimonial" class="carousel slide text-center"
data-ride="carousel">
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
<div class="item active">
<p><imgclass="img-thumbnail"src="<?=base_url()
?>upload/gambar/amin.jpg" alt="" style="width: 100px; height:
10"></p>
50 <h4>Rizal Amin</h4>
<p>Berawal dari pengalaman bekerja di perusahaan otomotif
ternama di Indonesia membuatnya termotivasi menjalankan bisnis
dibidang yang sama dan memiliki tekad yang kuat untuk menjalankan
bisnis diusia muda.</p>
</div>
<div class="item">
<p><imgclass="img-thumbnail"src="<?=base_url()
?>upload/gambar/amin.jpg" alt="" style="width: 100px; height:
10"></p>
<h4>Rizal Amin</h4>
<p>Lahirlah CV.AMIN GROUP yang berasal dari buah pemikirannya
yang bertujuan untuk membantu masyarakat dalam kebutuhan
transportasi. </p>
</div>
</div>
<!-- Controls -->
<div class="btns">
<a class="btn btn-primary btn-sm" href="#carousel-testimonial"
role="button" data-slide="prev">
<span class="fa fa-angle-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
51 <a class="btn btn-primary btn-sm" href="#carousel-testimonial"
role="button" data-slide="next">
<span class="fa fa-angle-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
</div>
</div>
</div>
</div>
</section><!--/#testimonial-->
<section id="contact-us">
<div class="container">
<div class="section-header">
<h2 class="section-title text-center wow fadeInDown">Kontak
Kami</h2>
<pstyle="font-size:16px;"class="text-centerwow
fadeInDown">Hubungi kontak kami dibawah jika anda mengalami
keluhan. <br> Semoga anda puas dengan pelayanan kami.</p>
</div>
</div>
52 </section><!--/#contact-us-->
e. footer.php
<br>
<br>
<section id="contact">
<div class="container-wrapper">
<div class="container contact-info">
<div class="row">
<div class="col-sm-4 col-md-4">
<div class="contact-form">
<address>
<strong><i class="fa fa-home"></i>Alamat : </strong> Kp.Krajan
Utara RT/RW 002/001
Desa Cikampek Barat. Kec Cikampek. Kab Karawang<br><br>
<abbr title="Phone"><b><i class="fa fa-phone"> </i> Rizal Amin :
</b></abbr> 085780798372
</address>
<ahref="https://web.facebook.com/rizal.amin.7568" target="_blank"
>
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x"></i>
53 <i class="fa fa-facebook fa-stack-1x fa-inverse"></i>
</span>
</a>
<ahref="https://www.instagram.com/rizalamin7206/"
target="_blank">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x"></i>
<i class="fa fa-instagram fa-stack-1x fa-inverse"></i>
</span></a>
</div>
</div>
<div class="col-sm-8 col-md-8">
<div class="contact-form">
</div>
</div>
</div>
</div>
</div>
<div id="google-map" style="height:400px" data-latitude="-
6.402312" data-longitude="107.454671"></div>
</section><!--/#bottom-->
54 <script src="<?=base_url() ?>assets/js/jquery.js"></script>
<script src="<?=base_url() ?>assets/js/bootstrap.min.js"></script>
<script
src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script src="<?=base_url() ?>assets/js/owl.carousel.min.js"></script
<script src="<?=base_url() ?>assets/js/mousescroll.js"></script>
<script src="<?=base_url() ?>assets/js/smoothscroll.js"></script>
<scriptsrc="<?=base_url()
?>assets/js/jquery.prettyPhoto.js"></script>
<scriptsrc="<?=base_url() ?>assets/js/jquery.inview.min.js"></script>
<script src="<?=base_url() ?>assets/js/wow.min.js"></script>
<script type="text/javascript" src="<?=base_url()
?>assets/js/jquery.isotope.min.js"> </script><!-- Gallery Filter -->
<script type="text/javascript" src="<?=base_url()
?>assets/js/jquery.magnific-popup.min.js"></script><!-- Gallery
Popup -->
<script src="<?=base_url() ?>assets/js/custom-scripts.js"></script>
<!-- Bootstrap core JavaScript-->
<scriptsrc="<?=base_url('assets/');?>vendor/jquery/jquery.min.js"></
script>
<scriptsrc="<?=base_url('assets/');?>vendor/bootstrap/js/bootstrap.
bundle.min.js"></script>
<!-- Core plugin JavaScript-->
55 <script src="<?= base_url('assets/'); ?>vendor/jquery-
easing/jquery.easing.min.js"></script>
<!-- Custom scripts for all pages-->
<script src="<?=base_url('assets/'); ?>js/sb-admin-2.min.js"></script>
<!-- Page level plugins -->
<script
src="<?=base_url('assets/');?>vendor/datatables/jquery.dataTables.
min.js"></script>
<script
src="<?=base_url('assets/');?>vendor/datatables/dataTables.bootstra
p4.min.js"></script>
<!-- Page level custom scripts -->
<script src="<?= base_url('assets/'); ?>js/demo/datatables-
demo.js"></script>
<!-- Page level custom scripts -->
<script src="<?= base_url('assets/'); ?>js/demo/datatables-
demo.js"></script>
</body>
</html>
56
2. Atur pada config lalu pilih routes dan jalankan
default_controller nya, disini saya memilih auth.php karena
file auth yang akan pertama kali dijalankan.
3. Buat Controller nya diawali dengan huruf besar dan masukan
codingan dibawah ini.
57
2.3. Rancangan Form Transaksi
1. Form Pendaftaran Akun Baru
Dalam proses transaksi penyewaan mobil diperlukan beberapa langkah-langkah seperti akun kostumer, login, dan mulai transaksi penyewaan mobil. Di bawah ini adalah form daftar akun kostumer baru. Sebelum mendaftar menjadi kostumer diharuskan mengisi beberapa persyaratan seperti digambar dibawah ini.
Gambar II.11 Form Pendaftaran Akun Baru
58
1. Codingan Pendaftaran Kostumer
Buat folder didalan view bernama auth lalu buat file baru
dengan nama resgistrasi_user.php
a. registrasi_user.php
<div class="container">
<div class="card o-hidden border-0 shadow-lg my-5 col-lg-5
mx-auto">
<div class="card-body p-0">
<!-- Nested Row within Card Body -->
<div class="row">
<div class="col-lg">
<div class="p-4">
<div class="text-center">
<h1 class="h4 text-gray-900 mb-4">Buat Akun
Baru</h1>
</div>
<?= $this->session->flashdata('message_aktivasi'); ?>
<?= $this->session->flashdata('message_aktivasiOK');
?>
<form class="user" method="post" action="<?=
base_url('pendaftaran-kostumer');?>"
enctype="multipart/form-data">
<!-- FULLNAME -->
59
<div class="form-group">
<input type="text" class="form-control " id="nama"
name="nama"
placeholder="Nama Lengkap" value="<?=
set_value('nama');?>">
<b> <?= form_error('nama','<small class="text-
danger pl-3">', '</small>'); ?>
</div>
<!-- EMAIL -->
<div class="form-group">
<input type="text" class="form-control " id="email"
name="email"
placeholder="Alamat Email Aktif" value="<?=
set_value('email');?>">
<?= form_error('email','<small class="text-danger
pl-3">', '</small>'); ?>
</div>
<!-- PASSWORD 1 -->
<div class="form-group row">
<div class="col-sm-6 mb-3 mb-sm-0">
<small><label> (Min 8 Karakter)</label></small>
<input type="password" class="form-control form-
control-user"
name="password1" placeholder="Password">
<?=form_error('password1','<small class="text-
danger pl-3">', '</small>'); ?>
</div>
<!-- PASSWORD 2 -->
<div class="col-sm-6">
60
<small><label> (Max size : 2048
Kb)</label></small>
<input type="password" class="form-control form-
control-user"
name="password2" placeholder="Ulangi
Password">
</div>
</div>
<!-- ALAMAT -->
<div class="form-group">
<input type="text" class="form-control "
id="alamat" name="alamat"
placeholder="Alamat" value="<?=
set_value('alamat');?>">
<?= form_error('alamat','<small class="text-danger
pl-3">', '</small>'); ?>
</div>
<!-- JENIS KELAMIN -->
<div class="form-group">
<select name="jk" class="form-control ">
<option value="">~Jenis Kelamin~</option>
<option value="L">Laki-Laki</option>
<option value="P">Perempuan</option>
</select>
</div>
<!-- HP -->
<div class="form-group">
<input type="text" class="form-control " id="hp"
name="hp"
61
placeholder="No HP" value="<?= set_value('hp');?>"
pattern="[0-9]{6,12}$" title="Masukan No HP hanya dengan
angka">
<?= form_error('hp','<small class="text-danger pl-
3">', '</small>'); ?>
</div>
<!-- KTP -->
<div class="form-group">
<input type="text" class="form-control " id="nik"
name="nik"
placeholder="NIK KTP" pattern="[0-9]{16,16}$"
title="Masukan NIK KTP hanya dengan angka">
<?= form_error('nik','<small class="text-danger pl-
3">', '</small>'); ?>
</div>
<!-- BUTTON -->
<button type="submit" class="btn btn-primary btn-
user btn-block">
<span class="glyphicon glyphicon-floppy-saved">
Daftar</span></button>
</form>
<hr>
</div>
</div>
</div>
</div>
</div>
</div>
62
2. Atur pada config->routes.php lalu buat routes pendaftar-
kostumer dan arahkan routes itu pada controller yang dituju
3. Buat file controller nya seperti biasa diawali dengan huruf
besar awalanya. Disini saya memberi nama
Registrasi_user.php dan lalu ketikan codinganya dibawah
sini.
File controller yang
63
64
65
66
4. Buat model user dengan nama Model_user.php disini saya
membuat multiple CRUD
67
68
69
70
71
2. Form Login Kostumer
Setelah melalukan pendaftaran akun kostumer dan terdaftar sebagai kostumer di aplikasi SIREMO. Kostumer diharuskan melakukan login untuk melanjutkan transaksi penyewaan mobil. Dibawah ini form login kostumer.
Gambar II.12 Form Login Kostumer
1. Codingan Login User
Buat folder didalam view dengan nama user dan buat file
login.php
a. Login.php
<div class="login" >
<div class="container">
<!-- Outer Row -->
<div class="row justify-content-center">
72
<div class="col-lg-4">
<div class="card o-hidden border-0 shadow-lg my-5">
<div class="card-body p-0">
<!-- Nested Row within Card Body -->
<div class="row">
<div style="margin-right: 50px">
<div class="col-lg">
<div class="p-4">
<div class="text-center">
<h1 class="h4 text-gray-900 mb-4">Halaman Login </h1>
<h6><?= $this->session->flashdata('pesan_gagal'); ?></h6>
</div>
<form class="user" method="post" action="<?=
base_url('cek-loginUser'); ?>">
<div class="form-group">
<input type="text" class="form-control form-control-user"
id="email_login" name="email_login"
placeholder="Alamat Email" value="<?=
set_value('email_login');?>">
<?= form_error('email_login','<small class="text-danger pl-
3">', '</small>'); ?> </div>
<div class="form-group">
73
<input type="password" class="form-control form-control-
user" id="password"
name="password"placeholder="Password">
<?=form_error('password','<small class="text-danger pl-3">',
'</small>'); ?>
</div>
<button type="submit" class="btn btn-primary btn-user btn-
block">
<span class="glyphicon glyphicon-lock">
Login</span></button>
</form>
<hr>
<div class="text-center">
<a class="small" href="<?=
base_url('registrasi')?>">Daftar?</a><br>
<a class="small" href="<?= base_url('lupa-
password')?>">Lupa Password?</a>
</div>
<div class="text-center">
</div>
2. Buat routes nya dan buat controller nya dengan nama
Login_user.php
74
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
Class Login_user extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('Model_user');
}
function index()
{
if ($this->session->userdata('sesi')) {
redirect('auth');
}
$data['sesi'] = $this->session->userdata("sesi");
$this->load->view('template/header', $data);
$this->load->view('template/main', $data);
$this->load->view('user/login',$data);
$this->load->view('template/footer');
}
function cek_login()
{
$data = array(
'required'=>'Mohon diisi terlebih dahulu !',
'valid_email'=>'Mohon cek kembali penulisan email !'
75
);
//Pengecekan Validasi
$this->form_validation->set_rules('email_login','Email',
'required|trim|valid_email',$data, TRUE);
$this->form_validation-
>set_rules('password','Password', 'required|trim',$data, TRUE);
if($this->form_validation->run() != false){
$email=$this->input->post('email_login');
$password=$this->input->post('password');
$kostumer = $this->db->get_where('kostumer',
['email' => $email])->row_array();
$where = array(
'email' => $email,
'password' => md5($password
);
$data= $this->Model_user-
>edit_data($where,'kostumer');
$d = $this->Model_user-
>edit_data($where,'kostumer')->row();
if($kostumer['is_active']==1){
$cek = $data->num_rows();
if($cek > 0){
$session = array(
76
'kostumer_id'=> $d->kostumer_id,
'email' => $d->email
);
$this->session->set_userdata('sesi',$session);
redirect('auth');
}else{
$this->session->set_flashdata('pesan_gagal','<div
class="alert alert-danger" role=
"alert">Email atau Password salah!</div>');
redirect('login_user');
}
}else{
$this->session->set_flashdata('pesan_gagal','<div
class="alert alert-danger" role=
"alert">Email belum terdaftar!</div>');
redirect('login_user');
}
}else{
$data['sesi'] = $this->session->userdata("sesi");
$this->load->view('template/header', $data);
$this->load->view('template/main', $data);
$this->load->view('user/login',$data);
$this->load->view('template/footer');
}
}
}
77
3. Memasuki Menu Mobil
Setelah berhasil login kostumer bisa melakukan penyewaan mobil dengan langkah-langkah seperti memilih menu mobil. Dalam menu mobil sendiri terdapat beberapa unit mobil yang bisa kostumer sewa sesuai kebutuhan.
Gambar II.13 Menu Mobil
78
4. Pilih Mobil
Setelah memilih mobil kostumer lalu pilih “lihat detail” disini kostumer dapat melihat deskripsi tentang mobil yang akan disewa. Pilih “Pesan” untuk melanjutkan transaksi.
Gambar II.14 Detail Mobil
79
Kostumer akan memasuki menu keranjang yang berisi mengenai waktu sewa, lama sewa, memilih menggunakan jasa supir atau tidak dan terdapat pula info pembayaran sewa.
Gambar II.15 Menu Keranjang
Setelah menentukan waktu, lama sewa dan jasa supir, kostumer milih update agar data keranjang tersimpan. Gambar dibawah ini adalah data keranjang yang telah di update.
Gambar II.16 Menu Keranjang Setelah Di Update
80
Pilih “Lanjutkan” untuk meneruskan transaksi. Setelahnya muncul data transaksi yang berisi total transaksi yang harus dibayarkan dan status pembayaran. Kostumer bisa pula merubah data keranjang dengan memilih “Edit Keranjang” namun jika dirasa semua sudah benar pilih “Selesai”.
Gambar II.17 Data Transaksi
Lalu kostumer memasuki tabel transaksi yang terdapat status pembayaran dan bayar untuk melunasi tagihan sewa mobil.
Gambar II.18 Tabel Transaksi
81
1. Buat file didalam folder user dengan nama pembayaran.php
<div class="container">
<div class="card o-hidden border-0 shadow-lg my-5 col-lg-5
mx-auto">
<div class="card-body p-0">
<!-- Nested Row within Card Body -->
<div class="row">
<div class="col-lg">
<div class="p-4">
<div class="text-center">
<h1 class="h4 text-gray-900 mb-4"> <span class="label label-
warning" style="font-size: 16px; color: black; margin-bottom:
10px">Upload Bayar</span></h1></div>
<form class="user" method="post" action="<?=
base_url('pembayaran-upload');?>"
enctype="multipart/form-data">
<div class="form-group">
<label>Transaksi Id</label>
<input type="text" class="form-control" name="transaksi_id"
value="<?= $transaksi->transaksi_id?>" readonly>
</div>
<!-- harga -->
<label> Total Harga</label>
<div class="form-group">
<input type="text" class="form-control"
name="harga_sewa" value="<?= $total?>" readonly>
</div>
82
<div class="form-group">
<label for="pemilik_rek">Atas Nama(Pemilik
Rekening)</label>
<input type="text" name="pemilik_rek" id="pemilik_rek"
class="form-control">
<?= form_error('pemilik_rek','<small class="text-danger" pl-
3>','</small>'); ?>
</div>
<div class="form-group">
<select name="bank" class="form-control ">
<option value="">~Nama Bank~</option>
<option value="MANDIRI">MANDIRI</option>
<option value="BCA">BCA</option>
<option value="BCA">BNI</option>
<option value="BCA">BRI</option>
</select>
</div>
<div class="form-group">
<label>Poto</label><br>
<small><label>(Format) .jpg</label></small>
<input type="file" required="Masukan gambar pribadi"
class="form-control" name="struk_bayar">
</div>
<button type="submit" class="btn btn-primary btn-block " >
<span class="glyphicon glyphicon-cloud-upload">
Upload</span></button>
</form>
</div>
</div>
83
</div>
</div>
</div>
</div>
2. Buat routes seperti biasa dan arahkan pada controller, dan
buat controller dengan nama Pembayaran.php
<?php
defined('BASEPATH') OR exit('No direct script access
allowed');
Class Pembayaran extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('Model_user');
$sesi = $this->session->userdata("sesi");
if(empty($sesi['kostumer_id'])){
redirect('blocked');
}
}
function index(){
$data['sesi'] = $this->session->userdata("sesi");
$sesi = $data['sesi'];
$data['pembayaran'] = $this->Model_user-
>get_data('pembayaran')->result();
$this->load->view('template/header2', $data);
$this->load->view('template/main', $data);
$this->load->view('user/pembayaran',$data);
$this->load->view('template/footer');
}
84
function lihat_pembayaran(){
$data['sesi'] = $this->session->userdata("sesi");
$sesi = $data['sesi'];
$data['kostumer'] = $this->Model_user-
>edit_data('kostumer_id='.$sesi['kostumer_id'],'kostumer')-
>row();
$data['pembayaran'] = $this->Model_user-
>get_pembayaran2($sesi['kostumer_id'])->result();
$a= $this->Model_user->get_data('pembayaran')-
>row_array();
if ($a['no_pembayaran']=="") {
echo "<script>alert('Data Pembayaran Masih
Kosong')</script>";
redirect(base_url(),'refresh');
}
$this->load->view('template/header2', $data);
$this->load->view('template/main', $data);
$this->load->view('user/lihat_pembayaran',$data);
$this->load->view('template/footer');
}
function transaksi_id($transaksi_id){
$data['sesi'] = $this->session->userdata("sesi");
$sesi = $data['sesi'];
$data['keranjang'] = $this->Model_user-
>get_data('keranjang')->result();$data['transaksi']= $this-
>Model_user-
>edit_data(array("transaksi_id"=>$transaksi_id), 'transaksi')-
>row();
$data['mobil']=$this->Model_user->mobil3($transaksi_id)-
>row();
$where=array('transaksi_id'=>$transaksi_id);
85
$data['detail']= $this->Model_user-
>edit_data($where,'detail_transaksi')->result();
$detail = $this->Model_user-
>edit_data(array('transaksi_id'=>$transaksi_id),'detail_transa
ksi')->result();
$data['total'] = 0;
foreach ($detail as $d) {
$data['total'] += $d->harga_sewa;
}
$this->load->view('template/header2', $data);
$this->load->view('template/main', $data);
$this->load->view('user/pembayaran',$data);
$this->load->view('template/footer');
}
function upload_bayar(){
$data = [
'required'=>'{field} Mohon diisi terlebih dahulu !'
];
$this->form_validation->set_rules('pemilik_rek' ,'Pemilik
Rekening' , 'required|trim',$data, TRUE);
$data['sesi'] = $this->session->userdata('sesi');
$sesi = $data['sesi'];
$data['pembayaran'] = $this->Model_user-
>get_data('pembayaran')->result();
$struk_bayar = $this->Model_user->_do_upload('./upload-
bukti', 'struk_bayar');
$harga_sewa= $this->input->post('harga_sewa');
$transaksi_id= $this->input->post('transaksi_id');
$pemilik_rek= $this->input->post('pemilik_rek');
$bank= $this->input->post('bank');
if($this->form_validation->run() != false){
date_default_timezone_set("Asia/Jakarta");
86
$data = array(
'no_pembayaran' => 'B'.date('YmdHis'),
'transaksi_id' => $transaksi_id,
'pemilik_rek' => $pemilik_rek,
'bank' => $bank,
'harga_sewa' => $harga_sewa,
'bukti' => $_FILES['struk_bayar']['name'],
'tgl_bayar' => date('Ymd'),
'status_bayar' =>"Belum Konfirmasi"
);
$this->Model_user->insert_data($data,'pembayaran');
$where=array('transaksi_id'=>$transaksi_id);
$update_transaksi =array('status' => "Menunggu Konfirmasi
Admin");
$this->Model_user-
>update_data($where,$update_transaksi,'transaksi');
redirect('lihat-history');
}else{
$data['sesi'] = $this->session->userdata("sesi");
$sesi = $data['sesi'];
$data['keranjang'] = $this->Model_user-
>get_data('keranjang')->result();
$data['transaksi']= $this->Model_user-
>edit_data(array("transaksi_id"=>$transaksi_id), 'transaksi')-
>row();
$data['mobil']=$this->Model_user->mobil3($transaksi_id)-
>row();
$where=array('transaksi_id'=>$transaksi_id);
$data['detail']= $this->Model_user-
>edit_data($where,'detail_transaksi')->result();
87
$detail = $this->Model_user-
>edit_data(array('transaksi_id'=>$transaksi_id),'detail_transa
ksi')->result();
$data['total'] = 0;\
foreach ($detail as $d) {
$data['total'] += $d->harga_sewa;
}
$this->load->view('template/header2', $data);
$this->load->view('template/main', $data);
$this->load->view('user/pembayaran',$data);
$this->load->view('template/footer');
}
}
Setelah melakukan pembayaran via transfer antar bank kostumer diharuskan mengunggah bukti pembayaran.
Gambar II.19 Unggah Bukti Pembayaran
88
Setelah mengunggah bukti pembayaran kostumer menunggu konfirmasi dari admin. Seperti yang yang terlihat digambar di bawah ini.
Gambar II.20 Tabel transaksi
Setelah kostumer membayarkan total tagihan dan mengunggah bukti pembayaran, admin mengecek data pembayaran yang masuk jika valid admin akan melakukan konfirmasi pembayaran.
Gambar II.21 Data Pembayaran Masuk
89
Gambar II.22 Data Pembayaran Valid
Ketika kostumer telah membayar tagihan sewa dan admin telah mengkonfirmasi pembayaran, kostumer dapat mencetak bukti pembayaran sebagai lampiran ketika akan memakai unit mobil sewa.
Gambar II.23 Bukti Pembayaran
90
2.4. Rancangan Laporan
Dalam setiap transaksi yang dilakukan akan menghasilkan laporan sebagai hasil dari proses transaksi yang terjadi dan menjadi bukti yang valid atas transaksi yang terjadi. Setelah melakukan konfirmasi pembayaran admin dapat cetak bukti transaksi sebagai alat bukti transaksi yang sah atas penyewaan mobil.
Gambar II.24 Data Transaksi
Gambar II.25 Invoice Bukti Pembayaran
91
Bukti-bukti atas terjadinya semua transaksi dapat di lihat dan di cetak sebagai bentuk laporan yang valid dan akurat dapat dipergunakan sebagaimana semestinya. Dalam pencetakan laporan kita dapat memilih waktu terjadinya transaksi menyesuaikan kebutuhan yang ada seperti setiap minggu atau bulan.
Gambar II.26 Laporan Transaksi
92
2.5. Rancangan Backup Data/Keamanan Data
Dalam dunia teknologi informasi, backup data adalah proses membuat data cadangan dengan cara menyalin atau membuat arsip data komputer sehingga data tersebut dapat digunakan kembali apabila terjadi kerusakan atau kehilangan data. Dalam hal ini kita melakukan ekspor data yang berada di dalam database guna menyalin data ke tempat yang aman dalam meminimalisir kerusakan atau kehilangan data.
Gambar II.27 Back up data
93
Keamanan data adalah perlindungan data di dalam suatu sistem melawan terhadap otorisasi tidak sah, modifikasi, atau perusakan dan perlindungan sistem komputer terhadap penggunaan tidak sah atau modifikasi. Dalam hal ini pengunjung yang belum menjadi kostumer tidak bisa melakukan transaksi penyewaan mobil, dikarenakan belum memilik hak akses sebagai kostumer.
Gambar II.28 Keamanan Data