Anda di halaman 1dari 141

MAKALAH PROJECT WEB PROGRAMMING

II WEBSITE PENJUALAN KUE & ROTI

Disusun oleh :
Muhammad Abdillah Asyhar
( 12220927 ) Rendy Cahya Pradia (
12221410 )
Eko Nurhidayat (12220863 )
Yola Oktopiani ( 12220660 )
Wiki Nurdiansyah ( 12220933
)

PROGRAM STUDI SISTEM INFORMASI


UNIVERSITAS BINA SARANA INFORMATIKA
KARAWANG
2023
Daftar Isi
BAB I.........................................................................................................................................1
PENDAHULUAN......................................................................................................................1
1.1. Latar Belakang....................................................................................................................1
1.2. Maksud dan tujuan.............................................................................................................2

BAB II........................................................................................................................................3
LANDASAN TEORI.................................................................................................................3
2.1. Konsep Dasar Program.......................................................................................................3
2.2. Bahasa Pemrograman.........................................................................................................3

BAB III.......................................................................................................................................5
PEMBAHASAN.........................................................................................................................5
3.1. Tema Website....................................................................................................................5
3.2. Tampilan Website dan Code..............................................................................................6
A. Tampilan Project Halaman Pembeli....................................................................................6
B. Tampilan Project Halaman Admin......................................................................................13
C. Source Code Project...........................................................................................................20
A. Source Code Controller Dan Model Halaman Pembeli.................................................20
B. Source Code View Tampilan Halaman Pembeli............................................................62
C. Source Code Controller Dan Model Halaman Admin...................................................78
D. Source Code View Tampilan Halaman Admin............................................................126
3.3. List Pembagian Tugas.....................................................................................................133

BAB IV......................................................................................................................................134
PENUTUP..................................................................................................................................134
4.1. Kesimpulan..........................................................................................................................134

i
BAB 1
PENDAHULUA
N

1.1. Latar Belakang

Dalam era digital yang terus berkembang pesat, website kue dan roti menjadi salah satu
bisnis yang tetap populer dan diminati oleh banyak orang. Permintaan akan kue dan produk
roti yang lezat dan berkualitas tinggi terus meningkat, baik untuk perayaan pribadi maupun
acara- acara khusus seperti ulang tahun, pernikahan, atau acara bisnis. Dalam konteks ini,
penting bagi pemilik toko kue untuk memanfaatkan kehadiran online dan memperluas
jangkauan pasar mereka.

Dalam makalah ini, kami akan membahas tentang pengembangan proyek web programming
bertema Website penjualan roti dan kue. Tujuan dari proyek ini adalah untuk menciptakan
sebuah platform online yang dapat membantu pemilik toko kue memperluas jangkauan bisnis
mereka, meningkatkan visibilitas, dan memberikan pengalaman yang lebih baik kepada
pelanggan.

Pada masa sekarang, banyak konsumen yang lebih suka berbelanja secara online, termasuk
dalam membeli kue dan produk roti. Dengan adanya proyek web programming ini, pemilik
toko kue dapat menawarkan berbagai produk mereka secara online, memungkinkan
pelanggan untuk menjelajahi dan memilih dari berbagai pilihan kue yang tersedia.

Selain itu, platform web ini akan memberikan kemudahan bagi pelanggan dalam melakukan
pemesanan dan pembayaran secara online. Pelanggan dapat melihat katalog produk yang
lengkap, melihat informasi detail tentang setiap kue, serta memilih ukuran, rasa, dan dekorasi
yang diinginkan. Mereka juga dapat memilih metode pengiriman atau pengambilan sendiri
yang paling nyaman bagi mereka.

Selain fungsionalitas transaksi, proyek web programming ini juga akan menyediakan
informasi tambahan seperti testimoni pelanggan, daftar harga, dan kontak informasi agar
pelanggan dapat dengan mudah berinteraksi dengan pemilik toko kue. Fitur-fitur ini akan
meningkatkan kepercayaan pelanggan dan membangun hubungan yang lebih baik antara
pemilik toko kue dan konsumen.

Dalam makalah ini, saya akan menjelaskan langkah-langkah yang saya ambil dalam
pengembangan proyek ini, termasuk analisis kebutuhan, desain antarmuka pengguna (UI),
pemilihan teknologi dan bahasa pemrograman, serta implementasi dan pengujian. Saya juga
akan membahas manfaat dari penggunaan proyek web programming ini bagi pemilik toko
kue dan pengalaman pengguna.

Saya berharap bahwa makalah ini dapat memberikan pemahaman yang lebih baik tentang
potensi pengembangan web programming dalam industri toko kue dan memberikan inspirasi
1
bagi para pembaca yang tertarik untuk mengembangkan proyek serupa.

2
1.2. Maksud dan Tujuan

Maksud dari makalah ini adalah untuk menggambarkan proses pengembangan proyek web
programming yang telah dilakukan. Proyek web programming ini memiliki tujuan utama
untuk menciptakan sebuah aplikasi web yang fungsional dan dapat memberikan manfaat bagi
pengguna.

Tujuan dari makalah ini adalah:

1. Menjelaskan Langkah-langkah Pengembangan: Makalah ini akan menjelaskan secara


rinci langkah-langkah yang diambil dalam pengembangan proyek web programming,
termasuk analisis kebutuhan, desain antarmuka pengguna (UI), pemilihan teknologi,
implementasi, dan pengujian. Tujuannya adalah untuk memberikan gambaran
menyeluruh tentang proses pengembangan proyek web programming kepada
pembaca.
2. Memaparkan Penggunaan Teknologi: Makalah ini akan membahas teknologi-
teknologi dan bah2ogin2mrograman yang digunakan dalam proyek web
programming. Tujuannya adalah untuk memberikan pemahaman tentang teknologi-
teknologi terkini yang dapat digunakan dalam pengembangan aplikasi web.
3. Membahas Manfaat dan Keunggulan Proyek: Makalah ini akan menjelaskan manfaat
dan keunggulan dari proyek web programming yang dikembangkan. Tujuannya
adalah untuk menggambarkan bagaimana proyek ini dapat memberikan solusi atau
memenuhi kebutuhan pengguna, serta meningkatkan efisiensi dan kualitas dalam
suatu proses atau aktivitas.
4. Mendorong Inspirasi dan Pembelajaran: Makalah ini juga bertujuan untuk
memberikan inspirasi kepada pembaca yang tertarik dalam mempelajari dan
mengembangkan proyek web programming. Dengan memaparkan proses
pengembangan dan manfaat dari proyek yang telah dilakukan, diharapkan pembaca
dapat mengambil wawasan dan pengetahuan baru untuk diterapkan dalam
pengembangan aplikasi web mereka sendiri.
5. Memberikan Kontribusi dalam Bidang Web Programming: Melalui makalah ini,
diharapkan dapat memberikan kontribusi dalam bidang web programming. Dengan
membagikan pengetahuan dan pengalaman dalam pengembangan proyek web
programming, tujuan ini adalah untuk berpartisipasi dalam pertukaran informasi dan
pemahaman dalam komunitas web programming yang lebih luas.

Melalui maksud dan tujuan yang telah disebutkan di atas, makalah ini diharapkan dapat
memberikan pemahaman yang lebih baik tentang pengembangan proyek web programming
dan memberikan manfaat serta inspirasi bagi pembaca yang tertarik dalam bidang ini.

3
BAB II
LANDASAN TEORI

2.1. Konsep Dasar Program

Lahirnya internet dan website menjawab kebutuhan manusia akan teknologi saat ini,
mendorong pola pikir mereka untuk terus meningkatkan standar kebutuhan informasi dan
telekomunikasi. Bukan hanya perusahaan atau instansi pemerintahan saja, tetapi hampir
semua organisasi yang ada, telah meenggunakan media informasi berbasis website karena
dinilai lebih efisien dan mudah diakses dimana saja. Sehingga hal ini lebih memudahkan
dalam proses pencarian informasi, transfer data, atau promosi. Beberapa istilah dalam dunia
pemrograman diantaranya :
1. Website
Menurut Sidik dkk. (2007:1) World Wide Web(WWW), lebih dikenal dengan
web, merupakan salah satu layanan yang didapat oleh pemakai komputer yang
terhubung ke internet. Web pada awalnya adalah ruang informasi dalam internet,
dengan menggunakan hyperteks pemakan dituntun untuk menemukan informasi
dengan mengikuti link yang disediakan.
2. Internet
Internet berasal dari kata internasional networking yang artinya jaringan
internasional (luas dan mendunia). Jaringan tersebut terbentuk dari banyaknya
jaringan terkecil yang saling tergabung menjadi satu jaringan komputer.
Madcoms(2010:4).
3. Browser Web
Menurut Madcoms (2007:5) “Browser web adalah software yang digunakan untuk
menampilkan informasi dari server web. Software ini kini telah dikembangkan
dengan menggunakan user interface grafis, sehingga pemakai dapat dengan
melakukan ‘POINT’ dan ‘CLICK’ untuk auto dokumen”.
4. Server Web
Server Web adalah server internet yang digunakan sebagai koneksi dan transfer
data. Ketika Anda browsing internet, browser Anda bertindak sebagai klien yang
akan disambungkan kepada Server Web dan Server Web akan kembali
menampilkan informasi dari satu situs, Saputra(2010:2).

2.2. Bahasa Pemograman


Menurut Junaidi (2005:12) Perkembangan bahasa pemrograman web pertama kali
diawali dengan diluncurkannya HTML (Hyperteks Markup Language), yang masih statis
kemudian bahasa ini dikembangkan dengan adanya CSS (Cascading Style Sheet) yang dapat

4
memperindah tampilan website. Semakin berkembangnya bahasa pemrograman web maka
munculah bahasa pemrograman yang dapat berjalan pada system operasi windows sekaligus
pada system operasi UNIX yaitu PHP (PHP Hypertext Prepoccessor). Berikut beberapa
bahasa pemrograman yang dipakai dalam merancang dan membuat sebuah Web :

1. PHP
Menurut Supriono (2008:17) PHP merupakan kependekan dari kata Hypertext
Prepocessor. PHP tergolong sebagai perangkat lunak open source yang diatur
dalam aturan General Purpose Licenci (GPL). Pemrograman PHP sangat cocok
dikembangkan dalam lingkungan web, php biasa diletakkan pada script HTML
atau sebaliknya. PHP digunakan untuk perkembangan web dinamis. Maksudnya,
PHP mampu menghasilkan website yang secara terus menerus hasilnya bisa
berubah- ubah sesuai dengan pola yang diberikan.
2. CSS (Cascading Style Sheet)
Cascading Style Sheet (CSS) adalah satu kumpulan kode-kode untuk memformat,
yang mengandalkan satu tampilan isi pada halamam web. Penggunaan style CSS
pada format satu halaman diletakan terpisah dari tampilan halaman.
3. CI3 (CodeIgniter)
CodeIgniter adalah kerangka kerja pengembangan web (web framework) yang
bersifat open-source dan menggunakan bahasa pemrograman PHP. Kerangka
kerja ini dirancang untuk mempermudah pengembangan aplikasi web dengan
menyediakan struktur dan fitur yang dapat digunakan secara konsisten.
CodeIgniter fokus pada kecepatan, kebersihan kode, dan kesederhanaan. Pada
project ini kami menggunakan CodeIgniter Versi 3 (CI3).

Berikut adalah beberapa karakteristik utama dari CodeIgniter:

1. Ringan: CodeIgniter dirancang untuk menjadi ringan dan cepat. Ini berarti
bahwa aplikasi yang dibangun dengan CodeIgniter dapat dijalankan dengan cepat
tanpa membebani server.
2. MVC (Model-View-Controller): CodeIgniter mengikuti pola desain arsitektur
MVC yang memisahkan logika aplikasi menjadi tiga komponen utama: Model
(logika data), View (tampilan), dan Controller (pengontrol logika).
3. Dokumentasi yang baik: CodeIgniter menyediakan dokumentasi yang baik dan
mudah dimengerti, memudahkan pengembang untuk memahami cara
menggunakan fitur-fitur yang disediakan oleh kerangka kerja ini.
4. Mudah dipelajari: CodeIgniter dirancang dengan filosofi kebersihan dan
kesederhanaan sehingga mudah dipelajari dan diimplementasikan, bahkan untuk
pemula.

5
5. Fitur-fitur bawaan: Meskipun ringan, CodeIgniter menyediakan berbagai fitur
bawaan yang membantu pengembang dalam pengembangan aplikasi web, seperti
manajemen database, manipulasi gambar, dan lainnya.

6. Tidak memerlukan konfigurasi rumit: CodeIgniter dirancang agar dapat diinstal


dan dikonfigurasi dengan mudah, tanpa memerlukan pengaturan rumit.
7. Komunitas yang besar: CodeIgniter memiliki komunitas pengembang yang
besar, sehingga pengembang dapat dengan mudah menemukan dukungan dan
sumber daya di forum, dokumentasi, dan situs web lainnya.
Kode sumber CodeIgniter dapat diunduh secara gratis, dan pengembang dapat
menggunakan atau memodifikasi sesuai kebutuhan proyek mereka.

BAB III
PEMBAHASA
N

3.1. Tema Website

Menurut KBBI (Kamus Besar Bahasa Indonesia), Website kue adalah tempat yang
menjual berbagai macam kue. Di website kue, biasanya tersedia berbagai jenis kue seperti
kue basah, kue kering, roti, pastry, dan mungkin juga kue-kue spesial lainnya. Website kue
dapat berupa usaha kecil-kecilan, warung kue, atau bahkan Website kue besar yang memiliki
variasi produk yang lebih lengkap. Namun seiring berjalannya waktu Website kue yang
terkadang bisa dibilang usaha kecil- kecilan pun bisa diubah menjadi Webiste yang segala
aspeknya memanfaatkan teknologi yang hadir di zaman yang modern ini.
Di era modern ini, hampir setiap aspek masyarakat dipengaruhi oleh kehadiran
teknologi dan sistem komputer. Dalam perdagangan menggunakan sistem komputer, salah
satu contohnya adalah website. Website merupakan suatu halaman atau kumpulan halaman
yang dapat diakses melalui internet. Website dapat digunakan sebagai platform untuk
melakukan transaksi jual beli secara online maupun secara langsung untuk media memesan
barang yang akan dipesan atau dibeli.
Dengan menggunakan website sebagai platform jual beli, transaksi dapat dilakukan
dengan lebih efisien dan mudah, karena pembeli dapat memilih produk, melihat detailnya,
melakukan pembayaran tanpa kendala.
Oleh sebab itu, sesuai dengan tema yang ajukan untuk project kali ini mata kuliah
WEB PROGRAMMING 2 ini, kami membuat sebuah website penjulan kue dan roti. Terdiri
dari berbagai macam menu kue yang tersedia serta harga dari setiap kue yang dijual, hal ini
memudahkan untuk mengetahui apa yang dipesan pelanggan disetiap pembeliannya.
6
3.2. Tampilan Website Dan Code Website

A. Tampilan Project Halaman Pembeli ( Localhost Tampilan )

1. Tampilan Home

Pada tampilan home terdapat tampilan navbar dimana tampilan ini terdapat menu Produk kami, Kontak
dan Login.

7
2. Tampilan Halaman Login Dan Registrasi

Tampilan ini berisi conten halaman login bagi user yang sudah melakukan registrasi sebelumnya (sudah
mempunyai akun). Jika user belum registrasi maka bisa langsung mengklik tombol ‘create an Account’.
Pada tampilan juga terdapat fitur lupa password untuk user yang lupa password yang digunakan saat
mendaftar.

8
3. Tampilan Halaman Forgot Password

Tampilan ini Berfungsi untuk Mengubah Password User Pembeli, system kerjanya yaitu
user menginput alamat email yang terdaftar pada website. Setelah menginput si user
mengklik forgot password. Maka link lupa password akan dikirim ke email user. User
tinggal klik link tersebut dan bisa langsung mengganti passwordnya.

4. Tampilan Halaman Produk

Isi dari tampilan ini berupa produk-produk yang kami jual. Pada tampilan ini costumer
dapat memilih produk dan customer dapat menambahkan produk ke keranjang belanja.

9
5. Tampilan Halaman Detail Produk

Pada Tampilan ini customer bisa melihat detail dari produk yang kami jual,
selain itu juga terdapat tombol add to cart untuk memasukkan produk ke dalam
keranjang.

6. Halaman Kontak
Halaman ini digunakan untuk costumer menyampaikan kritik dan saran kepada toko
kami, agar dapat lebih berkembang dari segala aspek.

1
0
7. Tampilan Halaman Gallery

Pada Halaman ini customer bisa melihat foto atau gallery dari produk kami.

8. Tampilan Keranjang

Pada halaman ini costumer bisa mengecek kembali barang yang akan di check out,
sebelum melakukan transaksi pembayaran. Pada halaman ini juga costumer bisa
melakukan update keranjang, menghapus produk yang tidak jadi dibeli, dan
menambah Quantity/Jumlah.

10
9. Halaman Cekout

pada halaman check out ini, costumer sudah fix melakukan pemesanan barang yang akan
dibeli. Costumer tinggal melakukan pengisian Alamat penerima, nama penerima, nomer
handphone, total yang harus dibayar dan lain-lain

10. Halaman Pesanan Saya

Berisi pesanan pelanggan yang sudah checkout dan melakukan pembayaran. Lalu
tinggal diproses oleh admin untuk melakukan pengiriman barang.

11
11. Tampilan Profil

Berisi tentang akun profil pelanggan, dihalaman ini pelanggan dapat mengupdate foto profile,
nama, alamat dan nomer handphone costumer dan lain-lain.

12. Halaman Histori Pesanan Atau Pembelian

Pada Halaman Ini customer bisa melihat histori pembelian barang yang sudah pernah ia
beli sebelumnya.

12
B. Tampilan Halaman Admin

1. Tampilan Halaman Login dan registrasi

Tampilan ini berisi conten halaman login bagi user admin yang sudah
melakukan registrasi sebelumnya (sudah mempunyai akun). Jika user admin belum
registrasi maka bisa langsung mengklik tombol ‘create an Account’. Pada tampilan
juga terdapat fitur lupa password untuk user admin yang lupa password yang
digunakan saat mendaftar

13
2. Tampilan Halaman Forgot Password Admin

Tampilan ini Berfungsi untuk Mengubah Password User Admin, system kerjanya
yaitu user menginput alamat email yang terdaftar pada website. Setelah menginput
si user mengklik forgot password. Maka link lupa password akan dikirim ke email
user admin. Setelah itu user tinggal klik link tersebut dan bisa langsung mengganti
passwordnya.

3. Tampilan Halaman Dashboard Admin

Tampilan Ini adalah tampilan yang akan muncul pada saat user admin sudah
melakukan login, di dalam nya terdapat pengelolaan data barang, data
kategori barang, data transaksi, data rincian transaksi dan lain-lain.

14
4. Tampilan Data Pesanan Masuk

Tampilan ini berfungsi untuk mengelola data pesanan masuk yang dikirimkan
oleh pembeli di halaman pembeli.

5. Tampilan Data Barang

Tampilan ini berisikan pengelolaan data barang, di dalam nya terdapat


system CRUD untuk mengelola data nya.

15
6. Tampilan Data Kategori Barang

Tampilan ini berfungsi untuk mengelola data kategori barang, di dalamnya


terdapat system CRUD untuk mengelola data nya.

7. Tampilan Data Transaksi

Tampilan Ini berfungsi untuk mengelola data transaksi, di dalam nya


terdapat system CRUD untuk mengelola data nya.

16
8. Tampilan Data Rincian Transaksi

Tampilan ini berfungsi untuk mengelola data rincian transaksi, di


dalamnya terdapat system CRUD untuk mengelola data nya.

9. Tampilan Data User Pembeli

Tampilan ini berfungsiuntuk mengelola data user pembeli, di dalamnya


terdapat system detail data dan juga hapus data untuk mengelola data nya.

17
10. Tampilan Data User Admin

Tampilan ini berfungsi untuk mengelola data user admin, di dalamnya


terdapat system Detail data, Hapus Data dan juga Edit data untuk mengelola data
nya.

11. Tampilan Data Rekening Toko

Tampilan ini berfungsi untuk mengelola data rekening toko, di dalamnya


terdapat system delete data, detail data, dan edit data untuk mengelola data nya.

18
12. Tampilan Data Pesan

Tampilan ini berfungsi untuk mengelola data pesan yang telah di kirimkan
oleh pembeli di halaman pembeli, di dalam nya terdapat system delete data, detail
data, dan edit data untuk mengelola data nya.

13. Tampilan Halaman Profile

Tampilan ini berfungsi untuk mengelola profile admin, di dalam nya


terdapat system untuk mengedit foto, lalu mengedit biodata

19
C. Source Code Project

Link Source Code Lengkap nya :


https://drive.google.com/drive/folders/13F0M3fDLIxk9pqExTVkaYcYu5k
FR4jYz?usp=sharing

A. Source code Controller dan Model Halaman Pembeli

1. Source Code Controller Halaman Pembeli


<?php
class Halaman_Pembeli extends CI_Controller
{

public function construct()


{
parent:: construct();

if (!$this->session->userdata(“email”)) {
redirect(“Home/index”);
} else {
if ($this->session->userdata(“role_id”) != 2) {
redirect(“Halaman_Eror”);
}
}

$this->load->helper(“form”);
}

public function index()


{
$produk = $this->db->get(“tb_barang”)->row_array();

$this->load->library(‘pagination’);

$config[‘base_url’] = ‘http://localhost/project-toko-
roti/Halaman_Pembeli/index’;
$config[‘total_rows’] = $this->Model_Halaman_Pembeli-
>GetJumlahProduk();
$config[‘per_page’] = 8;

$config[‘full_tag_open’] = ‘<nav aria-label=”Page navigation


example”><ul class=”pagination”>’;
$config[‘full_tag_close’] = ‘</ul></nav>’;

$config[‘first_link’] = ‘First’;
$config[‘first_tag_open’] = ‘<li class=”page-item”>’;
20
$config[‘first_tag_close’] = ‘</li>’;

$config[‘last_link’] = ‘Last’;
$config[‘last_tag_open’] = ‘<li class=”page-item”>’;
$config[‘last_tag_close’] = ‘</li>’;

$config[‘next_link’] = ‘&raquo’;
$config[‘next_tag_open’] = ‘<li class=”page-item”>’;
$config[‘next_tag_close’] = ‘</li>’;

$config[‘prev_link’] = ‘&laquo’;
$config[‘prev_tag_open’] = ‘<li class=”page-item”>’;
$config[‘prev_tag_close’] = ‘</li>’;

$config[‘cur_tag_open’] = ‘<li class=”page-item active”><a


class=”page-link” href=”#”>’;
$config[‘cur_tag_close’] = ‘</a></li>’;

$config[‘num_tag_open’] = ‘<li class=”page-item”>’;


$config[‘num_tag_close’] = ‘</li>’;

$config[‘attributes’] = array(‘class’ => ‘page-link’);

$this->pagination->initialize($config);

$data[“start”] = $this->uri->segment(3);

$data[“judul”] = “Halaman Semua Produk”;


$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“produk”] = $this->Model_Halaman_Pembeli-
>GetAllProduk($config[“per_page”], $data[“start”]);
$data[“kategori”] = $this->Model_Halaman_Pembeli->GetCategory();
$this->load->view(“Halaman_Produk”, $data);
}

public function StokBarang()


{
$data[“judul”] = “Halaman Stok Kosong”;
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Stok_Kosong”, $data);
}

public function TampilCategory($id_kategori)


{
// Pagination
$this->load->library(‘pagination’);

21
$config[‘base_url’] = ‘http://localhost/project-toko-
roti/Halaman_Pembeli/TampilCategory/’ . $id_kategori;
$config[‘total_rows’] = $this->Model_Halaman_Pembeli-
>GetJumlahProdukCategory($id_kategori);
$config[‘per_page’] = 8;

$config[‘full_tag_open’] = ‘<nav aria-label=”Page navigation


example”><ul class=”pagination”>’;
$config[‘full_tag_close’] = ‘</ul></nav>’;

$config[‘first_link’] = ‘First’;
$config[‘first_tag_open’] = ‘<li class=”page-item”>’;
$config[‘first_tag_close’] = ‘</li>’;

$config[‘last_link’] = ‘Last’;
$config[‘last_tag_open’] = ‘<li class=”page-item”>’;
$config[‘last_tag_close’] = ‘</li>’;

$config[‘next_link’] = ‘&raquo’;
$config[‘next_tag_open’] = ‘<li class=”page-item”>’;
$config[‘next_tag_close’] = ‘</li>’;

$config[‘prev_link’] = ‘&laquo’;
$config[‘prev_tag_open’] = ‘<li class=”page-item”>’;
$config[‘prev_tag_close’] = ‘</li>’;

$config[‘cur_tag_open’] = ‘<li class=”page-item active”><a


class=”page-link” href=”#”>’;
$config[‘cur_tag_close’] = ‘</a></li>’;

$config[‘num_tag_open’] = ‘<li class=”page-item”>’;


$config[‘num_tag_close’] = ‘</li>’;

$config[‘attributes’] = array(‘class’ => ‘page-link’);

$this->pagination->initialize($config);

$data[“start”] = $this->uri->segment(4);

// Tutup Pagination

$data[“judul”] = $this->Model_Halaman_Pembeli-
>JudulCategory($id_kategori);
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“kategoriproduk”] = $this->Model_Halaman_Pembeli-
>ViewCategory($id_kategori, $config[“per_page”], $data[“start”]);

22
$data[“kategori”] = $this->Model_Halaman_Pembeli->GetCategory();
$this->load->view(“Halaman_Kategori_Produk”, $data);
}

public function Keranjang($id_barang)


{
$produk = $this->db->get_where(“tb_barang”, [“id_barang” =>
$id_barang])->row_array();

$qty = $this->input->post(“qty”);

if (!$produk[“stok”]) {
$this->session->set_flashdata(“Stok”, “Kosong”);
redirect(“Halaman_Pembeli/StokBarang”);
} else {
if ($qty > $produk[“stok”]) {
$this->session->set_flashdata(“lebihbatass”, “Stok”);
redirect(“Halaman_Pembeli/index”);
} else {
$data = [
‘id’ => $produk[“id_barang”],
‘qty’ => $this->input-
>post(“qty”), ‘price’ =>
$produk[“harga_barang”], ‘name’ =>
$produk[“nama_barang”],
‘kategori’ => $produk[“kategori_barang”],
‘gambar’ => $produk[“gambar”],
‘stok’ => $produk[“stok”],
‘berat’ => $produk[“berat”]
];

$this->cart->insert($data);
$this->session->set_flashdata(“berhasil”, “BERHASIL”);
redirect(“Halaman_Pembeli/index”);
}
}
}

public function HalamanKeranjang()


{

if (!$this->cart->contents()) {
$this->session->set_flashdata(“Kosonggg”, “KOSONG”);
redirect(“Halaman_Pembeli/HalamanKeranjangKosong”);
} else {
$data[“judul”] = “Halaman Keranjang Belanja”;

23
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Keranjang_Belanja”, $data);
}
}

public function HapusBarangKeranjang($items)


{
$this->cart->remove($items);
$this->session->set_flashdata(“Hapuss”, “Berhasil”);
redirect(“Halaman_Pembeli/HalamanKeranjang”);
}

public function HapusSemuaKeranjang()


{

$this->cart->destroy();
$this->session->set_flashdata(“Hapus”, “Berhasil”);
redirect(“Halaman_Pembeli/HalamanKeranjang”);
}

public function UpdateCart()


{
$i = 1;
foreach ($this->cart->contents() as $items) {
$data = array(
‘rowid’ => $items[“24ogin”],
‘qty’ => $this->input->post($i . ‘[qty]’)
);

$qty = $this->input->post($i . ‘[qty]’);


$produk = $this->db->get_where(“tb_barang”, [“id_barang” =>
$items[“id”]])->row_array();

if ($qty > $produk[“stok”]) {


$this->session->set_flashdata(“lebihbatas”, “Stok”);
redirect(“Halaman_Pembeli/HalamanKeranjang”);
} else {
$i++;
$this->cart->update($data);
}
}

if ($this->cart->contents()) {
$this->session->set_flashdata(‘Keranjang’, ‘DI UPDATE’);
redirect(‘Halaman_Pembeli/HalamanKeranjang’);
} else {
$this->session->set_flashdata(‘Keranjangg’, ‘KOSONG’);

24
redirect(“Halaman_Pembeli/HalamanKeranjang”);
}
}

public function DetailProduk($id_barang)


{
$data[“judul”] = “Halaman Detail Produk”;
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailproduk”] = $this->Model_Halaman_Pembeli-
>GetDetailProduk($id_barang);
$this->load->view(“Halaman_Detail_Produk”, $data);
}

public function Profile()


{

$data[“judul”] = “Halaman Akun Profile Pembeli”;


$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Profile_Pembeli”, $data);
}

public function UpdateProfileUser()


{

$data[“user”] = $this->db->get_where(“user”, [“email” => $this-


>session->userdata(“email”)])->row_array();

$this->form_validation->set_rules(“nama”, “NAMA”, “required|trim”, [


“required” => “Kolom Nama Harus Diisi”,
]);

$this->form_validation->set_rules(“alamat”, “ALAMAT”, “required”, [


“required” => “Kolom Alamat Harus Diisi”,
]);

$this->form_validation->set_rules(“jenis_kelamin”, “JENIS KELAMIN”,


“required”, [
“required” => “Kolom Jenis Kelamin Harus Diisi”
]);

$this->form_validation->set_rules(“tempat_lahir”, “TEMPAT LAHIR”,


“required|alpha”, [
“required” => “Kolom Tempat Lahir Harus Diisi”,

25
“alpha” => “Kolom Tempat Lahir Tidak Boleh Di input Menggunakan
Angka”
])
;

$this->form_validation->set_rules(“tanggal_lahir”, “TANGGAL LAHIR”,


“required”, [
“required” => “Kolom Tanggal lahir Harus Diisi”
]);

$this->form_validation->set_rules(“no_telepon”, “NO TELEPON”,


“required|integer”, [
“required” => “Kolom No Hp Harus Diisi”,
“integer” => “Kolom No Hp Hanya Boleh Di input Menggunakan Angka”
]);

if ($this->form_validation->run() == FALSE) {

$this->session->set_flashdata(“profile”, “GAGAL”);
$data[“judul”] = “Halaman Akun Profile Pembeli”;
$this->load->view(“Halaman_Profile_Pembeli”, $data);
} else {
$this->Model_Halaman_Pembeli->UpdateProfileUser();
$this->session->set_flashdata(“26ogin26r”, “BERHASIL”);
redirect(“Halaman_Pembeli/Profile”);
}
}

public function Lengkapi()


{

$data[“judul”] = “Halaman Chekout”;


$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Lengkapi_Pembeli”, $data);
}

public function KeranjangKosong()


{
$data[“judul”] = “Halaman Chekout”;
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Keranjang_Kosong_Pembeli”, $data);
}

public function HalamanKeranjangKosong()


{

$data[“judul”] = “Halaman Keranjang Kosong”;


26
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Keranjang_Kosong_Pembeli”, $data);
}

public function Checkout()


{

$user = $this->db->get_where(“user”, [“email” => $this->session-


>userdata(“email”)])->row_array();

if (!$this->cart->contents()) {
$this->session->set_flashdata(“kosong”, “KOSONG”);
redirect(“Halaman_Pembeli/KeranjangKosong”);
} else {
if (!$user[“alamat”]) {
$this->session->set_flashdata(“lengkapialamat”, “KOSONG”);
redirect(“Halaman_Pembeli/Lengkapi”);
} else {
if (!$user[“no_telepon”]) {
$this->session->set_flashdata(“lengkapinotelepon”,
“KOSONG”);
redirect(“Halaman_Pembeli/Lengkapi”);
} else {
if (!$user[“alamat”] && !$user[“no_telepon”]) {
$this->session-
>set_flashdata(“lengkapialamatnotelepon”, “KOSONG”);
redirect(“Halaman_Pembeli/Lengkapi”);
} else {

$this->form_validation->set_rules(“nama_alamat”, “NAMA
ALAMAT”, “required”,
[ “required” => “Kolom Nama Alamat Harus Diisi”
]);

$this->form_validation->set_rules(“nama_penerima”,
“NAMA PENERIMA”, “required”, [
“required” => “Kolom Nama Penerima Alamat Harus
Diisi”
]);

$this->form_validation-
>set_rules(“no_handphone_penerima”, “NO HANDPHONE PENERIMA”,
“required|integer”, [
“required” => “Kolom No Handphone Penerima Harus
Diisi”,
“integer” => “Kolom No Handphone Penerima Harus
Diisi Menggunakan
Angka”

27
]);

$this->form_validation-
>set_rules(“alamat_lengkap_penerima”, “ALAMAT LENGKAP PENERIMA”, “required”, [
“required” => “Kolom Alamat Lengkap Penerima Harus
Diisi”,
]);

$this->form_validation->set_rules(“kecamatan”,
“KECAMATAN”, “required”, [
“required” => “Kolom Kecamatan Harus Diisi”,
]);

$this->form_validation->set_rules(“kode_pos”, “KODE
POS”, “required|integer”, [
“required” => “Kolom Kode Pos Harus Diisi”,
“integer” => “Kolom Kode Pos Harus Diisi
Menggunakan Angka”
])
;

$this->form_validation->set_rules(“kota”, “KOTA”,
“required”, [
“required” => “Kolom Kota Harus Diisi”,
]);

$this->form_validation->set_rules(“provinsi”,
“PROVINSI”, “required”, [
“required” => “Kolom Provinsi Harus Diisi”,
]);

$this->form_validation->set_rules(“atas_nama”, “ATAS
NAMA”, “required”,
[ “required” => “Kolom Atas Nama Harus Diisi”,
]);

$this->form_validation->set_rules(“nama_bank”, “NAMA
BANK”, “required”,
[ “required” => “Kolom Nama Bank Harus Diisi”
]);

$this->form_validation->set_rules(“no_rek”, “NO
REKENING”, “required|integer”, [
“required” => “Kolom No Rek Harus Diisi”,
“integer” => “Kolom No Rek Harus Diisi
Menggunakan
Angka”
]);

28
if ($this->form_validation->run() == FALSE) {

29
$data[“judul”] = “Halaman Checkout”;
$data[“user”] = $this->db->get_where(“user”,
[“email” => $this->session->userdata(“email”)])->row_array();
$data[“rekening”] = $this->db->get(“rekening”)-
>row_array();
$this->load->view(“Halaman_Chekout_Pembeli”,
$data);
} else {
$config[‘upload_path’] = ‘./assets/bukti_bayar/’;
$config[‘allowed_types’] = ‘gif|jpg|png|jpeg’;
$config[‘max_size’] = ‘9000’;

$this->upload->initialize($config);

$field_name = ‘bukti_bayar’;
if (!$this->upload->do_upload($field_name)) {
echo $this->upload->display_errors();
} else {
$upload_data = [
‘upload’ => $this->upload->data()
];
$config[‘image_library’] = ‘gd2’;
$config[‘source_image’] =
‘./assets/bukti_bayar/’ . $upload_data[‘upload’][‘file_name’];
$this->load->library(‘image_lib’, $config);
}

$bukti_bayar =
$upload_data[‘upload’][‘file_name’];

date_default_timezone_set(“Asia/Jakarta”);
$data = [
“id_pembeli” => $this->session-
>userdata(“id”),
“no_order” => $this->input->post(“no_order”),
“tgl_order” => date(“Y-m-d H:i:s”),
“nama_alamat” => $this->input-
>post(“nama_alamat”),
“nama_penerima” => $this->input-
>post(“nama_penerima”),
“no_handphone_penerima” => $this->input-
>post(“no_handphone_penerima”),
“alamat_lengkap_penerima” => $this->input-
>post(“alamat_lengkap_penerima”),
“kecamatan” => $this->input-
>post(“kecamatan”),
“kode_pos” => $this->input->post(“kode_pos”),
“kota” => $this->input->post(“kota”),

21
0
“provinsi” => $this->input->post(“provinsi”),
“berat_total” => $this->input-
>post(“berat_total”),
“total_bayar” => $this->input-
>post(“total_bayar”),
“status_bayar” => ‘1’,
“status_order” => 0,
‘atas_nama’ => $this->input-
>post(“atas_nama”),
‘nama_bank’ => $this->input-
>post(“nama_bank”),
‘no_rek’ => $this->input->post(“no_rek”),
‘bukti_bayar’ => $bukti_bayar,
];

$this->Model_Halaman_Pembeli-
>InsertTransaksi($data);

foreach ($this->cart->contents() as $items) {


$data2 = [
“no_order” => $this->input-
>post(“no_order”),
“id_barang” => $items[“id”],
“gambar” => $items[“gambar”],
“nama_barang” => $items[“name”],
“harga_barang” => $items[“price”],
“berat” => $items[“berat”],
“qty” => $items[“qty”],
“subtotal” => $items[“subtotal”],
“kategori_barang” => $items[“kategori”]
];

$this->Model_Halaman_Pembeli-
>InsertCart($data2);

$barang = $this->db->get_where(“tb_barang”,
[“id_barang” => $items[“id”]])->row_array();

$stok = $barang[“stok”] - $items[“qty”];

$data = [
“stok” => $stok
];

$this->db->where(“id_barang”, $items[“id”]);
$this->db->update(“tb_barang”, $data);
}

30
$this->cart->destroy();
$this->session->set_flashdata(“berhasill”,
“BERHASIL”);
redirect(“Halaman_Pembeli/PesananSaya”);
}
}
}
}
}
}

public function PesananSaya()


{
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“sudahbayar”] = $this->Model_Halaman_Pembeli->SudahBayar();
$data[“diproses”] = $this->Model_Halaman_Pembeli->Diproses();
$data[“dikirim”] = $this->Model_Halaman_Pembeli->Dikirim();
$data[“diterima”] = $this->Model_Halaman_Pembeli->Diterima();
$data[“judul”] = “Halaman Pesanan Saya”;
$this->load->view(“Halaman_Pesanan_Saya”, $data);
}

public function GalleryProduk()


{

$data[“judul”] = “Halaman Gallery Produk”;


$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Gallery_Produk”, $data);
}

public function DetailOrderPesanan($sdhbyr)


{

$data[“judul”] = “Halaman Detail Order Pesanan”;


$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailorderpesanan”] = $this->Model_Halaman_Pembeli-
>GetDetailOrderPesanan($sdhbyr);
// $data[“detailorderpesananbarang”] = $this->Model_Halaman_Pembeli-
>GetDetailOrderPesananBarang();
$this->load->view(“Halaman_Detail_Order_Pesanan_Menunggu_Diproses”,
$data);
}

public function DetailOrderPesananBarang($sdhbyr)

31
{

$data[“judul”] = “Halaman Detail Order Pesanan Barang”;


$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailorderpesananbarang”] = $this->Model_Halaman_Pembeli-
>GetDetailOrderPesananBarang($sdhbyr);
$data[“detailorderpesananbarangg”] = $this->Model_Halaman_Pembeli-
>GetDetailOrderPesananBarangg($sdhbyr);
$this->load->view(“Halaman_Detail_Order_Pesanan_Barang”, $data);
}

public function DetailOrderPesananDiproses($dprs)


{

$data[“judul”] = “Halaman Detail Order Pesanan”;


$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailorderpesanan”] = $this->Model_Halaman_Pembeli-
>GetDetailOrderPesananDiproses($dprs);
// $data[“detailorderpesananbarang”] = $this->Model_Halaman_Pembeli-
>GetDetailOrderPesananBarang();
$this->load->view(“Halaman_Detail_Order_Pesanan”, $data);
}

public function DetailOrderPesananBarangDiproses($dprs)


{

$data[“judul”] = “Halaman Detail Order Pesanan Barang”;


$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailorderpesananbarang”] = $this->Model_Halaman_Pembeli-
>GetDetailOrderPesananBarangDiproses($dprs);
$data[“detailorderpesananbarangg”] = $this->Model_Halaman_Pembeli-
>GetDetailOrderPesananBaranggDiproses($dprs);
$this->load->view(“Halaman_Detail_Order_Pesanan_Barang”, $data);
}

public function DetailOrderPesananDikirim($dkrm)


{

$data[“judul”] = “Halaman Detail Order Pesanan”;


$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailorderpesanan”] = $this->Model_Halaman_Pembeli-
>GetDetailOrderPesananDiproses($dkrm);
// $data[“detailorderpesananbarang”] = $this->Model_Halaman_Pembeli-
>GetDetailOrderPesananBarang();

32
$this->load->view(“Halaman_Detail_Order_Pesanan”, $data);
}

public function DetailOrderPesananBarangDikirim($dkrm)


{

$data[“judul”] = “Halaman Detail Order Pesanan Barang”;


$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailorderpesananbarang”] = $this->Model_Halaman_Pembeli-
>GetDetailOrderPesananBarangDiproses($dkrm);
$data[“detailorderpesananbarangg”] = $this->Model_Halaman_Pembeli-
>GetDetailOrderPesananBaranggDiproses($dkrm);
$this->load->view(“Halaman_Detail_Order_Pesanan_Barang”, $data);
}

public function Contact()


{
$this->form_validation->set_rules(“nama_pengirim”, “NAMA PENGIRIM”,
“required”, [
“required” => “Kolom Nama Pengirim Harus Diisi”
]);

$this->form_validation->set_rules(“email_pengirim”, “EMAIL PENGIRIM”,


“required|valid_email”, [
“required” => “Kolom Email Pengirim Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”
]);

$this->form_validation->set_rules(“no_handphone”, “NO HANDPHONE”,


“required|integer”, [
“required” => “Kolom No Handphone Pengirim Harus Diisi”,
“integer” => “Kolom No Handphone Pengirim Harus Diisi
Menggunakan
Angka”
]);

$this->form_validation->set_rules(“pesan”, “PESAN”, “required”, [


“required” => “Kolom Pesan Harus Diisi”
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Kontak”;
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Kontak_Pembeli”, $data);
} else {
$this->Model_Halaman_Pembeli->Contact();
$this->session->set_flashdata(“kontak”, “Berhasil”);

33
redirect(“Halaman_Pembeli/Contact”);
}
}

public function TerimaBarang($dkrm)


{
$config[‘upload_path’] = ‘./assets/bukti_diterima/’;
$config[‘allowed_types’] = ‘gif|jpg|png|jpeg’;
$config[‘max_size’] = ‘9000’;

$this->upload->initialize($config);

$field_name = ‘bukti_diterima’;
if (!$this->upload->do_upload($field_name)) {
echo $this->upload->display_errors();
} else {
$upload_data = [
‘upload’ => $this->upload->data()
];
$config[‘image_library’] = ‘gd2’;
$config[‘source_image’] = ‘./assets/bukti_diterima/’ .
$upload_data[‘upload’][‘file_name’];
$this->load->library(‘image_lib’, $config);
}

$image = $upload_data[‘upload’][‘file_name’];

$data = [
“bukti_diterima” => $image,
“status_order” => 3,
];

$this->db->where(“id_transaksi”, $dkrm);
$this->db->update(“tb_transaksi”, $data);

$this->session->set_flashdata(“berhasil”, “BERHASIL”);
redirect(“Halaman_Pembeli/PesananSaya”);
}

public function DetailOrderPesananSelesai($dtrm)


{
$data[“judul”] = “Detail Alamat Order”;
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailorderalamat”] = $this->db->get_where(“tb_transaksi”,
[“id_transaksi” => $dtrm])->row_array();
$this->load->view(“Halaman_Detail_Order_Pesanan_Selesai”, $data);
}

34
public function DetailOrderPesananBarangSelesai($dtrm)
{
$data[“judul”] = “Detail Order Pesanan”;
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailorderpesanan”] = $this->db-
>get_where(“tb_rinci_transaksi”, [“no_order” => $dtrm])->result_array();
$data[“detailorderpesanann”] = $this->db-
>get_where(“tb_rinci_transaksi”, [“no_order” => $dtrm])->row_array();
$this->load->view(“Halaman_Detail_Order_Pesanan_Barang_Selesai”,
$data);
}

public function HapusPesanan($blmbyr)


{
$this->db->where(“no_order”, $blmbyr);
$this->db->delete(“tb_transaksi”);

$this->db->where(“no_order”, $blmbyr);
$this->db->delete(“tb_rinci_transaksi”);

$this->session->set_flashdata(“hapus”, “BERHASIL”);
redirect(“Halaman_Pembeli/PesananSaya”);
}

public function DetailHistoriPesanan()


{

$historipesanan = $this->db->get_where(“tb_transaksi”, [“id_pembeli”


=> $this->session->userdata(“id”)])->row_array();

if ($historipesanan[“status_bayar”] == 1) {
$data[“judul”] = “Detail Histori Pembelian”;
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“historipesananbarang”] = $this->db-
>get_where(“tb_transaksi”, [“id_pembeli” => $this->session->userdata(“id”),
“status_bayar” => 1])->result_array();
$this->load->view(“Halaman_Detail_Histori_pesanan”, $data);
} else {
$this->session->set_flashdata(“histori”, “HISTORI”);
redirect(“Halaman_Pembeli/HistoriPesananKosong”);
}
}

public function HistoriPesananKosong()


{

35
$data[“judul”] = “Detail Histori Pembelian”;
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Histori_Pesanan_Kosong”, $data);
}

public function DetailOrderBarangHistori($historipsnbrg)


{
$data[“judul”] = “Detail Order Barang”;
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailorderbaranghistori”] = $this->db-
>get_where(“tb_rinci_transaksi”, [“no_order” => $historipsnbrg])-
>result_array();
$data[“detailorderbaranghistorii”] = $this->db-
>get_where(“tb_rinci_transaksi”, [“no_order” => $historipsnbrg])->row_array();
$this->load->view(“Halaman_Detail_Order_Barang_Histori”, $data);
}

public function UpdateFotoPembeli()


{
$config[‘upload_path’] = ‘./assets/profile/’;
$config[‘allowed_types’] = ‘gif|jpg|png|jpeg’;
$config[‘max_size’] = ‘9000’;

$this->upload->initialize($config);

$field_name = ‘image’;
if (!$this->upload->do_upload($field_name)) {
echo $this->upload->display_errors();
} else {
$upload_data = [
‘upload’ => $this->upload->data()
];
$config[‘image_library’] = ‘gd2’;
$config[‘source_image’] = ‘./assets/profile/’ .
$upload_data[‘upload’][‘file_name’];
$this->load->library(‘image_lib’, $config);
}

$image = $upload_data[‘upload’][‘file_name’];

$data = [
‘image’ => $image,
];

$email = $this->input->post(“email”);

36
$this->db->where(“email”, $email);
$this->db->update(“user”, $data);

$this->session->set_flashdata(“foto”, “DI UBAH”);


redirect(“Halaman_Pembeli/Profile”);
}

public function EditOrderAlamat($detailorderpesanan)


{
$data[“judul”] = “Halaman Edit Order Alamat”;
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“editorderalamat”] = $this->db->get_where(“tb_transaksi”,
[“id_transaksi” => $detailorderpesanan])->row_array();
$this->load->view(“Halaman_Edit_Order_Alamat”, $data);
}

public function FormEditOrderAlamat($detailorderpesanan)


{
$this->form_validation->set_rules(“nama_alamat”, “NAMA ALAMAT”,
“required”, [
“required” => “Kolom Nama Alamat Harus Diisi”,
]);

$this->form_validation->set_rules(“nama_penerima”, “NAMA PENERIMA”,


“required”, [
“required” => “Kolom Nama Penerima Harus Diisi”,
]);

$this->form_validation->set_rules(“no_handphone_penerima”, “NO
HANDPHONE PENERIMA”, “required|numeric”, [
“required” => “Kolom No Handphone Penerima Harus Diisi”,
“numeric” => “Kolom No Handphone Penerima Harus Diisi
Menggunakan
Angka”,
]);

$this->form_validation->set_rules(“alamat_lengkap_penerima”, “ALAMAT
LENGKAP PENERIMA”, “required”, [
“required” => “Kolom Alamat Lengkap Penerima Harus Diisi”
]);

$this->form_validation->set_rules(“kecamatan”, “KECAMATAN”,
“required”, [
“required” => “Kolom Kecamatan Harus Diisi”
]);

$this->form_validation->set_rules(“kode_pos”, “KODE POS”,


“required|numeric”, [
37
“required” => “Kolom Kode Pos Harus Diisi”,
“numeric” => “Kolom Kode Pos Harus Diisi Menggunakan Angka”,
]);

$this->form_validation->set_rules(“kota”, “KOTA”, “required”, [


“required” => “Kolom Kota Harus Diisi”,
]);

$this->form_validation->set_rules(“provinsi”, “PROVINSI”, “required”,


[
“required” => “Kolom Provinsi Harus Diisi”,
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Edit Order Alamat”;
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“editorderalamat”] = $this->db->get_where(“tb_transaksi”,
[“id_transaksi” => $detailorderpesanan])->row_array();
$this->load->view(“Halaman_Edit_Order_Alamat”, $data);
} else {
$data = [
“nama_alamat” => $this->input->post(“nama_alamat”),
“nama_penerima” => $this->input->post(“nama_penerima”),
“no_handphone_penerima” => $this->input-
>post(“no_handphone_penerima”),
“alamat_lengkap_penerima” => $this->input-
>post(“alamat_lengkap_penerima”),
“kecamatan” => $this->input-
>post(“kecamatan”), “kode_pos” => $this-
>input->post(“kode_pos”), “kota” => $this-
>input->post(“kota”), “provinsi” => $this-
>input->post(“provinsi”),
];

$this->db->where(“id_transaksi”, $detailorderpesanan);
$this->db->update(“tb_transaksi”, $data);

$this->session->set_flashdata(“update”, “BERHASIL”);

$redirectURL = ‘Halaman_Pembeli/FormEditOrderAlamat/’ .
$detailorderpesanan;

$this->session->set_flashdata(‘update’, ‘BERHASIL’);
redirect($redirectURL);
}
}

public function NilaiPesanan($dtrm)

38
{
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“judul”] = “Halaman Nilai Pesanan”;
$data[“nilaipesanan”] = $this->db->get_where(“tb_transaksi”,
[“id_transaksi” => $dtrm])->row_array();
$this->load->view(“Halaman_Nilai_Pesanan”, $data);
}

public function FormNilaiPesanan($nilaipesanan)


{
$this->form_validation->set_rules(“penilaian_barang”, “PENILAIAN
BARANG”, “required”, [
“required” => “Kolom Penilaian Barang Harus Diisi”
]);

if ($this->form_validation->run() == FALSE) {

$data[“user”] = $this->db->get_where(“user”, [“email” => $this-


>session->userdata(“email”)])->row_array();
$data[“judul”] = “Halaman Nilai Pesanan”;
$data[“nilaipesanan”] = $this->db->get_where(“tb_transaksi”,
[“id_transaksi” => $nilaipesanan])->row_array();
$this->load->view(“Halaman_Nilai_Pesanan”, $data);
} else {
$data = [
“penilaian_barang” => $this->input->post(“penilaian_barang”)
];

$this->db->where(“id_transaksi”, $nilaipesanan);
$this->db->update(“tb_transaksi”, $data);

$this->session->set_flashdata(“penilaian”, “Penilaian Anda


Berhasil Dikirimkan”);
$redirectURL = ‘Halaman_Pembeli/FormNilaiPesanan/’ .
$nilaipesanan;
redirect($redirectURL);
}
}
}

39
2. Source Code Model Halaman Pembeli

<?php
class Model_Halaman_Pembeli extends CI_Model
{

public function GetAllProduk($limit, $start)


{

return $this->db->get(“tb_barang”, $limit, $start)->result_array();


}

public function ViewCategory($id_kategori, $limit, $start)


{
$this->db->select(“*”);
$this->db->from(“tb_barang”);
$this->db->limit($limit, $start);
$this->db->join(“tb_kategori”, “tb_kategori.id_kategori =
tb_barang.id_kategori”);
$this->db->where(“tb_barang.id_kategori”, $id_kategori);
return $this->db->get()->result_array();
}

public function GetCategory()


{

return $this->db->get(“tb_kategori”)->result_array();
}

public function GetBarang($id_barang)


{

return $this->db->get_where(“tb_barang”, [“id_barang” => $id_barang])-


>row_array();
}

public function JudulCategory($id_kategori)


{

return $this->db->get_where(“tb_kategori”, [“id_kategori” =>


$id_kategori])->row_array();
}

public function UpdateProfileUser()

40
{

$data = [
‘email’ => $this->input->post(“email”),
‘nama’ => $this->input->post(“nama”),
‘alamat’ => $this->input->post(“alamat”),
‘jenis_kelamin’ => $this->input->post(“jenis_kelamin”),
‘tempat_lahir’ => $this->input->post(“tempat_lahir”),
‘tanggal_lahir’ => $this->input->post(“tanggal_lahir”),
‘no_telepon’ => $this->input->post(“no_telepon”),
];

$email = $this->input->post(‘email’);

$this->db->where(‘email’, $email);
$this->db->update(‘user’, $data);
}

// public function UpdateAlamatUser()


// {
// $alamat = htmlspecialchars($this->input->post(“alamat”));
// $email = htmlspecialchars($this->input->post(‘email’));

// $this->db->set(‘alamat’, $alamat);
// $this->db->where(‘email’, $email);
// $this->db->update(‘user’);
// }

public function GetJumlahProduk()


{

return $this->db->get(“tb_barang”)->num_rows();
}

public function GetJumlahProdukCategory($id_kategori)


{

$this->db->select(“*”);
$this->db->from(“tb_barang”);
$this->db->join(“tb_kategori”, “tb_kategori.id_kategori =
tb_barang.id_kategori”);
$this->db->where(“tb_barang.id_kategori”, $id_kategori);
return $this->db->get()->num_rows();
}

41
public function GetDetailProduk($id_barang)
{

return $this->db->get_where(“tb_barang”, [“id_barang” => $id_barang])-


>row_array();
}

public function InsertTransaksi($data)


{

return $this->db->insert(“tb_transaksi”, $data);


}

public function InsertCart($data2)


{

return $this->db->insert(“tb_rinci_transaksi”, $data2);


}

public function SudahBayar()


{

return $this->db->get_where(“tb_transaksi”, [“id_pembeli” => $this-


>session->userdata(“id”), “status_order” => 0, “status_bayar” => 1])-
>result_array();
}

public function Diproses()


{
return $this->db->get_where(“tb_transaksi”, [“id_pembeli” => $this-
>session->userdata(“id”), “status_order” => 1])->result_array();
}

public function Dikirim()


{
return $this->db->get_where(“tb_transaksi”, [“id_pembeli” => $this-
>session->userdata(“id”), “status_order” => 2])->result_array();
}

public function Diterima()


{
return $this->db->get_where(“tb_transaksi”, [“id_pembeli” => $this-
>session->userdata(“id”), “status_order” => 3])->result_array();
}

42
public function Pembayaran($blmbyr)
{
return $this->db->get_where(“tb_transaksi”, [“id_transaksi” =>
$blmbyr])->row_array();
}

public function FormPembayaran($pembayaran)


{
return $this->db->get_where(“tb_transaksi”, [“id_transaksi” =>
$pembayaran])->row_array();
}

public function GetDetailOrderPesanan($sdhbyr)


{

return $this->db->get_where(“tb_transaksi”, [“id_transaksi” =>


$sdhbyr])->row_array();
}

public function GetDetailOrderPesananBarang($sdhbyr)


{
return $this->db->get_where(“tb_rinci_transaksi”, [“no_order” =>
$sdhbyr])->result_array();
}

public function GetDetailOrderPesananBarangg($sdhbyr)


{
return $this->db->get_where(“tb_rinci_transaksi”, [“no_order” =>
$sdhbyr])->row_array();
}

public function GetDetailOrderPesananDiproses($dprs)


{

return $this->db->get_where(“tb_transaksi”, [“id_transaksi” =>


$dprs])->row_array();
}

public function GetDetailOrderPesananBarangDiproses($dprs)


{
return $this->db->get_where(“tb_rinci_transaksi”, [“no_order” =>
$dprs])->result_array();
}

public function GetDetailOrderPesananBaranggDiproses($dprs)


{
return $this->db->get_where(“tb_rinci_transaksi”, [“no_order” =>
$dprs])->row_array();

43
}

public function GetDetailOrderPesananDikirim($dkrm)


{

return $this->db->get_where(“tb_transaksi”, [“id_transaksi” =>


$dkrm])->row_array();
}

public function GetDetailOrderPesananBarangDikirim($dkrm)


{
return $this->db->get_where(“tb_rinci_transaksi”, [“no_order” =>
$dkrm])->result_array();
}

public function GetDetailOrderPesananBaranggDikirim($dkrm)


{
return $this->db->get_where(“tb_rinci_transaksi”, [“no_order” =>
$dkrm])->row_array();
}

public function Contact()


{
date_default_timezone_set(“Asia/Jakarta”);
$data = [
‘nama_pengirim’ => $this->input->post(‘nama_pengirim’),
‘email_pengirim’ => $this->input->post(‘email_pengirim’),
‘no_handphone’ => $this->input->post(‘no_handphone’),
‘pesan’ => $this->input->post(‘pesan’),
‘tanggal_pengiriman’ => date(“Y-m-d H:i:s”)
];

$this->db->insert(“contact”, $data);
}

public function HapusOrderan($blmbyr)


{
$order = $this->db->get_where(“tb_transaksi”, [“id_transaksi” =>
$blmbyr])->row_array();

$noorder = $order[“no_order”];

$this->db->where(“no_order”, $noorder);
$this->db->delete(“tb_rinci_transaksi”);
}
}

44
3. Source Code Controller login registrasi aktivasi dan forgot password Pembeli

<?php
class Login_Registrasi extends CI_Controller
{

public function construct()


{
parent:: construct();

if ($this->session->userdata(“email”) && $this->session-


>userdata(“role_id”) == 2) {
redirect(“Halaman_Pembeli”);
} else {
if ($this->session->userdata(“email”) && $this->session-
>userdata(“role_id”) == 1) {
redirect(“Halaman_Admin”);
}
}
if ($this->session->userdata(“email”) && $this->session-
>userdata(“role_id”) == 0) {
redirect(“Halaman_Admin”);
}
}

public function index()


{

$data[“judul”] = “Halaman Login Pembeli”;


$this->load->view(“Halaman_Login_Pembeli”, $data);
}

public function RegistrasiPembeli()


{
$this->form_validation->set_rules(“nama”, “NAMA”, “required”, [
“required” => “Kolom Nama Harus Diisi”
]);

$this->form_validation->set_rules(“email”, “EMAIL”,
“required|valid_email|trim|is_unique[user.email]”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”,
“is_unique” => “Email Yang Anda Masukkan Sudah Terdaftar”
]);

45
$this->form_validation->set_rules(“password”, “PASSWORD”,
“required|trim|min_length[8]|matches[password2]”, [
“required” => “Kolom Password Harus Diisi”,
“min_length” => “Password Yang Anda Masukkan Kurang Dari 8
karakter”,
“matches” => “Password Tidak Sesuai Dengan Konfirmasi Password”,

]);

$this->form_validation->set_rules(“password2”, “KOFIRMASI PASSWORD”,


“required|trim|matches[password]”, [
“required” => “Kolom Konfirmasi Password Harus Diisi”,
“matches” => “Konfirmasi Password Tidak Sesuai Dengan
Password”
]);

if ($this->form_validation->run() == FALSE) {

$data[“judul”] = “Halaman Registrasi Pembeli”;


$this->load->view(“Halaman_Registrasi_Pembeli”, $data);
} else {
$this->Model_Login_Registrasi->RegistrasiPembeli();
$this->session->set_flashdata(“Registrasi”, “Berhasil”);
redirect(“Login_Registrasi/RegistrasiPembeli”);
}
}

public function LoginPembeli()


{

$this->form_validation->set_rules(“email”, “EMAIL”,
“required|valid_email”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”
]);

$this->form_validation->set_rules(“password”, “PASSWORD”,
“required|min_length[8]”, [
“required” => “Kolom Password Harus Diisi”,
“min_length” => “Password Yang Anda Masukkan Kurang Dari 8
Karakter”
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Login Pembeli”;
$this->load->view(“Halaman_Login_Pembeli”, $data);
} else {
$this->Model_Login_Registrasi->LoginPembeli();
}

46
}

public function index2()


{

$data[“judul”] = “Halaman Login Admin”;


$this->load->view(“Halaman_Login_Admin”, $data);
}

public function RegistrasiAdmin()


{
$this->form_validation->set_rules(“nama”, “NAMA”, “required”, [
“required” => “Kolom Nama Harus Diisi”
]);

$this->form_validation->set_rules(“email”, “EMAIL”,
“required|valid_email|trim|is_unique[user_admin.email]”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”,
“is_unique” => “Email Yang Anda Masukkan Sudah Terdaftar”
]);

$this->form_validation->set_rules(“password2”, “PASSWORD”,
“required|trim|min_length[8]|matches[password3]”, [
“required” => “Kolom Password Harus Diisi”,
“min_length” => “Password Yang Anda Masukkan Kurang Dari 8
karakter”,
“matches” => “Password Tidak Sesuai Dengan Konfirmasi Password”
]);

$this->form_validation->set_rules(“password3”, “KOFIRMASI PASSWORD”,


“required|trim|matches[password2]”, [
“required” => “Kolom Konfirmasi Password Harus Diisi”,
“matches” => “Konfirmasi Password Tidak Sesuai Dengan
Password”
]);

if ($this->form_validation->run() == FALSE) {

$data[“judul”] = “Halaman Registrasi Admin”;


$this->load->view(“Halaman_Registrasi_Admin”, $data);
} else {
$this->Model_Login_Registrasi->RegistrasiAdmin();
$this->session->set_flashdata(“Regisadmin”, “Registrasi Berhasil,
Silahkan Cek Email Anda Untuk Verifikasi”);
redirect(“Login_Registrasi/RegistrasiAdmin”);
}
}

47
public function LoginAdmin()
{

$this->form_validation->set_rules(“email2”, “EMAIL”,
“required|valid_email”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”
]);

$this->form_validation->set_rules(“password2”, “PASSWORD”,
“required|min_length[8]”, [
“required” => “Kolom Password Harus Diisi”,
“min_length” => “Password Yang Anda Masukkan Kurang Dari 8
karakter”
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Login Admin”;
$this->load->view(“Halaman_Login_Admin”, $data);
} else {
$this->Model_Login_Registrasi->LoginAdmin();
}
}

public function Verify()


{
$email = $this->input->get(“email”);
$token = $this->input->get(“token”);

$user = $this->db->get_where(“user”, [“email” => $email])-


>row_array();

if ($user) {
$user_token = $this->db->get_where(“user_token”, [“token” =>
$token])->row_array();

if ($user_token) {
if (time() - $user_token[“date_created”] < 60 * 60) {

$data = [
“is_active” => 1
];

$this->db->where(“email”, $email);
$this->db->update(“user”, $data);

$this->db->delete(“user_token”, [“email” => $email]);

48
$this->session->set_flashdata(“aktivasiiii”, “Aktivasi
Berhasil”);
redirect(“Login_Registrasi/RegistrasiPembeli”);
} else {
$this->db->delete(“user”, [“email” => $email]);
$this->db->delete(“user_token”, [“email” => $email]);

$this->session->set_flashdata(“aktivasiii”, “Token
Expired”);
redirect(“Login_Registrasi/RegistrasiPembeli”);
}
} else {
$this->session->set_flashdata(“aktivasii”, “Token Tidak
Terdaftar”);
redirect(“Login_Registrasi/RegistrasiPembeli”);
}
} else {
$this->session->set_flashdata(“aktivasi”, “Email Tidak
Terdaftar”);
redirect(“Login_Registrasi/RegistrasiPembeli”);
}
}

public function Forgot_Password()


{
$data[“judul”] = “Halaman Forgot Password”;
$this->load->view(“Halaman_Forgot_Password”, $data);
}

public function FormForgotPassword()


{
$this->form_validation->set_rules(“email”, “EMAIL”,
“required|valid_email|trim”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”,
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Forgot Password”;
$this->load->view(“Halaman_Forgot_Password”, $data);
} else {
$this->Model_Login_Registrasi->ForgotPassword();
$this->session->set_flashdata(“49ogin49”, “Silahkan Cek Email
Untuk Reset Password”);
redirect(“Login_Registrasi/Forgot_Password”);
}
}

49
public function Forgot()
{
$email = $this->input->get(“email”);
$token = $this->input->get(“token”);

$user = $this->db->get_where(“user”, [“email” => $email])-


>row_array();

if ($user) {
$user_token = $this->db->get_where(“user_token”, [“token” =>
$token])->row_array();

if ($user_token) {
$this->session->set_userdata(“forgot_password”, $email);

$this->ResetPassword();
} else {
$this->session->set_flashdata(“forgotttt”, “TOKEN TIDAK
TERDAFTAR”);
redirect(“Login_Registrasi/ForgotPassword”);
}
} else {
$this->session->set_flashdata(“forgottt”, “EMAIL TIDAK
TERDAFTAR”);
redirect(“Login_Registrasi/ForgotPassword”);
}
}

public function ResetPassword()


{
if (!$this->session->userdata(“forgot_password”)) {
redirect(“Login_Registrasi/Forgot_Password”);
} else {

$this->form_validation->set_rules(“password”, “PASSWORD”,
“required|trim|min_length[8]|matches[password2]”, [
“required” => “Kolom Password Harus Diisi”,
“min_length” => “Password Yang Anda Masukkan Kurang Dari 8
karakter”,
“matches” => “Password Tidak Sesuai Dengan Konfirmasi
Password”
]);

$this->form_validation->set_rules(“password2”, “KOFIRMASI
PASSWORD”, “required|trim|matches[password]”, [
“required” => “Kolom Konfirmasi Password Harus Diisi”,
“matches” => “Konfirmasi Password Tidak Sesuai Dengan
Password”

50
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Change Password”;
$this->load->view(“Halaman_Forgot_Password2”, $data);
} else {

$passwordd = $this->input->post(“password”);

$password = password_hash($passwordd, PASSWORD_DEFAULT);


$email = $this->session->userdata(“forgot_password”);

$this->db->set(“password”, $password);
$this->db->where(“email”, $email);
$this->db->update(“user”);

$this->session->unset_userdata(“forgot_password”);

$this->db->delete(“user_token”, [“email” => $email]);

$this->session->set_flashdata(“forgottttt”, “Reset Password


Berhasil Silahkan Login”);
redirect(“Login_Registrasi/LoginPembeli”);
}
}
}

public function VerifyAdmin()


{
$email = $this->input->get(“email”);
$token = $this->input->get(“token”);

$user = $this->db->get_where(“user_admin”, [“email” => $email])-


>row_array();

if ($user) {
$user_token = $this->db->get_where(“user_token”, [“token” =>
$token])->row_array();

if ($user_token) {
if (time() - $user_token[“date_created”] < 60 * 60 * 24) {

$this->db->set(“is_active”, 1);
$this->db->where(“email”, $email);
$this->db->update(“user_admin”);

$this->db->delete(“user_token”, [“email” => $email]);

51
$this->session->set_flashdata(“verifyadminnnn”,
“Verifikasi Berhasil Silahkan Login”);
redirect(“Login_Registrasi/RegistrasiAdmin”);
} else {

$this->db->delete(“user”, [“email” => $email]);


$this->db->delete(“user_token”, [“email” => $email]);

$this->session->set_flashdata(“verifyadminnn”, “VERIFIKASI
GAGAL, TOKEN EXPIRED TERDAFTAR”);
redirect(“Login_Registrasi/RegistrasiAdmin”);
}
} else {
$this->session->set_flashdata(“verifyadminn”, “VERIFIKASI
GAGAL, TOKEN TIDAK TERDAFTAR”);
redirect(“Login_Registrasi/RegistrasiAdmin”);
}
} else {
$this->session->set_flashdata(“verifyadmin”, “VERIFIKASI GAGAL,
EMAIL TIDAK TERDAFTAR”);
redirect(“Login_Registrasi/RegistrasiAdmin”);
}
}

public function ForgotPasswordAdmin()


{
$data[“judul”] = “Halaman Forgot Password Admin”;
$this->load->view(“Halaman_Forgot_Password_Admin”, $data);
}

public function FormForgotPasswordAdmin()


{
$this->form_validation->set_rules(“email”, “EMAIL”,
“required|valid_email|trim”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Forgot Password Admin”;
$this->load->view(“Halaman_Forgot_Password_Admin”, $data);
} else {
$this->Model_Login_Registrasi->ForgotPasswordAdmin();
$this->session->set_flashdata(“forgotadmin”, “Silahkan Cek Email
Anda Untuk Mengganti Password”);
redirect(“Login_Registrasi/ForgotPasswordAdmin”);
}
}

52
public function ForgotAdmin()
{
$email = $this->input->get(“email”);
$token = $this->input->get(“token”);

$user = $this->db->get_where(“user_admin”, [“email” => $email])-


>row_array();

if ($user) {
$user_token = $this->db->get_where(“user_token”, [“token” =>
$token])->row_array();

if ($user_token) {
$this->session->set_userdata(“forgot_password_admin”, $email);

$this->ChangePasswordAdmin();
} else {
$this->session->set_flashdata(“forgotadminnn”, “Ubah Password
Gagal, Token Tidak Terdaftar”);
redirect(“Login_Registrasi/ForgotPasswordAdmin”);
}
} else {
$this->session->set_flashdata(“forgotadminn”, “Ubah Password
Gagal, Email Yang Anda Masukkan Tidak Terdaftar”);
redirect(“Login_Registrasi/ForgotPasswordAdmin”);
}
}

public function ChangePasswordAdmin()


{
if (!$this->session->userdata(“forgot_password_admin”)) {
redirect(“Login_Registrasi/LoginAdmin”);
} else {

$this->form_validation->set_rules(“password2”, “PASSWORD”,
“required|trim|min_length[8]|matches[password3]”, [
“required” => “Kolom Password Harus Diisi”,
“min_length” => “Password Yang Anda Masukkan Kurang Dari 8
karakter”,
“matches” => “Password Tidak Sesuai Dengan Konfirmasi
Password”
]);

$this->form_validation->set_rules(“password3”, “KOFIRMASI
PASSWORD”, “required|trim|matches[password2]”, [
“required” => “Kolom Konfirmasi Password Harus Diisi”,

53
“matches” => “Konfirmasi Password Tidak Sesuai Dengan
Password”
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Forgot Password Admin”;
$this->load->view(“Halaman_Forgot_Password_Admin2”, $data);
} else {

$passwordd = $this->input->post(“password2”);

$password = password_hash($passwordd, PASSWORD_DEFAULT);

$email = $this->session->userdata(“forgot_password_admin”);

$this->db->set(“password2”, $password);
$this->db->where(“email”, $email);
$this->db->update(“user_admin”);

$this->db->delete(“user_token”, [“email” => $email]);


$this->session->unset_userdata(“forgot_password_admin”);

$this->session->set_flashdata(“sukses”, “Ubah Password Email


Berhasil, Silahkan Login”);
redirect(“Login_Registrasi/LoginAdmin”);
}
}
}
}

4. Source Code Model Login registrasi aktivasi dan forgot password Pembeli

<?php
class Model_Login_Registrasi extends CI_Model
{

public function RegistrasiPembeli()


{

$data = [
“nama” => htmlspecialchars($this->input->post(“nama”, true)),
“email” => htmlspecialchars($this->input->post(“email”, true)),
“password” => htmlspecialchars(password_hash($this->input-
>post(“password”, true), PASSWORD_DEFAULT)),
“role_id” => 2,
“is_active” => 0,

54
“date_created” => time(),
“image” => “default.jpg”

];

// Token

$token = base64_encode(random_bytes(32));
$token_email = $this->input->post(“email”, true);

$data_token = [
‘token’ => $token,
‘email’ => $token_email,
‘date_created’ => time()
];

$this->db->insert(“user”, $data);
$this->db->insert(“user_token”, $data_token);

$this->_sendEmail($token, ‘verify’);
}

private function _sendEmail($token, $type)


{
$config = [
‘protocol’ => ‘smtp’,
‘smtp_host’ => ‘ssl://smtp.googlemail.com’,
‘smtp_user’ => ‘cahayabakery624@gmail.com’,
‘smtp_pass’ => ‘jvcb mqzi bbtx jhcq’,
‘smtp_port’ => 465,
‘mailtype’ => ‘html’,
‘charset’ => ‘utf-8’,
‘newline’ => “\r\n”

];

$this->load->library(“email”, $config);

$this->email->initialize($config);

$this->email->from(‘cahayabakery624@gmail.com’, ‘Cahaya Bakery’);


$this->email->to($this->input->post(“email”));

if ($type == “verify”) {
$this->email->subject(‘Verifikasi’);
$this->email->message(‘Link Aktivasi : <a href=”’ . base_url()
. ‘Login_Registrasi/Verify?email=’ . $this->input->post(“email”) .
‘&token=’ . urlencode($token) . ‘”>Activate</>’);

55
}

if ($this->email->send()) {
return true;
} else {
echo $this->email->print_debugger();
die();
}
}

public function LoginPembeli()


{

$email = $this->input->post(“email”, true);


$password = $this->input->post(“password”, true);

$user = $this->db->get_where(“user”, [“email” => $email])-


>row_array();

if ($user) {
if ($user[“is_active”] == 1) {
if (password_verify($password, $user[“password”])) {
$data = [
“id” => $user[“id_pembeli”],
“nama” => $user[“nama”],
“email” => $user[“email”],
“role_id” => $user[“role_id”]
];
$this->session->set_userdata($data);

if ($this->session->userdata(“role_id”) == 2) {
$this->session->set_flashdata(“Loginnnn”, “BERHASIL”);
redirect(“Halaman_Pembeli/index”);
} else {
redirect(“Halaman_Eror/index”);
}
} else {
$this->session->set_flashdata(“Loginnn”, “SALAH”);
redirect(“Login_Registrasi/index”);
}
} else {
$this->session->set_flashdata(“Loginn”, “Belum Teraktivasi”);
redirect(“Login_Registrasi/index”);
}
} else {
$this->session->set_flashdata(“Login”, “Tidak Terdaftar”);
redirect(“Login_Registrasi/index”);
}

56
}

public function RegistrasiAdmin()


{
$data = [
“nama” => htmlspecialchars($this->input->post(“nama”, true)),
“email” => htmlspecialchars($this->input->post(“email”, true)),
“password2” => htmlspecialchars(password_hash($this->input-
>post(“password2”, true), PASSWORD_DEFAULT)),
“role_id” => 0,
“is_active” => 0,
“date_created” => time(),
“image” => “default.jpg”

];

// SIAPKAN TOKEN

$token = base64_encode(random_bytes(32));
$email = $this->input->post(“email”);

$user_token = [
“token” => $token,
“email” => $email,
“date_created” => time()
];

$this->db->insert(“user_admin”, $data);
$this->db->insert(“user_token”, $user_token);

$this->_sendEmailAdmin($token, “verify”);
}

private function _sendEmailAdmin($token, $type)


{
$config = [
‘protocol’ => ‘smtp’,
‘smtp_host’ => ‘ssl://smtp.googlemail.com’,
‘smtp_user’ => ‘cahayabakeryy@gmail.com’,
‘smtp_pass’ => ‘oomm akjb pibf layj’,
‘smtp_port’ => 465,
‘mailtype’ => ‘html’,
‘charset’ => ‘utf-8’,
‘newline’ => “\r\n”

];

$this->load->library(“email”, $config);

57
$this->email->initialize($config);

$this->email->from(‘cahayabakeryy@gmail.com’, ‘Cahaya Bakery’);


$this->email->to($this->input->post(“email”));

if ($type == “verify”) {
$this->email->subject(‘Verifikasi’);
$this->email->message(‘Link Aktivasi : <a href=”’ . base_url() .
‘Login_Registrasi/VerifyAdmin?email=’ . $this->input->post(“email”) .
‘&token=’ . urlencode($token) . ‘”>Activate</>’);
}

if ($this->email->send()) {
return true;
} else {
echo $this->email->print_debugger();
die();
}
}

public function LoginAdmin()


{

$email = $this->input->post(“email2”, true);


$password = $this->input->post(“password2”, true);

$user = $this->db->get_where(“user_admin”, [“email” => $email])-


>row_array();

if ($user) {
if ($user[“is_active”] == 1) {
if (password_verify($password, $user[“password2”])) {
$data = [
“id” => $user[“id_admin”],
“nama” => $user[“nama”],
“email” => $user[“email”],
“role_id” => $user[“role_id”]
];

$this->session->set_userdata($data);

if ($this->session->userdata(“role_id”) == 1) {
$this->session->set_flashdata(“loginnnn”, “BERHASIL”);
redirect(“Halaman_Admin/index”);
} else {
if ($this->session->userdata(“role_id”) != 1) {
redirect(“Halaman_Eror/index”);

58
}
}
} else {
$this->session->set_flashdata(“loginnn”, “SALAH”);
redirect(“Login_Registrasi/index2”);
}
} else {
$this->session->set_flashdata(“59ogin”, “BELUM TERAKTIVASI”);
redirect(“Login_Registrasi/index2”);
}
} else {
$this->session->set_flashdata(“login”, “TIDAK TERDAFTAR”);
redirect(“Login_Registrasi/index2”);
}
}

public function ForgotPassword()


{
$email = $this->input->post(“email”);

$user = $this->db->get_where(“user”, [“email” => $email, “is_active”


=> 1])->row_array();

if ($user) {
// Siapkan Token
$token = base64_encode(random_bytes(32));
$email = $this->input->post(“email”);

$data_token = [
“email” =>
$email, “token”
=> $token,
“date_created” => time()
];

$this->db->insert(“user_token”, $data_token);

$this->_sendEMailForgot($token, ‘forgot’);
} else {
$this->session->set_flashdata(“forgot”, “Tidak Terdaftar”);
redirect(“Login_Registrasi/Forgot_Password”);
}
}

private function _sendEMailForgot($token, $type)


{
$config = [
‘protocol’ => ‘smtp’,
‘smtp_host’ => ‘ssl://smtp.googlemail.com’,
59
‘smtp_user’ => ‘cahayabakery624@gmail.com’,
‘smtp_pass’ => ‘jvcb mqzi bbtx jhcq’,
‘smtp_port’ => 465,
‘mailtype’ => ‘html’,
‘charset’ => ‘utf-8’,
‘newline’ => “\r\n”

];

$this->load->library(“email”, $config);

$this->email->initialize($config);

$this->email->from(‘cahayabakery624@gmail.com’, ‘Cahaya Bakery’);


$this->email->to($this->input->post(“email”));

if ($type == “forgot”) {
$this->email->subject(‘Link Forgot Password’);
$this->email->message(‘Link : <a href=”’ . base_url() .
‘Login_Registrasi/Forgot?email=’ . $this->input->post(“email”) . ‘&token=’ .
urlencode($token) . ‘”>Reset Password</>’);
}

if ($this->email->send()) {
return true;
} else {
echo $this->email->print_debugger();
die();
}
}

public function ForgotPasswordAdmin()


{
$email = $this->input->post(“email”);

$user = $this->db->get_where(“user_admin”, [“email” => $email,


“is_active” => 1])->row_array();

if ($user) {
// SIAPKAN TOKEN

$token = base64_encode(random_bytes(32));
$email = $this->input->post(“email”);

$data_token = [
“email” =>
$email, “token”
=> $token,
60
“date_created” => time()
];

$this->db->insert(“user_token”, $data_token);

$this->_sendEmailForgotAdmin($token, “forgot”);
} else {
$this->session->set_flashdata(“forgotpasswordadmin”,
“Ubah Password Gagal, Email Yang Anda Masukkan Tidak Terdaftar Atau
Belum Di verifikasi”);
redirect(“Login_Registrasi/ForgotPasswordAdmin”);
}
}

private function _sendEmailForgotAdmin($token, $type)


{
$config = [
‘protocol’ => ‘smtp’,
‘smtp_host’ => ‘ssl://smtp.googlemail.com’,
‘smtp_user’ => ‘cahayabakery624@gmail.com’,
‘smtp_pass’ => ‘jvcb mqzi bbtx jhcq’,
‘smtp_port’ => 465,
‘mailtype’ => ‘html’,
‘charset’ => ‘utf-8’,
‘newline’ => “\r\n”

];

$this->load->library(“email”, $config);

$this->email->initialize($config);

$this->email->from(‘cahayabakery624@gmail.com’, ‘Cahaya Bakery’);


$this->email->to($this->input->post(“email”));

if ($type == “forgot”) {
$this->email->subject(‘Link Forgot Password’);
$this->email->message(‘Link : <a href=”’ . base_url() .
‘Login_Registrasi/ForgotAdmin?email=’ . $this->input->post(“email”) .
‘&token=’ . urlencode($token) . ‘”>Reset Password</>’);
}

if ($this->email->send()) {
return true;
} else {
echo $this->email->print_debugger();
die();

61
}
}
}

B. Source Code View Tampilan Halaman Pembeli

1. Source Code Tampilan View Home Halaman Pembeli


Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source
code project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

2. Tampilan View Halaman Login Dan Registrasi Pembeli

<!DOCTYPE html>
<html lang=”en”>

<head>

<meta charset=”utf-8”>
<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>
<meta name=”viewport” content=”width=device-width, initial-
scale=1, shrink-to-fit=no”>
<meta name=”description” content=””>

62
<meta name=”author” content=””>

<title><?= $judul; ?></title>

<!—Custom fonts for this template


<link href=”vendor/fontawesome-free/css/all.min.css” rel=”stylesheet”
type=”text/css”>
<link href=”https://fonts.googleapis.com/css?
family=Nunito:200,200i,300,300i,400,400 i,600,600i,700,700i,800,800i,900,900i”
rel=”stylesheet”>
<link
href=”https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css”
rel=”stylesheet” integrity=”sha384-
T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN”
crossorigin=”anonymous”>

<!—Custom styles for this template


<link href=”<?= base_url() ?>public/plugin/css/sb-admin-2.min.css”
rel=”stylesheet”>

<link rel=”stylesheet” href=”<?= base_url() ?>public/css/style3.css”>

</head>

<body class=”bg-gradient-primary”>

<div class=”container mt-5”>

<!—Outer Row 
<div class=”row justify-content-center”>

<div class=”col-xl-6 col-lg-6 col-md-9”>

<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 class=”col-lg-12”>
<div class=”p-5”>
<?php if ($this->session-
>flashdata(“Login”)) : ?>
<div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
Maaf Username Dan Password Yang
Anda Masukkan <strong><?= $this->session->flashdata(“Login”) ?></strong>
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>

63
<?php endif; ?>
<?php if ($this->session-
>flashdata(“Loginn”)) : ?>
<div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
Maaf Username Dan Password Yang
Anda Masukkan <strong><?= $this->session->flashdata(“Loginn”) ?></strong>.
Silahkan Aktivasi Terlebih Dahulu.
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>
<?php endif; ?>
<?php if ($this->session-
>flashdata(“Loginnn”)) : ?>
<div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
Password Yang Anda Masukkan
<strong><?= $this->session->flashdata(“Loginnn”) ?></strong>. Silahkan
Masukkan Ulang
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>
<?php endif; ?>
<?php if ($this->session-
>flashdata(“forgottttt”)) : ?>
<div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
<strong><?= $this->session-
>flashdata(“forgottttt”) ?></strong>
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>
<?php endif; ?>
<div class=”text-center”>
<h1 class=”h4 text-gray-900 mb-
4”>Login</h1>
</div>
<form class=”user” action=”<?= base_url()
?>Login_Registrasi/LoginPembeli” method=”post”>
<div class=”form-group”>
<input type=”email”
name=”email” class=”form-control form-control-user” id=”exampleInputEmail”
aria- describedby=”emailHelp” placeholder=”Masukkan Email Anda” value=”<?=
set_value(“email”); ?>”>
</div>
<h5 class=”text-danger”><?=
form_error(“email”); ?></h5>
<div class=”form-group”>

64
<input type=”password”
name=”password” class=”form-control form-control-user”
id=”exampleInputPassword” placeholder=”Password” value=”<?=
set_value(“password”) ?>”>
</div>
<h5 class=”text-danger”><?=
form_error(“password”); ?></h5>
<button type=”submit” class=”btn btn-
primary btn-block”>Login</button>
<hr>
</form>
<div class=”text-center”>
<a class=”small” href=”<?= base_url();
?>Login_Registrasi/Forgot_Password”>Forgot Password?</a>
</div>
<div class=”text-center”>
<a class=”small” href=”<?= base_url()
?>Login_Registrasi/RegistrasiPembeli”>Create an Account!</a>
</div>
</div>
</div>
</div>
</div>
</div>

</div>

</div>

</div>

<!—Bootstrap core JavaScript


<script src=”<?= base_url()
?>public/plugin/vendor/jquery/jquery.min.js”></script>
<script src=”vendor/bootstrap/js/bootstrap.bundle.min.js”></script>

<!—Core plugin JavaScript


<script src=”<?= base_url() ?>public/plugin/vendor/jquery-
easing/jquery.easing.min.js”></script>

<!—Custom scripts for all pages


<script src=”<?= base_url() ?>public/plugin/js/sb-admin-
2.min.js”></script>

<script
src=”https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min
.js” integrity=”sha384-

65
C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL”
crossorigin=”anonymous”></script>

</body>

</html>

<!DOCTYPE html>
<html lang=”en”>

<head>

<meta charset=”utf-8”>
<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>
<meta name=”viewport” content=”width=device-width, initial-
scale=1, shrink-to-fit=no”>
<meta name=”description” content=””>
<meta name=”author” content=””>

<title><?= $judul; ?></title>

<!—Custom fonts for this template


<link href=”vendor/fontawesome-free/css/all.min.css” rel=”stylesheet”
type=”text/css”>
<link href=”https://fonts.googleapis.com/css?
family=Nunito:200,200i,300,300i,400,400 i,600,600i,700,700i,800,800i,900,900i”
rel=”stylesheet”>
<link
href=”https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css”
rel=”stylesheet” integrity=”sha384-
T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN”
crossorigin=”anonymous”>

<!—Custom styles for this template


<link href=”<?= base_url() ?>public/plugin/css/sb-admin-2.min.css”
rel=”stylesheet”>

</head>

<body class=”bg-gradient-primary”>

<div class=”container mt-5”>

<!—Outer Row 
<div class=”row justify-content-center”>

66
<div class=”col-xl-6 col-lg-6 col-md-9”>

<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 class=”col-lg-12”>
<?php if ($this->session-
>flashdata(“Registrasi”)) : ?>
<div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
Registrasi <strong><?= $this->session-
>flashdata(“Registrasi”) ?> Silahkan Cek Email Anda Untuk Verifikasi</strong>
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>
<?php endif; ?>
<?php if ($this->session-
>flashdata(“aktivasi”)) : ?>
<div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
Aktivasi Gagal <strong><?= $this-
>session->flashdata(“aktivasi”) ?></strong>
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>
<?php endif; ?>
<?php if ($this->session-
>flashdata(“aktivasii”)) : ?>
<div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
Aktivasi Gagal <strong><?= $this-
>session->flashdata(“aktivasii”) ?></strong>
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>
<?php endif; ?>
<?php if ($this->session-
>flashdata(“aktivasiii”)) : ?>
<div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
Aktivasi Gagal <strong><?= $this-
>session->flashdata(“aktivasiii”) ?></strong>
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>
<?php endif; ?>

67
<?php if ($this->session-
>flashdata(“aktivasiiii”)) : ?
> <div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
<strong><?= $this->session-
>flashdata(“aktivasiiii”) ?></strong> Silahkan Login
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>
<?php endif; ?>
<div class=”p-5”>
<div class=”text-center”>
<h1 class=”h4 text-gray-900 mb-
4”>Daftar</h1>
</div>
<form class=”user” action=”<?= base_url()
?>Login_Registrasi/RegistrasiPembeli” method=”post”>
<div class=”form-group”>
<input type=”text” name=”nama”
class=”form-control form-control-user” aria-describedby=”emailHelp”
placeholder=”Masukkan Nama Lengkap Anda” value=”<?= set_value(“nama”); ?
>”>
</div>
<h5 class=”text-danger”><?=
form_error(“nama”); ?></h5>

<div class=”form-group”>
<input type=”email”
name=”email” class=”form-control form-control-user” placeholder=”Masukkan
Email Anda” value=”<?= set_value(“email”); ?>”>
</div>
<h5 class=”text-danger”><?=
form_error(“email”) ?></h5>
<div class=”form-group”>
<input type=”password”
name=”password” class=”form-control form-control-user” placeholder=”Password”
value=”<?= set_value(“password”); ?>”>
</div>
<h5 class=”text-danger”><?=
form_error(“password”) ?></h5>
<div class=”form-group”>
<input type=”password”
name=”password2” class=”form-control form-control-user”
placeholder=”Konfirmasi Password” value=”<?= set_value(“password2”); ?>”>
</div>
<h5 class=”text-danger”><?=
form_error(“password2”) ?></h5> block”>Daftar</button>

primary btn-

68
<button type=”submit” class=”btn
btn-

69
<hr>
</form>
<div class=”text-center”>
<a class=”small” href=”<?= base_url()
?>Login_Registrasi/index”>Sudah Punya Akun ? Login Sekarang</a>
</div>
</div>
</div>
</div>
</div>
</div>

</div>

</div>

</div>

<!—Bootstrap core JavaScript


<script src=”<?= base_url()
?>public/plugin/vendor/jquery/jquery.min.js”></script>
<script src=”vendor/bootstrap/js/bootstrap.bundle.min.js”></script>

<!—Core plugin JavaScript


<script src=”<?= base_url() ?>public/plugin/vendor/jquery-
easing/jquery.easing.min.js”></script>

<!—Custom scripts for all pages


<script src=”<?= base_url() ?>public/plugin/js/sb-admin-
2.min.js”></script>
<script
src=”https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min
.js” integrity=”sha384-
C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL”
crossorigin=”anonymous”></script>

</body>

</html>

61
0
3. Tampilan View Halaman Forgot Password Pembeli

<!DOCTYPE html>
<html lang=”en”>

<head>

<meta charset=”utf-8”>
<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>
<meta name=”viewport” content=”width=device-width, initial-
scale=1, shrink-to-fit=no”>
<meta name=”description” content=””>
<meta name=”author” content=””>

<title><?= $judul; ?></title>

<!—Custom fonts for this template


<link href=”vendor/fontawesome-free/css/all.min.css” rel=”stylesheet”
type=”text/css”>
<link href=”https://fonts.googleapis.com/css?
family=Nunito:200,200i,300,300i,400,400 i,600,600i,700,700i,800,800i,900,900i”
rel=”stylesheet”>
<link
href=”https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css”
rel=”stylesheet” integrity=”sha384-
T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN”
crossorigin=”anonymous”>

<!—Custom styles for this template


<link href=”<?= base_url() ?>public/plugin/css/sb-admin-2.min.css”
rel=”stylesheet”>

<link rel=”stylesheet” href=”<?= base_url() ?>public/css/style3.css”>

</head>

<body class=”bg-gradient-primary”>

<div class=”container mt-5”>

<!—Outer Row 
<div class=”row justify-content-center”>

<div class=”col-xl-6 col-lg-6 col-md-9”>

<div class=”card o-hidden border-0 shadow-lg my-5”>


<div class=”card-body p-0”>

70
<!—Nested Row within Card Body 
<div class=”row”>
<div class=”col-lg-12”>
<div class=”p-5”>
<?php if ($this->session-
>flashdata(“Login”)) : ?>
<div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
Maaf Username Dan Password Yang
Anda Masukkan <strong><?= $this->session->flashdata(“Login”) ?></strong>
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>
<?php endif; ?>
<?php if ($this->session-
>flashdata(“Loginn”)) : ?>
<div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
Maaf Username Dan Password Yang
Anda Masukkan <strong><?= $this->session->flashdata(“Loginn”) ?></strong>.
Silahkan Aktivasi Terlebih Dahulu.
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>
<?php endif; ?>
<?php if ($this->session-
>flashdata(“Loginnn”)) : ?>
<div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
Password Yang Anda Masukkan
<strong><?= $this->session->flashdata(“Loginnn”) ?></strong>. Silahkan
Masukkan Ulang
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>
<?php endif; ?>
<?php if ($this->session-
>flashdata(“71ogin71”)) : ?>
<div class=”alert alert-warning alert-
dismissible fade show me-5 ms-5” role=”alert” style=”margin-top: 90px;”>
<strong><?= $this->session-
>flashdata(“71ogin71”) ?></strong>
<button type=”button” class=”btn-
close” data-bs-dismiss=”alert” aria-label=”Close”></button>
</div>
<?php endif; ?>
<div class=”text-center”>

71
<h1 class=”h4 text-gray-900 mb-
4”>Forgot Password</h1>
</div>
<form class=”user” action=”<?= base_url()
?>Login_Registrasi/FormForgotPassword” method=”post”>
<div class=”form-group”>
<input type=”email”
name=”email” class=”form-control form-control-user” id=”exampleInputEmail”
aria- describedby=”emailHelp” placeholder=”Masukkan Email Anda” value=”<?=
set_value(“email”); ?>”>
</div>
<h5 class=”text-danger”><?=
form_error(“email”); ?></h5>
<button type=”submit” class=”btn btn-
primary btn-block”>Forgot Password</button>
<hr>
</form>
<div class=”text-center”>
<a class=”small” href=”<?= base_url()
?>Login_Registrasi/LoginPembeli”>Back To Login</a>
</div>
</div>
</div>
</div>
</div>
</div>

</div>

</div>

</div>

<!—Bootstrap core JavaScript


<script src=”<?= base_url()
?>public/plugin/vendor/jquery/jquery.min.js”></script>
<script src=”vendor/bootstrap/js/bootstrap.bundle.min.js”></script>

<!—Core plugin JavaScript


<script src=”<?= base_url() ?>public/plugin/vendor/jquery-
easing/jquery.easing.min.js”></script>

<!—Custom scripts for all pages


<script src=”<?= base_url() ?>public/plugin/js/sb-admin-
2.min.js”></script>

<script
src=”https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min

72
.js” integrity=”sha384-
C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL”
crossorigin=”anonymous”></script>

</body>

</html>

4. Tampilan View Halaman Produk Pembeli

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source
code project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

5. Tampilan View Halaman Detail Produk Pembeli

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

73
6. Tampilan View Halaman Kontak Pembeli

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

74
7. Tampilan View Halaman Gallery Produk Pembeli

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

8. Tampilan View Halaman Keranjang Pembeli

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman paling
atas source code project

75
9. Tampilan View Halaman Checkout Produk Pembeli

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman paling
atas source code project

10. Tampilan View Halaman Pesanan Saya Pembeli

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

76
11. Tampilan View Halaman Profile Pembeli

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

12. Tampilan View Halaman Histori Pesanan Saya atau Histori Pembelian

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

77
C. Source code Controller dan Model Halaman Admin

1. Source code Controller Halaman Admin

<?php
class Halaman_Admin extends CI_Controller
{

public function construct()


{

parent:: construct();

if (!$this->session->userdata(“email”)) {
redirect(“Home/index”);
} else {
if ($this->session->userdata(“role_id”) != 1) {
redirect(“Halaman_Eror”);
}
}
}

public function index()


{

$data[“judul”] = “Halaman Dashboard”;


$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“jumlahdatabarang”] = $this->Model_Halaman_Admin-
>JumlahDataBarang();
$data[“jumlahdatakategoribarang”] = $this->Model_Halaman_Admin-
>JumlahKategoriBarang();
$data[“jumlahdatatransaksi”] = $this->Model_Halaman_Admin-
>JumlahDataTransaksi();
$data[“jumlahdatarinciantransaksi”] = $this->Model_Halaman_Admin-
>JumlahRincianTransaksi();
$data[“jumlahdatauserpembeli”] = $this->Model_Halaman_Admin-
>JumlahUserPembeli();
$data[“jumlahdatauseradmin”] = $this->Model_Halaman_Admin-
>JumlahUserAdmin();
$data[“datarekeningtoko”] = $this->Model_Halaman_Admin-
>JumlahDataRekeningToko();
$data[“jumlahdatapesanmasuk”] = $this->Model_Halaman_Admin-
>JumlahDataPesan();
$this->load->view(“Halaman_Admin/Halaman_Admin”, $data);
}

78
public function DataBarang()
{

if ($this->input->post(“submit”)) {
$data[“pencarian”] = $this->input->post(“cari”);
} else {
$data[“pencarian”] = null;
}

$data[“judul”] = “Halaman Data Barang”;


$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“databarang”] = $this->Model_Halaman_Admin-
>GetDataBarang($data[“pencarian”]);
$this->load->view(“Halaman_Admin/Halaman_Data_Barang”, $data);
}

public function HapusDataBarang($dtbrg)


{
$this->Model_Halaman_Admin->DeleteOneData($dtbrg);
$this->session->set_flashdata(“barang”, “DI HAPUS”);
redirect(“Halaman_Admin/DataBarang”);
}

public function DetailDataBarang($dtbrg)


{
$data[“judul”] = “Halaman Detail Data Barang”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detaildatabarang”] = $this->Model_Halaman_Admin-
>GetDetailDataBarang($dtbrg);
$this->load->view(“Halaman_Admin/Halaman_Detail_Data_Barang”, $data);
}

public function EditDataBarang($dtbrg)


{
$data[“barang”] = $this->db->get_where(“tb_barang”, [“id_barang” =>
$dtbrg])->row_array();

$this->form_validation->set_rules(“nama_barang”, “NAMA BARANG”,


“required”, [
“required” => “Kolom Nama Barang Harus Diisi”
]);

$this->form_validation->set_rules(“keterangan_barang”, “KETERANGAN
BARANG”, “required”, [
“required” => “Kolom Keterangan Barang Harus Diisi”
]);

79
$this->form_validation->set_rules(“kategori_barang”, “KATEGORI
BARANG”, “required”, [
“required” => “Kolom Kategori Barang Harus Diisi”
]);

$this->form_validation->set_rules(“id_kategori”, “ID KATEGORI”,


“required|numeric”, [
“required” => “Kolom ID Kategori Barang Harus Diisi”,
“numeric” => “Kolom ID Kategori Barang Harus Di input Menggunakan
Angka”
]);

$this->form_validation->set_rules(“harga_barang”, “HARGA BARANG”,


“required|numeric”, [
“required” => “Kolom Harga Barang Harus Diisi”,
“numeric” => “Kolom Harga Barang Harus Di input Menggunakan Angka”
]);

$this->form_validation->set_rules(“berat”, “BERAT BARANG”,


“required|numeric”, [
“required” => “Kolom Berat Barang Harus Diisi”,
“numeric” => “Kolom Berat Barang Harus Di input Menggunakan Angka”
]);

$this->form_validation->set_rules(“stok”, “STOK BARANG”,


“required|numeric”, [
“required” => “Kolom Stok Barang Harus Diisi”,
“numeric” => “Kolom Stok Barang Harus Di input Menggunakan Angka”
]);

if ($this->form_validation->run() == FALSE) {

$data[“judul”] = “Halaman Edit Data Barang”;


$data[“user”] = $this->db->get_where(“user_admin”, [“email” =>
$this->session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Edit_Data_Barang”,
$data);
} else {
$this->Model_Halaman_Admin->EditDataBarang();
$this->session->set_flashdata(“80ogi”, “Berhasil”);
// redirect(“Halaman_Admin/DataBarang”)

$redirectURL = ‘Halaman_Admin/EditDataBarang/’ . $dtbrg;

redirect($redirectURL);
}
}

80
public function Profile()
{
$data[“judul”] = “Halaman Profile Admin”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Profile”, $data);
}

public function UpdateProfileAdmin()


{
$data[“user”] = $this->db->get_where(“user”, [“email” => $this-
>session->userdata(“email”)])->row_array();

$this->form_validation->set_rules(“nama”, “NAMA”, “required”, [


“required” => “Kolom Nama Harus Diisi”,
]);

$this->form_validation->set_rules(“alamat”, “ALAMAT”, “required”, [


“required” => “Kolom Alamat Harus Diisi”,
]);

$this->form_validation->set_rules(“jenis_kelamin”, “JENIS KELAMIN”,


“required”, [
“required” => “Kolom Jenis Kelamin Harus Diisi”
]);

$this->form_validation->set_rules(“tempat_lahir”, “TEMPAT LAHIR”,


“required|alpha”, [
“required” => “Kolom Tempat Lahir Harus Diisi”,
“alpha” => “Kolom Tempat Lahir Tidak Boleh Di input Menggunakan
Angka”
]);

$this->form_validation->set_rules(“tanggal_lahir”, “TANGGAL LAHIR”,


“required”, [
“required” => “Kolom Tanggal lahir Harus Diisi”
]);

$this->form_validation->set_rules(“no_telepon”, “NO TELEPON”,


“required|numeric”, [
“required” => “Kolom No Hp Harus Diisi”,
“numeric” => “Kolom No Hp Hanya Boleh Di input Menggunakan Angka”
]);

if ($this->form_validation->run() == FALSE) {
$this->session->set_flashdata(“adminn”, “GAGAL”);
$data[“judul”] = “Halaman Profile Admin”;

81
$data[“user”] = $this->db->get_where(“user_admin”, [“email” =>
$this->session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Profile”, $data);
} else {
$this->Model_Halaman_Admin->UpdateProfileAdmin();
$this->session->set_flashdata(“admin”, “BERHASIL”);
redirect(“Halaman_Admin/Profile”);
}
}

public function UpdateFotoAdmin()


{
$config[‘upload_path’] = ‘./assets/profile/’;
$config[‘allowed_types’] = ‘gif|jpg|png|jpeg’;
$config[‘max_size’] = ‘9000’;

$this->upload->initialize($config);

$field_name = ‘image’;
if (!$this->upload->do_upload($field_name)) {
echo $this->upload->display_errors();
} else {
$upload_data = [
‘upload’ => $this->upload->data()
];
$config[‘image_library’] = ‘gd2’;
$config[‘source_image’] = ‘./assets/profile/’ .
$upload_data[‘upload’][‘file_name’];
$this->load->library(‘image_lib’, $config);
}

$image = $upload_data[‘upload’][‘file_name’];

$email = $this->input->post(“email”);
$image = $image;

$this->db->set(“image”, $image);
$this->db->where(“email”, $email);
$this->db->update(“user_admin”);

$this->session->set_flashdata(“foto”, “BERHASIL”);
redirect(“Halaman_Admin/profile”);
}

public function DataKategoriBarang()


{
if ($this->input->post(“submit”)) {
$data[“pencarian”] = $this->input->post(“cari”);

82
} else {
$data[“pencarian”] = null;
}
$data[“judul”] = “Halaman Data Kategori Barang”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“datakategoribarang”] = $this->Model_Halaman_Admin-
>GetKategoriBarang($data[“pencarian”]);
$this->load->view(“Halaman_Admin/Halaman_Data_Kategori_Barang”,
$data);
}

public function HapusKategoriBarang($dtktgbrg)


{
$this->Model_Halaman_Admin->HapusKategoriBarang($dtktgbrg);
$this->session->set_flashdata(“kategoriii”, “DI HAPUS”);
redirect(“Halaman_Admin/DataKategoriBarang”);
}

public function TambahDataBarang()


{
$this->form_validation->set_rules(“nama_barang”, “NAMA BARANG”,
“required”, [
“required” => “Kolom Nama Barang Harus Diisi”,
]);

$this->form_validation->set_rules(“keterangan_barang”, “KETERANGAN
BARANG”, “required”, [
“required” => “Kolom Keterangan Barang Harus Diisi”,
]);

$this->form_validation->set_rules(“kategori_barang”, “KATEGORI
BARANG”, “required”, [
“required” => “Kolom Kategori Barang Harus Diisi”
]);

$this->form_validation->set_rules(“id_kategori”, “ID KATEGORI”,


“required|numeric”, [
“required” => “Kolom ID Kategori Harus Diisi”,
“numeric” => “Kolom ID Kategori Hanya Boleh Di input menggunakan
Angka”
]);

$this->form_validation->set_rules(“harga_barang”, “HARGA BARANG”,


“required|numeric”, [
“required” => “Kolom Harga Barang Harus Diisi”,
“numeric” => “Kolom Harga Barang Hanya Boleh Di input Menggunakan
Angka”

83
]);

$this->form_validation->set_rules(“berat”, “BERAT”,
“required|numeric”, [
“required” => “Kolom Berat Barang Harus Diisi”,
“numeric” => “Kolom Berat Barang Hanya Boleh Di input Menggunakan
Angka”
]);

$this->form_validation->set_rules(“stok”, “STOK BARANG”,


“required|numeric”, [
“required” => “Kolom Stok Barang Harus Diisi”,
“numeric” => “Kolom Stok Barang Hanya Boleh Di input Menggunakan
Angka”
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Data Barang”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” =>
$this->session->userdata(“email”)])->row_array();
$data[“databarang”] = $this->Model_Halaman_Admin->GetDataBarang();
$this->load->view(“Halaman_Admin/Halaman_Data_Barang”, $data);
} else {
$this->Model_Halaman_Admin->TambahDataBarang();
$this->session->set_flashdata(“adminnnn”, “BERHASIL”);
redirect(“Halaman_Admin/DataBarang”);
}
}

public function DetailIdKategori($dtktgbrg)


{
$data[“judul”] = “Halaman Detail Data Kategori Barang”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailidkategori”] = $this->Model_Halaman_Admin-
>GetDetailKategori($dtktgbrg);
$this->load->view(“Halaman_Admin/Halaman_Detail_Data_Kategori_Barang”,
$data);
}

public function EditKategoriBarang($dtktgbrg)


{

$this->form_validation->set_rules(“id_kategori”, “ID KATEGORI”,


“required|numeric”, [
“required” => “Kolom ID Kategori Harus Diisi”,
“numeric” => “Kolom ID Kategori Harus Di input menggunakan Angka”
]);

84
$this->form_validation->set_rules(“nama_kategori”, “NAMA KATEGORI”,
“required”, [
“required” => “Kolom Nama Kategori Harus Diisi”,
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Edit Kategori Barang”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” =>
$this->session->userdata(“email”)])->row_array();
$data[“user2”] = $this->db->get_where(“tb_kategori”,
[“id_kategori” => $dtktgbrg])->row_array();
$this->load-
>view(“Halaman_Admin/Halaman_Edit_Data_Kategori_Barang”, $data);
} else {
$data = [
“id_kategori” => $this->input->post(“id_kategori”),
“nama_kategori” => $this->input->post(“nama_kategori”),
];

$this->db->where(“id_kategori”, $this->input-
>post(“id_kategori”));
$this->db->update(“tb_kategori”, $data);

$this->session->set_flashdata(“kategori”, “BERHASIL”);
$redirectURL = ‘Halaman_Admin/EditKategoriBarang/’ . $dtktgbrg;
redirect($redirectURL);
}
}

public function TambahKategoriBarang()


{
$this->form_validation->set_rules(‘nama_kategori’, ‘NAMA KATEGORI’,
‘required’, [
‘required’ => ‘Kolom Nama Kategori Harus Diisi’,
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Data Kategori Barang”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” =>
$this->session->userdata(“email”)])->row_array();
$data[“datakategoribarang”] = $this->Model_Halaman_Admin-
>TambahKategoriBarang();
$this->load->view(“Halaman_Admin/Halaman_Data_Kategori_Barang”,
$data);
} else {
$data = [
“nama_kategori” => $this->input->post(“nama_kategori”)

85
];

$this->db->insert(“tb_kategori”, $data);

$this->session->set_flashdata(“kategorii”, “BERHASIL”);
redirect(“Halaman_Admin/TambahKategoriBarang”);
}
}

public function DataTransaksi()


{
if ($this->input->post(“submit”)) {
$data[“pencarian”] = $this->input->post(“cari”);
} else {
$data[“pencarian”] = null;
}
$data[“judul”] = “Halaman Data Transaksi”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“datatransaksi”] = $this->Model_Halaman_Admin-
>GetDataTransaksi($data[“pencarian”]);
$this->load->view(“Halaman_Admin/Halaman_Data_Transaksi”, $data);
}

public function HapusDataTransaksi($dttsi)


{
$this->db->where(“id_transaksi”, $dttsi);
$this->db->delete(“tb_transaksi”);

$this->session->set_flashdata(“transaksi”, “DI HAPUS”);


redirect(“Halaman_Admin/DataTransaksi”);
}

public function DetailDataTransaksi($dttsi)


{
$data[“judul”] = “Halaman Detail Data Transaksi”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detaildatatransaksi”] = $this->Model_Halaman_Admin-
>GetDetailDataTransaksi($dttsi);
$this->load->view(“Halaman_Admin/Halaman_Detail_Data_Transaksi”,
$data);
}

public function EditDataTransaksi($dttsi)


{
$data[“user2”] = $this->db->get_where(“tb_transaksi”, [“id_transaksi”
=> $dttsi])->row_array();

86
$this->form_validation->set_rules(“no_order”, “NO ORDER”, “required”,
[
“required” => “Kolom No Order Harus Diisi”
]);

$this->form_validation->set_rules(“tgl_order”, “TANGGAL ORDER”,


“required”, [
“required” => “Kolom Tanggal Order Harus Diisi”
]);

$this->form_validation->set_rules(“nama_alamat”, “NAMA ALAMAT”,


“required”, [
“required” => “Kolom Nama Alamat Harus Diisi”
]);

$this->form_validation->set_rules(“nama_penerima”, “NAMA PENERIMA”,


“required”, [
“required” => “Kolom Nama Penerima Harus Diisi”
]);

$this->form_validation->set_rules(“no_handphone_penerima”, “NO
HANDPHONE PENERIMA”, “required|numeric”, [
“required” => “Kolom No Handphone Penerima Harus Diisi”,
“numeric” => “Kolom No Handphone Penerima Harus Di input
menggunakan Angka”
]);

$this->form_validation->set_rules(“alamat_lengkap_penerima”, “ALAMAT
LENGKAP PENERIMA”, “required”, [
“required” => “Kolom Alamat Lengkap Penerima Harus Diisi”
]);

$this->form_validation->set_rules(“kecamatan”, “KECAMATAN”,
“required”, [
“required” => “Kolom Kecamatan Harus Diisi”
]);

$this->form_validation->set_rules(“kode_pos”, “KODE POS”,


“required|numeric”, [
“required” => “Kolom Kode Pos Harus Diisi”,
“numeric” => “Kolom Kode Pos Harus Di input menggunakan Angka”
]);

$this->form_validation->set_rules(“kota”, “KOTA”, “required”, [


“required” => “Kolom Kota Harus Diisi”
]);

87
$this->form_validation->set_rules(“provinsi”, “PROVINSI”, “required”,
[
“required” => “Kolom Provinsi Harus Diisi”
]);

$this->form_validation->set_rules(“berat_total”, “BERAT TOTAL”,


“required|numeric”, [
“required” => “Kolom Berat Total Harus Diisi”,
“numeric” => “Kolom Berat Total Harus Di input menggunakan Angka”
]);

$this->form_validation->set_rules(“total_bayar”, “TOTAL BAYAR”,


“required|numeric”, [
“required” => “Kolom Total Bayar Harus Diisi”,
“numeric” => “Kolom Total Bayar Harus Di input menggunakan Angka”
]);

$this->form_validation->set_rules(“status_bayar”, “STATUS BAYAR”,


“required|numeric”, [
“required” => “Kolom Status Bayar Harus Diisi”,
“numeric” => “Kolom Status Bayar Harus Di input menggunakan Angka”
]);

$this->form_validation->set_rules(“atas_nama”, “ATAS NAMA”,


“required”, [
“required” => “Kolom Atas Nama Harus Diisi”,
]);

$this->form_validation->set_rules(“nama_bank”, “NAMA BANK”,


“required”, [
“required” => “Kolom Nama Bank Harus Diisi”,
]);

$this->form_validation->set_rules(“no_rek”, “NOMOR REKENING”,


“required|numeric”, [
“required” => “Kolom No Rekening Diisi”,
“numeric” => “Kolom No Rekening Harus Di input Menggunakan Angka”
]);

$this->form_validation->set_rules(“status_order”, “STATUS ORDER”,


“required|numeric”, [
“required” => “Kolom Status Order Diisi”,
“numeric” => “Kolom Status Order Harus Di input Menggunakan Angka”
]);

$this->form_validation->set_rules(“penilaian_barang”, “PENILAIAN
BARANG”, “required”, [
“required” => “Kolom Penilaian Pesanan Diisi”,

88
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Edit Data Transaksi”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” =>
$this->session->userdata(“email”)])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Edit_Data_Transaksi”,
$data);
} else {
$this->Model_Halaman_Admin->EditDataTransaksi();
$this->session->set_flashdata(“transaksi”, “BERHASIL”);

$redirectURL = ‘Halaman_Admin/EditDataTransaksi/’ . $dttsi;


redirect($redirectURL);
}
}

public function PesananMasuk()


{
$data[“judul”] = “Halaman Pesanan Masuk”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“pesananmasuk”] = $this->Model_Halaman_Admin->GetPesananMasuk();
// $data[“sudahbayar”] = $this->Model_Halaman_Admin->GetSudahBayar();
$data[“diproses”] = $this->Model_Halaman_Admin->Diproses();
$data[“dikirim”] = $this->Model_Halaman_Admin->Dikirim();
$data[“diterima”] = $this->Model_Halaman_Admin->Diterima();
$this->load->view(“Halaman_Admin/Halaman_Pesanan_Masuk”, $data);
}

public function CekBuktiBayar($sdhbyr)


{
$data[“judul”] = “Halaman Pesanan Masuk”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“cekbayar”] = $this->db->get_where(“tb_transaksi”,
[“id_transaksi” => $sdhbyr])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Cek_Bukti_Bayar”, $data);
}

public function SudahDiProses($cekbayar)


{
$data = [
“status_order” => 1
];

$this->db->where(“id_transaksi”, $cekbayar);

89
$this->db->update(“tb_transaksi”, $data);

$this->session->set_flashdata(“berhasil”, “BERHASIL”);
$redirectURL = ‘Halaman_Admin/CekBuktiBayar/’ . $cekbayar;
redirect($redirectURL);
}

public function ProsesDikirim($dprs)


{
$data = [
“status_order” => 2
];

$this->db->where(“id_transaksi”, $dprs);
$this->db->update(“tb_transaksi”, $data);

$this->session->set_flashdata(“berhasill”, “BERHASIL”);
redirect(“Halaman_Admin/PesananMasuk”);
}

public function DataRinciTransaksi()


{
if ($this->input->post(“submit”)) {
$data[“pencarian”] = $this->input->post(“cari”);
} else {
$data[“pencarian”] = null;
}
$data[“judul”] = “Halaman Rincian Transaksi”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“datarincitransaksi”] = $this->Model_Halaman_Admin-
>GetDataRinciTransaksi($data[“pencarian”]);
$this->load->view(“Halaman_Admin/Halaman_Rinci_Data_Transaksi”,
$data);
}

public function HapusRinciTransaksi($dtrctri)


{
$this->db->where(“id_rinci”, $dtrctri);
$this->db->delete(“tb_rinci_transaksi”);

$this->session->set_flashdata(“rinci”, “DI HAPUS”);


redirect(“Halaman_Admin/DataRinciTransaksi”);
}

90
public function DetailRinciTransaksi($dtrctri)
{
$data[“judul”] = “Halaman Detail Rinci Transaksi”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailrincitransaksi”] = $this->Model_Halaman_Admin-
>GetDetailRinciTransaksi($dtrctri);
$this->load->view(“Halaman_Admin/Halaman_Detail_Rinci_Transaksi”,
$data);
}

public function EditRinciTransaksi($dtrctri)


{
$data[“judul”] = “Halaman Edit Data Rinci Transaksi”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“editrincitransaksi”] = $this->db-
>get_where(“tb_rinci_transaksi”, [“id_rinci” => $dtrctri])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Edit_Data_Rinci_Transaksi”,
$data);
}

public function FormEditRinciTransaksi($editrincitransaksi)


{

$this->form_validation->set_rules(“nama_barang”, “NAMA BARANG”,


“required”, [
“required” => “Kolom Nama Barang Harus Diisi”,
]);

$this->form_validation->set_rules(“harga_barang”, “HARGA BARANG”,


“required|numeric”, [
“required” => “Kolom Harga Barang Harus Diisi”,
“numeric” => “Kolom Harga Barang Harus Diisi Menggunakan Angka”
]);

$this->form_validation->set_rules(“berat”, “BERAT BARANG”,


“required|numeric”, [
“required” => “Kolom Berat Barang Harus Diisi”,
“numeric” => “Kolom Berat Barang Harus Diisi Menggunakan Angka”
]);

$this->form_validation->set_rules(“qty”, “QTY”, “required|numeric”, [


“required” => “Kolom QTY Harus Diisi”,
“numeric” => “Kolom QTY Harus Diisi Menggunakan Angka”
]);

91
$this->form_validation->set_rules(“subtotal”, “SUBTOTAL”,
“required|numeric”, [
“required” => “Kolom Subtotal Harus Diisi”,
“numeric” => “Kolom Subtotal Harus Diisi Menggunakan Angka”
]);

$this->form_validation->set_rules(“kategori_barang”, “KATEGORI
BARANG”, “required”, [
“required” => “Kolom Kategori Barang Harus Diisi”,
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Edit Data Rinci Transaksi”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” =>
$this->session->userdata(“email”)])->row_array();
$data[“editrincitransaksi”] = $this->db-
>get_where(“tb_rinci_transaksi”, [“id_rinci” => $editrincitransaksi])-
>row_array();
$this->load-
>view(“Halaman_Admin/Halaman_Edit_Data_Rinci_Transaksi”, $data);
} else {

$data = [
“nama_barang” => $this->input->post(“nama_barang”),
“harga_barang” => $this->input->post(“harga_barang”),
“berat” => $this->input->post(“berat”),
“qty” => $this->input->post(“qty”),
“subtotal” => $this->input-
>post(“subtotal”),
“kategori_barang” => $this->input->post(“kategori_barang”),
];

$this->db->where(“id_rinci”, $editrincitransaksi);
$this->db->update(“tb_rinci_transaksi”, $data);

$this->session->set_flashdata(“editrinci”, “Edit Rinci Transaksi


Berhasil”);
$redirectURL = ‘Halaman_Admin/FormEditRinciTransaksi/’ .
$editrincitransaksi;
redirect($redirectURL);
}
}

public function DataUserPembeli()


{
if ($this->input->post(“submit”)) {
$data[“pencarian”] = $this->input->post(“cari”);
} else {

92
$data[“pencarian”] = null;

93
}
$data[“judul”] = “Halaman Data User Pembeli”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“userpembeli”] = $this->Model_Halaman_Admin-
>GetDataUserPembeli($data[“pencarian”]);
$this->load->view(“Halaman_Admin/Halaman_Data_User_Pembeli”, $data);
}

public function HapusDataUserPembeli($usrpbl)


{
$this->db->where(“id_pembeli”, $usrpbl);
$this->db->delete(“user”);

$this->session->set_flashdata(“datauserpembeli”, “Hapus Data User


Pembeli Berhasil”);
redirect(“Halaman_Admin/DataUserPembeli”);
}

public function DetailDataUserPembeli($usrpbl)


{
$data[“judul”] = “Halaman Detail Data User Pembeli”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailuserpembeli”] = $this->db->get_where(“user”,
[“id_pembeli” => $usrpbl])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Detail_Data_User_Pembeli”,
$data);
}

public function DataUserAdmin()


{
if ($this->input->post(“submit”)) {
$data[“pencarian”] = $this->input->post(“cari”);
} else {
$data[“pencarian”] = null;
}
$data[“judul”] = “Halaman Data User Admin”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“datauseradminn”] = $this->Model_Halaman_Admin-
>GetDataUserAdmin($data[“pencarian”]);
$this->load->view(“Halaman_Admin/Halaman_Data_User_Admin”, $data);
}

94
public function HapusDataUserAdmin($usradmn)
{
$this->db->where(“id_admin”, $usradmn);
$this->db->delete(“user_admin”);

$this->session->set_flashdata(“datauseradminn”, “Data User Admin


Berhasil Di Hapus”);
redirect(“Halaman_Admin/DataUserAdmin”);
}

public function DetailDataUserAdmin($usradmn)


{
$data[“judul”] = “Halaman Detail Data User Admin”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detaildatauseradmin”] = $this->db->get_where(“user_admin”,
[“id_admin” => $usradmn])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Detail_Data_User_Admin”,
$data);
}

public function DataRekeningToko()


{
if ($this->input->post(“submit”)) {
$data[“pencarian”] = $this->input->post(“cari”);
} else {
$data[“pencarian”] = null;
}
$data[“judul”] = “Halaman Data Rekening Toko”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“datarekeningtoko”] = $this->Model_Halaman_Admin-
>GetDataRekeningToko($data[“pencarian”]);
$this->load->view(“Halaman_Admin/Halaman_Data_Rekening_Toko”, $data);
}

public function HapusDataRekeningToko($dtrkntk)


{
$this->db->where(“id_rekening”, $dtrkntk);
$this->db->delete(“rekening”);

$this->session->set_flashdata(“datarekeningtoko”, “Hapus Data Rekening


Toko Berhasil”);
redirect(“Halaman_Admin/DataRekeningToko”);
}

95
public function DetailDataRekeningToko($dtrkntk)
{
$data[“judul”] = “Halaman Data Rekening Toko”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detailrekeningtoko”] = $this->db->get_where(“rekening”,
[“id_rekening” => $dtrkntk])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Detail_Data_Rekening_Toko”,
$data);
}

public function EditDataRekeningToko($dtrkntk)


{
$data[“judul”] = “Halaman Edit Data Rekening Toko”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“editrekeningtoko”] = $this->db->get_where(“rekening”,
[“id_rekening” => $dtrkntk])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Edit_Data_Rekening_Toko”,
$data);
}

public function FormEditDataRekeningToko($editrekeningtoko)


{
$this->form_validation->set_rules(“nama_bank”, “NAMA BANK”,
“required”, [
“required” => “Kolom Nama Bank Harus Diisi”
]);

$this->form_validation->set_rules(“atas_nama”, “ATAS NAMA”,


“required”, [
“required” => “Kolom Atas Nama Diisi”
]);

$this->form_validation->set_rules(“no_rek”, “NO REK”,


“required|numeric”, [
“required” => “Kolom No Rek Harus Diisi”,
“numeric” => “Kolom No Rek Harus Diisi Berupa Angka”
]);

if ($this->form_validation->run() == FALSE) {

$data[“judul”] = “Halaman Edit Data Rekening Toko”;


$data[“user”] = $this->db->get_where(“user_admin”, [“email” =>
$this->session->userdata(“email”)])->row_array();

96
$data[“editrekeningtoko”] = $this->db->get_where(“rekening”,
[“id_rekening” => $editrekeningtoko])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Edit_Data_Rekening_Toko”,
$data);
} else {

$data = [
“nama_bank” => $this->input-
>post(“nama_bank”), “atas_nama” => $this-
>input->post(“atas_nama”), “no_rek” => $this-
>input->post(“no_rek”),
];

$this->db->where(“id_rekening”, $editrekeningtoko);
$this->db->update(“rekening”, $data);

$this->session->set_flashdata(“editrekeningtokoo”, “Edit Data


Rekening Toko Berhasil”);
$redirectURL = ‘Halaman_Admin/FormEditDataRekeningToko/’ .
$editrekeningtoko;
redirect($redirectURL);
}
}

public function DataPesan()


{
if ($this->input->post(“submit”)) {
$data[“pencarian”] = $this->input->post(“cari”);
} else {
$data[“pencarian”] = null;
}
$data[“judul”] = “Halaman Data Pesan”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“datapesan”] = $this->Model_Halaman_Admin-
>GetDataPesan($data[“pencarian”]);
$this->load->view(“Halaman_Admin/Halaman_Data_Pesan”, $data);
}

public function HapusDataPesan($dtpsn)


{
$this->db->where(“id”, $dtpsn);
$this->db->delete(“contact”);

$this->session->set_flashdata(“datapesan”, “Data Pesan Berhasil Di


Hapus”);
redirect(“Halaman_Admin/DataPesan”);
}
97
public function DetailDataPesan($dtpsn)
{
$data[“judul”] = “Halaman Detail Data Pesan”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“detaildatapesan”] = $this->db->get_where(“contact”, [“id” =>
$dtpsn])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Detail_Data_Pesan”, $data);
}

public function EditDataPesan($dtpsn)


{
$data[“judul”] = “Halaman Edit Data Pesan”;
$data[“user”] = $this->db->get_where(“user_admin”, [“email” => $this-
>session->userdata(“email”)])->row_array();
$data[“editdatapesan”] = $this->db->get_where(“contact”, [“id” =>
$dtpsn])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Edit_Data_Pesan”, $data);
}

public function FormEditDataPesan($editdatapesan)


{
$this->form_validation->set_rules(“nama_pengirim”, “NAMA PENGIRIM”,
“required”, [
“required” => “Kolom Nama Pengirim Harus Diisi”,
]);

$this->form_validation->set_rules(“email_pengirim”, “EMAIL PENGIRIM”,


“required|trim|valid_email”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Kolom Email Harus Diisi dengan Valid”,
]);

$this->form_validation->set_rules(“no_handphone”, “NO HANDPHONE”,


“required|numeric”, [
“required” => “Kolom No Handphone Harus Diisi”,
“numeric” => “Kolom No Handphone Harus Diisi dengan angka”,
]);

$this->form_validation->set_rules(“pesan”, “PESAN”, “required”, [


“required” => “Kolom Pesan Harus Diisi”,
]);

$this->form_validation->set_rules(“tanggal_pengiriman”, “TANGGAL
PENGIRIMAN”, “required”, [
“required” => “Kolom Tanggal Pengiriman Harus Diisi”,

98
]);

if ($this->form_validation->run() == FALSE) {

$data[“judul”] = “Halaman Edit Data Pesan”;


$data[“user”] = $this->db->get_where(“user_admin”, [“email” =>
$this->session->userdata(“email”)])->row_array();
$data[“editdatapesan”] = $this->db->get_where(“contact”, [“id” =>
$editdatapesan])->row_array();
$this->load->view(“Halaman_Admin/Halaman_Edit_Data_Pesan”, $data);
} else {

$data = [
“nama_pengirim” => $this->input->post(“nama_pengirim”),
“email_pengirim” => $this->input->post(“email_pengirim”),
“no_handphone” => $this->input->post(“no_handphone”),
“pesan” => $this->input->post(“pesan”),
“tanggal_pengiriman” => $this->input-
>post(“tanggal_pengiriman”),
];

$this->db->where(“id”, $editdatapesan);
$this->db->update(“contact”, $data);

$this->session->set_flashdata(“editdatapesan”, “Edit Data Pesan


Berhasil”);
$redirectURL = ‘Halaman_Admin/FormEditDataPesan/’ .
$editdatapesan;
redirect($redirectURL);
}
}

public function EditDataUserAdmin($usradmn)


{
$data[“user3”] = $this->db->get_where(“user_admin”, [“id_admin” =>
$usradmn])->row_array();

$this->form_validation->set_rules(“nama”, “NAMA”, “required”, [


“required” => “Kolom Nama Harus Diisi”
]);

$this->form_validation->set_rules(“alamat”, “ALAMAT”, “required”, [


“required” => “Kolom Alamat Harus Diisi”
]);

$this->form_validation->set_rules(“jenis_kelamin”, “JENIS KELAMIN”,


“required”, [
“required” => “Kolom Jenis Kelamin Harus Diisi”

99
]);

$this->form_validation->set_rules(“tempat_lahir”, “TEMPAT LAHIR”,


“required”, [
“required” => “Kolom Tempat Lahir Harus Diisi”
]);

$this->form_validation->set_rules(“tanggal_lahir”, “tanggal_lahir”,
“required”, [
“required” => “Kolom Tanggal Lahir Harus Diisi”,
]);

$this->form_validation->set_rules(“no_telepon”, “NO TELEPON”,


“required|numeric”, [
“required” => “Kolom No Telepon Harus Diisi”,
“numeric” => “Kolom No Telepon Harus Diisi Menggunakan Angka”
]);

$this->form_validation->set_rules(“email”, “EMAIL”,
“required|trim|valid_email”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”
]);

$this->form_validation->set_rules(“role_id”, “ROLE ID”,


“required|numeric”, [
“required” => “Kolom Role Id Harus Diisi”,
“numeric” => “Kolom Role Id Harus Di input menggunakan Angka”
]);

$this->form_validation->set_rules(“is_active”, “IS ACTIVE”,


“required|numeric”, [
“required” => “Kolom Is Active Harus Diisi”,
“numeric” => “Kolom Is Active Harus Diinput Menggunakan Angka”
]);

$this->form_validation->set_rules(“date_created”, “DATE CREATED”,


“required|numeric”, [
“required” => “Kolom Date Created Harus Diisi”,
“numeric” => “Kolom Date Created Harus Di input Menggunakan Angka”
]);

if ($this->form_validation->run() == FALSE) {

$data[“judul”] = “Halaman Edit Data User Admin”;


$data[“user”] = $this->db->get_where(“user_admin”, [“email” =>
$this->session->userdata(“email”)])->row_array();

91
0
$this->load->view(“Halaman_Admin/Halaman_Edit_Data_User_Admin”,
$data);
} else {

$data = [
“nama” => $this->input->post(“nama”),
“alamat” => $this->input->post(“alamat”),
“jenis_kelamin” => $this->input->post(“jenis_kelamin”),
“tempat_lahir” => $this->input->post(“tempat_lahir”),
“tanggal_lahir” => $this->input->post(“tanggal_lahir”),
“no_telepon” => $this->input->post(“no_telepon”),
“email” => $this->input->post(“email”),
“role_id” => $this->input->post(“role_id”),
“is_active” => $this->input->post(“is_active”),
“date_created” => $this->input->post(“date_created”),
];

$this->db->where(“id_admin”, $this->input->post(“id_admin”));
$this->db->update(“user_admin”, $data);

$this->session->set_flashdata(“editdataadmin”, “Edit Data Admin


Berhasil”);
redirect(“Halaman_Admin/DataUserAdmin”);
}
}
}

2. Source Code Model Halaman Admin

<?php
class Model_Halaman_Admin extends CI_Model
{

public function JumlahDataBarang()


{

return $this->db->get(“tb_barang”)->num_rows();
}

public function JumlahKategoriBarang()


{

return $this->db->get(“tb_kategori”)->num_rows();
}

100
public function JumlahDataTransaksi()
{

return $this->db->get(“tb_transaksi”)->num_rows();
}

public function JumlahRincianTransaksi()


{

return $this->db->get(“tb_rinci_transaksi”)->num_rows();
}

public function JumlahUserPembeli()


{
return $this->db->get(“user”)->num_rows();
}

public function JumlahUserAdmin()


{
return $this->db->get(“user_admin”)->num_rows();
}

public function JumlahDataRekeningToko()


{
return $this->db->get(“rekening”)->num_rows();
}

public function JumlahDataPesan()


{
return $this->db->get(“contact”)->num_rows();
}

public function GetDataBarang($pencarian)


{
if ($pencarian) {

$this->db->like(“nama_barang”, $pencarian);
$this->db->or_like(“keterangan_barang”, $pencarian);
$this->db->or_like(“kategori_barang”, $pencarian);
$this->db->or_like(“id_kategori”, $pencarian);
$this->db->or_like(“harga_barang”, $pencarian);
$this->db->or_like(“berat”, $pencarian);
$this->db->or_like(“stok”, $pencarian);
$this->db->or_like(“gambar”, $pencarian);
}
return $this->db->get(“tb_barang”)->result_array();
}

101
public function DeleteOneData($dtbrg)
{
$this->db->where(“id_barang”, $dtbrg);
$this->db->delete(“tb_barang”);
}

public function GetDetailDataBarang($dtbrg)


{
return $this->db->get_where(“tb_barang”, [“id_barang” => $dtbrg])-
>row_array();
}

public function EditDataBarang()


{
$config[‘upload_path’] = ‘./public/image/fotoproduk/’;
$config[‘allowed_types’] = ‘gif|jpg|png|jpeg’;
$config[‘max_size’] = ‘9000’;

$this->upload->initialize($config);

$field_name = ‘gambar’;
if (!$this->upload->do_upload($field_name)) {
echo $this->upload->display_errors();
} else {
$upload_data = [
‘upload’ => $this->upload->data()
];
$config[‘image_library’] = ‘gd2’;
$config[‘source_image’] = ‘./public/image/fotoproduk’ .
$upload_data[‘upload’][‘file_name’];
$this->load->library(‘image_lib’, $config);
}

$image = $upload_data[‘upload’][‘file_name’];

$data = [
“nama_barang” => $this->input->post(“nama_barang”),
“keterangan_barang” => $this->input->post(“keterangan_barang”),
“kategori_barang” => $this->input->post(“kategori_barang”),
“id_kategori” => $this->input->post(“id_kategori”),
“harga_barang” => $this->input->post(“harga_barang”),
“berat” => $this->input->post(“berat”),
“stok” => $this->input->post(“stok”),
“gambar” => $image,
];

$this->db->where(“id_barang”, $this->input->post(“id_barang”));

102
$this->db->update(“tb_barang”, $data);
}

public function UpdateProfileAdmin()


{
$email = $this->input->post(“email”);
$nama = $this->input->post(“nama”);
$alamat = $this->input->post(“alamat”);
$jenis_kelamin = $this->input->post(“jenis_kelamin”);
$tempat_lahir = $this->input->post(“tempat_lahir”);
$tanggal_lahir = $this->input->post(“tanggal_lahir”);
$no_telepon = $this->input->post(“no_telepon”);

$this->db->set(“nama”, $nama);
$this->db->set(“alamat”, $alamat);
$this->db->set(“jenis_kelamin”, $jenis_kelamin);
$this->db->set(“tempat_lahir”, $tempat_lahir);
$this->db->set(“tanggal_lahir”, $tanggal_lahir);
$this->db->set(“no_telepon”, $no_telepon);
$this->db->where(“email”, $email);
$this->db->update(“user_admin”);
}

public function GetKategoriBarang($pencarian)


{

if ($pencarian) {
$this->db->like(“nama_kategori”, $pencarian);
$this->db->or_like(“id_kategori”, $pencarian);
}
return $this->db->get(“tb_kategori”)->result_array();
}

public function TambahKategoriBarang()


{
return $this->db->get(“tb_kategori”)->result_array();
}

public function HapusKategoriBarang($dtktgbrg)


{
$this->db->where(“id_kategori”, $dtktgbrg);
$this->db->delete(“tb_kategori”);
}

public function TambahDataBarang()


{
$config[‘upload_path’] = ‘./public/image/fotoproduk/’;
$config[‘allowed_types’] = ‘gif|jpg|png|jpeg’;

103
$config[‘max_size’] = ‘9000’;

$this->upload->initialize($config);

$field_name = ‘gambar’;
if (!$this->upload->do_upload($field_name)) {
echo $this->upload->display_errors();
} else {
$upload_data = [
‘upload’ => $this->upload->data()
];
$config[‘image_library’] = ‘gd2’;
$config[‘source_image’] = ‘./public/image/fotoproduk’ .
$upload_data[‘upload’][‘file_name’];
$this->load->library(‘image_lib’, $config);
}

$image = $upload_data[‘upload’][‘file_name’];

$data = [
“nama_barang” => $this->input->post(“nama_barang”),
“keterangan_barang” => $this->input->post(“keterangan_barang”),
“kategori_barang” => $this->input->post(“kategori_barang”),
“id_kategori” => $this->input->post(“id_kategori”),
“harga_barang” => $this->input->post(“harga_barang”),
“berat” => $this->input->post(“berat”),
“stok” => $this->input->post(“stok”),
“gambar” => $image
];

$this->db->insert(“tb_barang”, $data);
}

public function GetDetailKategori($dtktgbrg)


{
return $this->db->get_where(“tb_kategori”, [“id_kategori” =>
$dtktgbrg])->row_array();
}

public function GetDataTransaksi($pencarian)


{
if ($pencarian) {

$this->db->like(“id_transaksi”, $pencarian);
$this->db->or_like(“id_pembeli”, $pencarian);
$this->db->or_like(“no_order”, $pencarian);
$this->db->or_like(“tgl_order”, $pencarian);
$this->db->or_like(“nama_alamat”, $pencarian);

104
$this->db->or_like(“nama_penerima”, $pencarian);
$this->db->or_like(“no_handphone_penerima”, $pencarian);
$this->db->or_like(“alamat_lengkap_penerima”, $pencarian);
$this->db->or_like(“kecamatan”, $pencarian);
$this->db->or_like(“kode_pos”, $pencarian);
$this->db->or_like(“kota”, $pencarian);
$this->db->or_like(“provinsi”, $pencarian);
$this->db->or_like(“berat_total”, $pencarian);
$this->db->or_like(“total_bayar”, $pencarian);
$this->db->or_like(“status_bayar”, $pencarian);
$this->db->or_like(“bukti_bayar”, $pencarian);
$this->db->or_like(“atas_nama”, $pencarian);
$this->db->or_like(“nama_bank”, $pencarian);
$this->db->or_like(“no_rek”, $pencarian);
$this->db->or_like(“status_order”, $pencarian);
$this->db->or_like(“bukti_diterima”, $pencarian);
$this->db->or_like(“penilaian_barang”, $pencarian);
}
return $this->db->get(“tb_transaksi”)->result_array();
}

public function GetDetailDataTransaksi($dttsi)


{
return $this->db->get_where(“tb_transaksi”, [“id_transaksi” =>
$dttsi])->row_array();
}

public function EditDataTransaksi()


{
$data = [
“no_order” => $this->input->post(“no_order”),
“tgl_order” => $this->input->post(“tgl_order”),
“nama_alamat” => $this->input->post(“nama_alamat”),
“nama_penerima” => $this->input->post(“nama_penerima”),
“no_handphone_penerima” => $this->input-
>post(“no_handphone_penerima”),
“alamat_lengkap_penerima” => $this->input-
>post(“alamat_lengkap_penerima”),
“kecamatan” => $this->input-
>post(“kecamatan”), “kode_pos” => $this-
>input->post(“kode_pos”), “kota” => $this-
>input->post(“kota”), “provinsi” => $this-
>input->post(“provinsi”),
“berat_total” => $this->input->post(“berat_total”),
“total_bayar” => $this->input->post(“total_bayar”),
“status_bayar” => $this->input->post(“status_bayar”),
“atas_nama” => $this->input->post(“atas_nama”),
“nama_bank” => $this->input->post(“nama_bank”),
“no_rek” => $this->input->post(“no_rek”),

105
“status_order” => $this->input->post(“status_order”),
“penilaian_barang” => $this->input->post(“penilaian_barang”),
];

$this->db->where(“id_transaksi”, $this->input->post(“id_transaksi”));
$this->db->update(“tb_transaksi”, $data);
}

public function GetPesananMasuk()


{
return $this->db->get_where(“tb_transaksi”, [“status_order” => 0])-
>result_array();
}

// public function GetSudahBayar()


// {
// return $this->db->get_where(“tb_transaksi”, [“status_bayar” =>
1, “status_order” => 0])->result_array();
// }

public function Diproses()


{
return $this->db->get_where(“tb_transaksi”, [“status_order” => 1])-
>result_array();
}

public function Dikirim()


{
return $this->db->get_where(“tb_transaksi”, [“status_order” => 2])-
>result_array();
}

public function Diterima()


{
return $this->db->get_where(“tb_transaksi”, [“status_order” => 3])-
>result_array();
}

public function GetDataRinciTransaksi($pencarian)


{
if ($pencarian) {
$this->db->like(“id_rinci”, $pencarian);
$this->db->or_like(“no_order”, $pencarian);
$this->db->or_like(“id_barang”, $pencarian);
$this->db->or_like(“gambar”, $pencarian);
$this->db->or_like(“nama_barang”, $pencarian);

106
$this->db->or_like(“harga_barang”, $pencarian);
$this->db->or_like(“berat”, $pencarian);
$this->db->or_like(“qty”, $pencarian);
$this->db->or_like(“subtotal”, $pencarian);
$this->db->or_like(“kategori_barang”, $pencarian);
}
return $this->db->get(“tb_rinci_transaksi”)->result_array();
}

public function GetDetailRinciTransaksi($dtrctri)


{
return $this->db->get_where(“tb_rinci_transaksi”, [“id_rinci” =>
$dtrctri])->row_array();
}

public function GetDataRekeningToko($pencarian)


{
if ($pencarian) {
$this->db->like(“nama_bank”, $pencarian);
$this->db->or_like(“atas_nama”, $pencarian);
$this->db->or_like(“no_rek”, $pencarian);
}
return $this->db->get(“rekening”)->result_array();
}

public function GetDataUserAdmin($pencarian)


{
if ($pencarian) {
$this->db->like(“id_admin”, $pencarian);
$this->db->or_like(“nama”, $pencarian);
$this->db->or_like(“alamat”, $pencarian);
$this->db->or_like(“jenis_kelamin”, $pencarian);
$this->db->or_like(“tempat_lahir”, $pencarian);
$this->db->or_like(“tanggal_lahir”, $pencarian);
$this->db->or_like(“no_telepon”, $pencarian);
$this->db->or_like(“email”, $pencarian);
$this->db->or_like(“password2”, $pencarian);
$this->db->or_like(“role_id”, $pencarian);
$this->db->or_like(“is_active”, $pencarian);
$this->db->or_like(“date_created”, $pencarian);
$this->db->or_like(“image”, $pencarian);
}
return $this->db->get(“user_admin”)->result_array();
}

public function GetDataUserPembeli($pencarian)

107
{
if ($pencarian) {
$this->db->like(“id_pembeli”, $pencarian);
$this->db->or_like(“nama”, $pencarian);
$this->db->or_like(“alamat”, $pencarian);
$this->db->or_like(“jenis_kelamin”, $pencarian);
$this->db->or_like(“tempat_lahir”, $pencarian);
$this->db->or_like(“tanggal_lahir”, $pencarian);
$this->db->or_like(“no_telepon”, $pencarian);
$this->db->or_like(“email”, $pencarian);
$this->db->or_like(“password”, $pencarian);
$this->db->or_like(“role_id”, $pencarian);
$this->db->or_like(“is_active”, $pencarian);
$this->db->or_like(“date_created”, $pencarian);
$this->db->or_like(“image”, $pencarian);
}
return $this->db->get(“user”)->result_array();
}

public function GetDataPesan($pencarian)


{
if ($pencarian) {

$this->db->like(“id”, $pencarian);
$this->db->or_like(“nama_pengirim”, $pencarian);
$this->db->or_like(“email_pengirim”, $pencarian);
$this->db->or_like(“no_handphone”, $pencarian);
$this->db->or_like(“pesan”, $pencarian);
$this->db->or_like(“tanggal_pengiriman”, $pencarian);
}
return $this->db->get(“contact”)->result_array();
}
}

3. Source Code Controller Login Registrasi Aktivasi dan forgot password Admin

<?php
class Login_Registrasi extends CI_Controller
{

public function construct()


{
parent:: construct();

108
if ($this->session->userdata(“email”) && $this->session-
>userdata(“role_id”) == 2) {
redirect(“Halaman_Pembeli”);
} else {
if ($this->session->userdata(“email”) && $this->session-
>userdata(“role_id”) == 1) {
redirect(“Halaman_Admin”);
}
}
if ($this->session->userdata(“email”) && $this->session-
>userdata(“role_id”) == 0) {
redirect(“Halaman_Admin”);
}
}

public function index()


{

$data[“judul”] = “Halaman Login Pembeli”;


$this->load->view(“Halaman_Login_Pembeli”, $data);
}

public function RegistrasiPembeli()


{
$this->form_validation->set_rules(“nama”, “NAMA”, “required”, [
“required” => “Kolom Nama Harus Diisi”
]);

$this->form_validation->set_rules(“email”, “EMAIL”,
“required|valid_email|trim|is_unique[user.email]”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”,
“is_unique” => “Email Yang Anda Masukkan Sudah Terdaftar”
]);

$this->form_validation->set_rules(“password”, “PASSWORD”,
“required|trim|min_length[8]|matches[password2]”, [
“required” => “Kolom Password Harus Diisi”,
“min_length” => “Password Yang Anda Masukkan Kurang Dari 8
karakter”,
“matches” => “Password Tidak Sesuai Dengan Konfirmasi Password”,

]);

$this->form_validation->set_rules(“password2”, “KOFIRMASI PASSWORD”,


“required|trim|matches[password]”, [
“required” => “Kolom Konfirmasi Password Harus Diisi”,

109
“matches” => “Konfirmasi Password Tidak Sesuai Dengan Password”
]);

if ($this->form_validation->run() == FALSE) {

$data[“judul”] = “Halaman Registrasi Pembeli”;


$this->load->view(“Halaman_Registrasi_Pembeli”, $data);
} else {
$this->Model_Login_Registrasi->RegistrasiPembeli();
$this->session->set_flashdata(“Registrasi”, “Berhasil”);
redirect(“Login_Registrasi/RegistrasiPembeli”);
}
}

public function LoginPembeli()


{

$this->form_validation->set_rules(“email”, “EMAIL”,
“required|valid_email”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”
]);

$this->form_validation->set_rules(“password”, “PASSWORD”,
“required|min_length[8]”, [
“required” => “Kolom Password Harus Diisi”,
“min_length” => “Password Yang Anda Masukkan Kurang Dari 8
Karakter”
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Login Pembeli”;
$this->load->view(“Halaman_Login_Pembeli”, $data);
} else {
$this->Model_Login_Registrasi->LoginPembeli();
}
}

public function index2()


{

$data[“judul”] = “Halaman Login Admin”;


$this->load->view(“Halaman_Login_Admin”, $data);
}

public function RegistrasiAdmin()


{
$this->form_validation->set_rules(“nama”, “NAMA”, “required”, [

110
“required” => “Kolom Nama Harus Diisi”
]);

$this->form_validation->set_rules(“email”, “EMAIL”,
“required|valid_email|trim|is_unique[user_admin.email]”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”,
“is_unique” => “Email Yang Anda Masukkan Sudah Terdaftar”
]);

$this->form_validation->set_rules(“password2”, “PASSWORD”,
“required|trim|min_length[8]|matches[password3]”, [
“required” => “Kolom Password Harus Diisi”,
“min_length” => “Password Yang Anda Masukkan Kurang Dari 8
karakter”,
“matches” => “Password Tidak Sesuai Dengan Konfirmasi Password”
]);

$this->form_validation->set_rules(“password3”, “KOFIRMASI PASSWORD”,


“required|trim|matches[password2]”, [
“required” => “Kolom Konfirmasi Password Harus Diisi”,
“matches” => “Konfirmasi Password Tidak Sesuai Dengan
Password”
]);

if ($this->form_validation->run() == FALSE) {

$data[“judul”] = “Halaman Registrasi Admin”;


$this->load->view(“Halaman_Registrasi_Admin”, $data);
} else {
$this->Model_Login_Registrasi->RegistrasiAdmin();
$this->session->set_flashdata(“Regisadmin”, “Registrasi Berhasil,
Silahkan Cek Email Anda Untuk Verifikasi”);
redirect(“Login_Registrasi/RegistrasiAdmin”);
}
}

public function LoginAdmin()


{

$this->form_validation->set_rules(“email2”, “EMAIL”,
“required|valid_email”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”
]);

$this->form_validation->set_rules(“password2”, “PASSWORD”,
“required|min_length[8]”, [
“required” => “Kolom Password Harus Diisi”,

111
“min_length” => “Password Yang Anda Masukkan Kurang Dari 8
karakter”
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Login Admin”;
$this->load->view(“Halaman_Login_Admin”, $data);
} else {
$this->Model_Login_Registrasi->LoginAdmin();
}
}

public function Verify()


{
$email = $this->input->get(“email”);
$token = $this->input->get(“token”);

$user = $this->db->get_where(“user”, [“email” => $email])-


>row_array();

if ($user) {
$user_token = $this->db->get_where(“user_token”, [“token” =>
$token])->row_array();

if ($user_token) {
if (time() - $user_token[“date_created”] < 60 * 60) {

$data = [
“is_active” => 1
];

$this->db->where(“email”, $email);
$this->db->update(“user”, $data);

$this->db->delete(“user_token”, [“email” => $email]);

$this->session->set_flashdata(“aktivasiiii”, “Aktivasi
Berhasil”);
redirect(“Login_Registrasi/RegistrasiPembeli”);
} else {
$this->db->delete(“user”, [“email” => $email]);
$this->db->delete(“user_token”, [“email” => $email]);

$this->session->set_flashdata(“aktivasiii”, “Token
Expired”);
redirect(“Login_Registrasi/RegistrasiPembeli”);
}
} else {

112
$this->session->set_flashdata(“aktivasii”, “Token Tidak
Terdaftar”);
redirect(“Login_Registrasi/RegistrasiPembeli”);
}

} else {
$this->session->set_flashdata(“aktivasi”, “Email Tidak
Terdaftar”);
redirect(“Login_Registrasi/RegistrasiPembeli”);
}
}

public function Forgot_Password()


{
$data[“judul”] = “Halaman Forgot Password”;
$this->load->view(“Halaman_Forgot_Password”, $data);
}

public function FormForgotPassword()


{
$this->form_validation->set_rules(“email”, “EMAIL”,
“required|valid_email|trim”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”,
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Forgot Password”;
$this->load->view(“Halaman_Forgot_Password”, $data);
} else {
$this->Model_Login_Registrasi->ForgotPassword();
$this->session->set_flashdata(“113ogin113”, “Silahkan Cek Email
Untuk Reset Password”);
redirect(“Login_Registrasi/Forgot_Password”);
}
}

public function Forgot()


{
$email = $this->input->get(“email”);
$token = $this->input->get(“token”);

$user = $this->db->get_where(“user”, [“email” => $email])-


>row_array();

if ($user) {
$user_token = $this->db->get_where(“user_token”, [“token” =>
$token])->row_array();

113
if ($user_token) {
$this->session->set_userdata(“forgot_password”, $email);

$this->ResetPassword();
} else {
$this->session->set_flashdata(“forgotttt”, “TOKEN TIDAK
TERDAFTAR”);
redirect(“Login_Registrasi/ForgotPassword”);
}
} else {
$this->session->set_flashdata(“forgottt”, “EMAIL TIDAK
TERDAFTAR”);
redirect(“Login_Registrasi/ForgotPassword”);
}
}

public function ResetPassword()


{
if (!$this->session->userdata(“forgot_password”)) {
redirect(“Login_Registrasi/Forgot_Password”);
} else {

$this->form_validation->set_rules(“password”, “PASSWORD”,
“required|trim|min_length[8]|matches[password2]”, [
“required” => “Kolom Password Harus Diisi”,
“min_length” => “Password Yang Anda Masukkan Kurang Dari 8
karakter”,
“matches” => “Password Tidak Sesuai Dengan Konfirmasi
Password”
]);

$this->form_validation->set_rules(“password2”, “KOFIRMASI
PASSWORD”, “required|trim|matches[password]”, [
“required” => “Kolom Konfirmasi Password Harus Diisi”,
“matches” => “Konfirmasi Password Tidak Sesuai Dengan
Password”
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Change Password”;
$this->load->view(“Halaman_Forgot_Password2”, $data);
} else {

$passwordd = $this->input->post(“password”);

$password = password_hash($passwordd, PASSWORD_DEFAULT);


$email = $this->session->userdata(“forgot_password”);

114
$this->db->set(“password”, $password);
$this->db->where(“email”, $email);
$this->db->update(“user”);

$this->session->unset_userdata(“forgot_password”);

$this->db->delete(“user_token”, [“email” => $email]);

$this->session->set_flashdata(“forgottttt”, “Reset Password


Berhasil Silahkan Login”);
redirect(“Login_Registrasi/LoginPembeli”);
}
}
}

public function VerifyAdmin()


{
$email = $this->input->get(“email”);
$token = $this->input->get(“token”);

$user = $this->db->get_where(“user_admin”, [“email” => $email])-


>row_array();

if ($user) {
$user_token = $this->db->get_where(“user_token”, [“token” =>
$token])->row_array();

if ($user_token) {
if (time() - $user_token[“date_created”] < 60 * 60 * 24) {

$this->db->set(“is_active”, 1);
$this->db->where(“email”, $email);
$this->db->update(“user_admin”);

$this->db->delete(“user_token”, [“email” => $email]);

$this->session->set_flashdata(“verifyadminnnn”,
“Verifikasi Berhasil Silahkan Login”);
redirect(“Login_Registrasi/RegistrasiAdmin”);
} else {

$this->db->delete(“user”, [“email” => $email]);


$this->db->delete(“user_token”, [“email” => $email]);

$this->session->set_flashdata(“verifyadminnn”, “VERIFIKASI
GAGAL, TOKEN EXPIRED TERDAFTAR”);
redirect(“Login_Registrasi/RegistrasiAdmin”);
}

115
} else {
$this->session->set_flashdata(“verifyadminn”, “VERIFIKASI
GAGAL, TOKEN TIDAK TERDAFTAR”);
redirect(“Login_Registrasi/RegistrasiAdmin”);
}
} else {
$this->session->set_flashdata(“verifyadmin”, “VERIFIKASI GAGAL,
EMAIL TIDAK TERDAFTAR”);
redirect(“Login_Registrasi/RegistrasiAdmin”);
}
}

public function ForgotPasswordAdmin()


{
$data[“judul”] = “Halaman Forgot Password Admin”;
$this->load->view(“Halaman_Forgot_Password_Admin”, $data);
}

public function FormForgotPasswordAdmin()


{
$this->form_validation->set_rules(“email”, “EMAIL”,
“required|valid_email|trim”, [
“required” => “Kolom Email Harus Diisi”,
“valid_email” => “Email Yang Anda Masukkan Tidak Valid”
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Forgot Password Admin”;
$this->load->view(“Halaman_Forgot_Password_Admin”, $data);
} else {
$this->Model_Login_Registrasi->ForgotPasswordAdmin();
$this->session->set_flashdata(“forgotadmin”, “Silahkan Cek Email
Anda Untuk Mengganti Password”);
redirect(“Login_Registrasi/ForgotPasswordAdmin”);
}
}

public function ForgotAdmin()


{
$email = $this->input->get(“email”);
$token = $this->input->get(“token”);

$user = $this->db->get_where(“user_admin”, [“email” => $email])-


>row_array();

if ($user) {

116
$user_token = $this->db->get_where(“user_token”, [“token” =>
$token])->row_array();

if ($user_token) {
$this->session->set_userdata(“forgot_password_admin”, $email);

$this->ChangePasswordAdmin();
} else {
$this->session->set_flashdata(“forgotadminnn”, “Ubah Password
Gagal, Token Tidak Terdaftar”);
redirect(“Login_Registrasi/ForgotPasswordAdmin”);
}
} else {
$this->session->set_flashdata(“forgotadminn”, “Ubah Password
Gagal, Email Yang Anda Masukkan Tidak Terdaftar”);
redirect(“Login_Registrasi/ForgotPasswordAdmin”);
}
}

public function ChangePasswordAdmin()


{
if (!$this->session->userdata(“forgot_password_admin”)) {
redirect(“Login_Registrasi/LoginAdmin”);
} else {

$this->form_validation->set_rules(“password2”, “PASSWORD”,
“required|trim|min_length[8]|matches[password3]”, [
“required” => “Kolom Password Harus Diisi”,
“min_length” => “Password Yang Anda Masukkan Kurang Dari 8
karakter”,
“matches” => “Password Tidak Sesuai Dengan Konfirmasi
Password”
]);

$this->form_validation->set_rules(“password3”, “KOFIRMASI
PASSWORD”, “required|trim|matches[password2]”, [
“required” => “Kolom Konfirmasi Password Harus Diisi”,
“matches” => “Konfirmasi Password Tidak Sesuai Dengan
Password”
]);

if ($this->form_validation->run() == FALSE) {
$data[“judul”] = “Halaman Forgot Password Admin”;
$this->load->view(“Halaman_Forgot_Password_Admin2”, $data);
} else {

$passwordd = $this->input->post(“password2”);

117
$password = password_hash($passwordd, PASSWORD_DEFAULT);

$email = $this->session->userdata(“forgot_password_admin”);

$this->db->set(“password2”, $password);
$this->db->where(“email”, $email);
$this->db->update(“user_admin”);

$this->db->delete(“user_token”, [“email” => $email]);


$this->session->unset_userdata(“forgot_password_admin”);

$this->session->set_flashdata(“sukses”, “Ubah Password Email


Berhasil, Silahkan Login”);
redirect(“Login_Registrasi/LoginAdmin”);
}
}
}
}

4. Source Code Model Login Registrasi Aktivasi Dan Forgot Password Admin

<?php
class Model_Login_Registrasi extends CI_Model
{

public function RegistrasiPembeli()


{

$data = [
“nama” => htmlspecialchars($this->input->post(“nama”, true)),
“email” => htmlspecialchars($this->input->post(“email”, true)),
“password” => htmlspecialchars(password_hash($this->input-
>post(“password”, true), PASSWORD_DEFAULT)),
“role_id” => 2,
“is_active” => 0,
“date_created” => time(),
“image” => “default.jpg”

];

// Token

$token = base64_encode(random_bytes(32));
$token_email = $this->input->post(“email”, true);

$data_token = [
‘token’ => $token,

118
‘email’ => $token_email,
‘date_created’ => time()
];

$this->db->insert(“user”, $data);
$this->db->insert(“user_token”, $data_token);

$this->_sendEmail($token, ‘verify’);
}

private function _sendEmail($token, $type)


{
$config = [
‘protocol’ => ‘smtp’,
‘smtp_host’ => ‘ssl://smtp.googlemail.com’,
‘smtp_user’ => ‘cahayabakery624@gmail.com’,
‘smtp_pass’ => ‘jvcb mqzi bbtx jhcq’,
‘smtp_port’ => 465,
‘mailtype’ => ‘html’,
‘charset’ => ‘utf-8’,
‘newline’ => “\r\n”

];

$this->load->library(“email”, $config);

$this->email->initialize($config);

$this->email->from(‘cahayabakery624@gmail.com’, ‘Cahaya Bakery’);


$this->email->to($this->input->post(“email”));

if ($type == “verify”) {
$this->email->subject(‘Verifikasi’);
$this->email->message(‘Link Aktivasi : <a href=”’ . base_url()
. ‘Login_Registrasi/Verify?email=’ . $this->input->post(“email”) .
‘&token=’ . urlencode($token) . ‘”>Activate</>’);
}

if ($this->email->send()) {
return true;
} else {
echo $this->email->print_debugger();
die();
}
}

public function LoginPembeli()

119
{

$email = $this->input->post(“email”, true);


$password = $this->input->post(“password”, true);

$user = $this->db->get_where(“user”, [“email” => $email])-


>row_array();

if ($user) {
if ($user[“is_active”] == 1) {
if (password_verify($password, $user[“password”])) {
$data = [
“id” => $user[“id_pembeli”],
“nama” => $user[“nama”],
“email” => $user[“email”],
“role_id” => $user[“role_id”]
];
$this->session->set_userdata($data);

if ($this->session->userdata(“role_id”) == 2) {
$this->session->set_flashdata(“Loginnnn”, “BERHASIL”);
redirect(“Halaman_Pembeli/index”);
} else {
redirect(“Halaman_Eror/index”);
}
} else {
$this->session->set_flashdata(“Loginnn”, “SALAH”);
redirect(“Login_Registrasi/index”);
}
} else {
$this->session->set_flashdata(“Loginn”, “Belum Teraktivasi”);
redirect(“Login_Registrasi/index”);
}
} else {
$this->session->set_flashdata(“Login”, “Tidak Terdaftar”);
redirect(“Login_Registrasi/index”);
}
}

public function RegistrasiAdmin()


{
$data = [
“nama” => htmlspecialchars($this->input->post(“nama”, true)),
“email” => htmlspecialchars($this->input->post(“email”, true)),
“password2” => htmlspecialchars(password_hash($this->input-
>post(“password2”, true), PASSWORD_DEFAULT)),
“role_id” => 0,
“is_active” => 0,

120
“date_created” => time(),
“image” => “default.jpg”

];

// SIAPKAN TOKEN

$token = base64_encode(random_bytes(32));
$email = $this->input->post(“email”);

$user_token = [
“token” => $token,
“email” => $email,
“date_created” => time()
];

$this->db->insert(“user_admin”, $data);
$this->db->insert(“user_token”, $user_token);

$this->_sendEmailAdmin($token, “verify”);
}

private function _sendEmailAdmin($token, $type)


{
$config = [
‘protocol’ => ‘smtp’,
‘smtp_host’ => ‘ssl://smtp.googlemail.com’,
‘smtp_user’ => ‘cahayabakeryy@gmail.com’,
‘smtp_pass’ => ‘oomm akjb pibf layj’,
‘smtp_port’ => 465,
‘mailtype’ => ‘html’,
‘charset’ => ‘utf-8’,
‘newline’ => “\r\n”

];

$this->load->library(“email”, $config);

$this->email->initialize($config);

$this->email->from(‘cahayabakeryy@gmail.com’, ‘Cahaya Bakery’);


$this->email->to($this->input->post(“email”));

if ($type == “verify”) {
$this->email->subject(‘Verifikasi’);
$this->email->message(‘Link Aktivasi : <a href=”’ . base_url() .
‘Login_Registrasi/VerifyAdmin?email=’ . $this->input->post(“email”) .
‘&token=’ . urlencode($token) . ‘”>Activate</>’);

121
}

if ($this->email->send()) {
return true;
} else {
echo $this->email->print_debugger();
die();
}
}

public function LoginAdmin()


{

$email = $this->input->post(“email2”, true);


$password = $this->input->post(“password2”, true);

$user = $this->db->get_where(“user_admin”, [“email” => $email])-


>row_array();

if ($user) {
if ($user[“is_active”] == 1) {
if (password_verify($password, $user[“password2”])) {
$data = [
“id” => $user[“id_admin”],
“nama” => $user[“nama”],
“email” => $user[“email”],
“role_id” => $user[“role_id”]
];

$this->session->set_userdata($data);

if ($this->session->userdata(“role_id”) == 1) {
$this->session->set_flashdata(“loginnnn”, “BERHASIL”);
redirect(“Halaman_Admin/index”);
} else {
if ($this->session->userdata(“role_id”) != 1) {
redirect(“Halaman_Eror/index”);
}
}
} else {
$this->session->set_flashdata(“loginnn”, “SALAH”);
redirect(“Login_Registrasi/index2”);
}
} else {
$this->session->set_flashdata(“122ogin”, “BELUM TERAKTIVASI”);
redirect(“Login_Registrasi/index2”);
}
} else {

122
$this->session->set_flashdata(“login”, “TIDAK TERDAFTAR”);
redirect(“Login_Registrasi/index2”);
}
}

public function ForgotPassword()


{
$email = $this->input->post(“email”);

$user = $this->db->get_where(“user”, [“email” => $email, “is_active”


=> 1])->row_array();

if ($user) {
// Siapkan Token
$token = base64_encode(random_bytes(32));
$email = $this->input->post(“email”);

$data_token = [
“email” =>
$email, “token”
=> $token,
“date_created” => time()
];

$this->db->insert(“user_token”, $data_token);

$this->_sendEMailForgot($token, ‘forgot’);
} else {
$this->session->set_flashdata(“forgot”, “Tidak Terdaftar”);
redirect(“Login_Registrasi/Forgot_Password”);
}
}

private function _sendEMailForgot($token, $type)


{
$config = [
‘protocol’ => ‘smtp’,
‘smtp_host’ => ‘ssl://smtp.googlemail.com’,
‘smtp_user’ => ‘cahayabakery624@gmail.com’,
‘smtp_pass’ => ‘jvcb mqzi bbtx jhcq’,
‘smtp_port’ => 465,
‘mailtype’ => ‘html’,
‘charset’ => ‘utf-8’,
‘newline’ => “\r\n”

];

$this->load->library(“email”, $config);

123
$this->email->initialize($config);

$this->email->from(‘cahayabakery624@gmail.com’, ‘Cahaya Bakery’);


$this->email->to($this->input->post(“email”));

if ($type == “forgot”) {
$this->email->subject(‘Link Forgot Password’);
$this->email->message(‘Link : <a href=”’ . base_url() .
‘Login_Registrasi/Forgot?email=’ . $this->input->post(“email”) . ‘&token=’ .
urlencode($token) . ‘”>Reset Password</>’);
}

if ($this->email->send()) {
return true;
} else {
echo $this->email->print_debugger();
die();
}
}

public function ForgotPasswordAdmin()


{
$email = $this->input->post(“email”);

$user = $this->db->get_where(“user_admin”, [“email” => $email,


“is_active” => 1])->row_array();

if ($user) {
// SIAPKAN TOKEN

$token = base64_encode(random_bytes(32));
$email = $this->input->post(“email”);

$data_token = [
“email” =>
$email, “token”
=> $token,
“date_created” => time()
];

$this->db->insert(“user_token”, $data_token);

$this->_sendEmailForgotAdmin($token, “forgot”);
} else {
$this->session->set_flashdata(“forgotpasswordadmin”,
“Ubah Password Gagal, Email Yang Anda Masukkan Tidak Terdaftar Atau
Belum Di verifikasi”);
redirect(“Login_Registrasi/ForgotPasswordAdmin”);
124
}
}

private function _sendEmailForgotAdmin($token, $type)


{
$config = [
‘protocol’ => ‘smtp’,
‘smtp_host’ => ‘ssl://smtp.googlemail.com’,
‘smtp_user’ => ‘cahayabakery624@gmail.com’,
‘smtp_pass’ => ‘jvcb mqzi bbtx jhcq’,
‘smtp_port’ => 465,
‘mailtype’ => ‘html’,
‘charset’ => ‘utf-8’,
‘newline’ => “\r\n”

];

$this->load->library(“email”, $config);

$this->email->initialize($config);

$this->email->from(‘cahayabakery624@gmail.com’, ‘Cahaya Bakery’);


$this->email->to($this->input->post(“email”));

if ($type == “forgot”) {
$this->email->subject(‘Link Forgot Password’);
$this->email->message(‘Link : <a href=”’ . base_url() .
‘Login_Registrasi/ForgotAdmin?email=’ . $this->input->post(“email”) .
‘&token=’ . urlencode($token) . ‘”>Reset Password</>’);
}

if ($this->email->send()) {
return true;
} else {
echo $this->email->print_debugger();
die();
}
}
}

125
D. Source Code View Tampilan Halaman Admin

1. Source Code Tampilan Halaman Login Dan Registrasi Admin

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman paling
atas source code project

126
2. Source code Tampilan Halaman Forgot Password Admin

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

3. Source Code Tampilan Halaman Dashboard Admin

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

127
4. Source Code Tampilan halaman data pesanan masuk

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

128
5. Source Code Tampilan Data Barang Halaman Admin

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

6. Source Code Tampilan data kategori barang halaman admin

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

129
7. Source Code Tampilan Data Transaksi Halaman Admin

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

8. Source Code Tampilan Halaman Data Rincian Transaksi

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

130
9. Source Code Tampilan Data User Pembeli Halaman Admin

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

10. Source Code Tampilan Data User Admin

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman paling
atas source code project

131
11. Source Code Tampilan Data Rekening Toko Halaman Admin

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman paling
atas source code project

12. Source Code Tampilan Data Pesan Halaman Admin

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman paling
atas source code project

132
13. Source Code Tampilan Halaman Profile Admin

Catatan : Untuk Versi lengkap nya silahkan lihat di dalam folder source code
project di dalam document drive yang sudah saya sertakan di halaman
paling atas source code project

133
3.3. List Pembagian Tugas
No. NIM Nama Tugas Nilai
1. 12220927 Muhammad Membuat Sistem
Abdillah Asyhar Registrasi, Login,
93
Aktivasi, Forgot
Password, Dan
Membuat sistem
pembayaran serta
membuat sistem
checkout belanja
dan keranjang
belanja dll
2. 12220863 Eko Nurhidayat Membuat Halaman
Kontak Pembeli,
82
Dan Membuat
Halaman Gallery
Produk

3. 12221410 Rendy Cahya P Membuat Halaman


Dashboard
82
Pembeli, Membuat
Halaman Checkout
Pembeli
4. 12220660 Yola Oktapiyani Membuat halaman
Keranjang pembeli 82
5. 12220933 Wiki
Nurdianyah

134
BAB IV
PENUTUP

4.1 Kesimpulan

Kami menyimpulkan bahwa makalah ini membahas


pentingnya pemanfaatan website sebagai platform dalam usaha toko
kue. Dalam era digital yang semakin maju, keberadaan website
menjadi salah satu faktor kunci dalam meningkatkan visibilitas dan
aksebilitas toko kue. Dalam menjalankan bisnis toko kue, website
menjadi sarana yang efektif untuk menjangkau konsumen lebih luas
serta memperluas pasar dan memudahkan semua kalangan dalam
ham pemesanan.
Melalui website, toko kue dapat menampilkan berbagai
produk kue yang ditawarkan, informasi lengkap mengenai produk,
harga, dan deskripsi, serta kemudahan bagi pelanggan untuk
melakukan pembelian. Dengan adanya fitur-fitur seperti pencarian
produk dan harga dari setiap kue, website toko kue memberikan
kemudahan dan kenyamanan bagi pelanggan dalam bertransaksi.
Selain itu, website toko kue juga memberikan kesempatan
untuk membangun hubungan dan interaksi dengan pelanggan
melalui feedback, ulasan, dan promosi khusus. Hal ini dapat
membantu dalam memperkuat citra merek toko kue, meningkatkan
loyalitas pelanggan, dan memperluas jangkauan pasar.
Dalam penutup, dapat disimpulkan bahwa penggunaan
website dalam toko kue memberikan manfaat signifikan dalam
menjalankan bisnis secara efisien dan efektif di era digital.
Pengembangan dan pengelolaan website yang baik menjadi kunci
sukses dalam memperluas pangsa pasar, meningkatkan penjualan,
dan memperkuat keberlangsungan usaha toko kue di tengah
persaingan bisnis yang semakin ketat.

135

Anda mungkin juga menyukai