Dasar Web 

Istilah dari kata Web atau WWW mungkin sudah tidak asing 

lagi. WWW merupakan singkatan dari World Wide Web, 

yaitu bagian dari ruang informasi dimana sumber-sumber 

daya yang berguna untuk di indentifikasi oleh pengenal 

global. Hal ini dapat disebut dengan Uniform Resource 

Identifier (URL).(Fauziah, 2014) 

 Uniform Resource Identifier (URI) yaitu terdiri dari 

beberapa karakter (string) yang digunakan untuk identifikasi 

atau memberi nama suatu sumber/source di internet yang 

berfungsi untuk memungkinkan interaksi dengan representasi 

dari resource melalui jaringan dengan menggunakan protokol 

tertentu seperti HTTP. 

Ada beberapa istilah dalam web yang sering digunakan 

diantaranya yaitu(Wibawanto, 2019): 

1. Internet  

Internet berasal dari kata “internetwork”, merupakan 

rangkaian komputer yang terhubung menjadi beberapa 

rangkaian jaringan. Sistem komputer dapat terhubung 

secara global dengan menggunakan TCP/IP sebagai 

protocol. Secara umum internet dapat diartikan sebagai 

pertukaran informasi dan komunikasi. Semua informasi 

didapatkan dengan mudah di internet sesuai dengan 

keinginan tanpa ada batasan. 

 

2. HTTP 

Hypertext Transfer Protocol (HTTP)  yaitu salah satu 

protokol yang digunakan untuk melakukan transfer 

dokumen dalam WWW (World Wide Web). Protokol ini 

merupakan protokol yang ringan yang tidak berstatus dan 

generik/umum yang dapat digunakan berbagai macam 

tipe dokumen. 

 

3. Website   

Website merupakan sebuah alamat tertentu di WWW 

(World Wide Web) yang menyediakan informasi tertentu. 

Untuk membuka sebuah situs web, pengguna dapat 

menggunakan browse. 

 

4. Web Page  

Web Page merupakan bagian dari situs web. Apabila web 

Page diumpamakan sebagai sebuah buku, maka halaman 

web merupakan lembaran-lembaran kertas penyusun 

buku tersebut.. 

 

5. Homepage  

Home Page (Halaman Muka) merupakan halaman muka 

dari sebuah situs web. Apabila Homepage diumpamakan 

sebagai sebuah buku, maka halaman web merupakan 

cover depan sebuah buku. Homepage biasanya berupa 

outline dari isi situs web yang bersangkutan 

 

6. Browser   

Browser  merupakan aplikasi yang digunakan untuk 

berselancar didunia internet. Browser dapat memandu 

pengguna internet untuk dapat berpindah antar situs web 

dengan mudah.  

 

7. URL  

URL (Universal Resource Locator) merupakan suatu alamat 

yang menunjukkan sebuah halaman tertentu pada 

internet. 

 

8. HTTP  

HTTP (Hypertext Transfer Protocol) merupakan bagian dari 

sebuah URL yang mengidentifikasikan lokasi web, dan 

digunakan dalam protokol HTML.  

 

9. DNS  

DNS (Domain Name System) merupakan sistem database 

terdistribusi yang tidak banyak dipengaruhi oleh 

bertambanhnya database. DNS menjamin informasi host 

terbaru akan disebarkan ke jaringan bila diperlukan. 

 

10. TCP/IP 

TCP/IP (Transmission Control Protocol/Internet Protocol) 

merupakan metode-metode yang digunakan untuk 

menghubungi server. TCP/IP merupakan bahasa 

standarisasi yang digunakan dalam internet.. 

 

11. IP  

IP (Internet Protocol) merupakan protokol yang digunakan 

dalam internet, secara teknis bermakna suatu bentuk 

pengisian dan pengalamatan data-data dan informasi 

yang akan dikirim melalui internet.  

 

12. Hyperlink   

Hyperlink merupakan sebuah fasilitas yang sangat 

berperan dalam mempopulerkan pengguna internet, 

karena mampu mereferensikan sebuah teks atau gambar 

ke alamat lain di internet. 

 

13. Web Agent 

Web Agent  yaitu orang atau perangkat lunak yang 

berperan dalam Web/Ruang Informasi. Web Agent terdiri 

dari: 

a. Software Agent :  Proxies, Servers, spiders, browsers, 

multimedia players, dll 

b. User Agent : Users.  

 

14. Web Servers  

Web Servers  adalah sebuah perangkat lunak servers yang 

berfungsi menerima permintaan dari HTTP/HTTPS  atau 

dari client yang dikenal dengan web browser. Kemudian 

permintaan tersebut dikirim kembali hasilnya dalam 

bentuk halaman-halaman web yang pada umumnya 

berbentuk HTML. Berikut merupakan beberapa server 

web yang terkenal diantaranya sebagai berikut: 

a. Apache, Web server antar platform 

b. XAMPP 

c. Nginx 

d. PHPTriad 

e. Apache2Triad 

f. Internet Information Service (IIS), hanya dapat berjalan 

di sistem operasi MS Windows. 

 

1.2 Pengenalan HTML 

Hyper Text Markup Language (HTML) adalah kerangka 

yang membentuk dan mengatur bagaimana sebuah halaman 

web akan ditampilkan di browser dengan berbagai ragam 

informasi. Untuk membentuk dan mengatur halaman tersebut 

dapat menggunakan simbol/tanda/tag yang sesuai dengan 

aturan dalam HTML. (Adri, 2019) 

Tag HTML mempunyai bagian pembuka dan penutup. 

Tag pembuka menggunakan simbol lebih kecil (<) dan lebih 

besar (>), begitu pula dengan tag penutup, hanya saja untuk 

tag penutup di tambahkan slash (/). 

Struktur penulisan HTML dapat dilihat pada gambar 1.1: 

 

Gambar 1. 1 Struktur Penulisan 

contoh penggunaan HTMLdapat dilihat pada gambar 1.2. 

 

Gambar 1. 2 Contoh Penggunaan HTML 

1.3 Pengenalan PHP 

PHP singkatan dari Hypertext Prepocessor merupakan 

bahasa pemrograman yang didesain khusus untuk 

pengembangan web. PHP memiliki sifat server-side karena 

PHP dijalankan melalui server.(Saharna & Rukun, 2019) 

Maksud dijalankan melalui server yaitu PHP dijalankan pada 

komputer server dan bukan pada komputer client. PHP 

dijalankan melalui web browser sama seperti HTML. Hampir 

semua situs-situs besar dan populer yang dikembangkan 

menggunakan PHP. Adapun beberapa situs tersebut 

diantaranya wordpress, joomla, facebook, twitter, dan situs besar 

lainnya.(Fauziah, 2014) 

Dalam membangun website terdapat 2 (dua) jenis yaitu 

website dinamis dan interaktif, keduanya dibangun 

menggunakan bahasa pemrograman PHP yang juga 

digunakan sebagai pemrograman HTML. Misalnya dalam 

pembuatan website yang berisi data siswa, dengan 

menggunakan bahasa pemrograman HTML, maka 

dibutuhkan baris kode yang sangat panjang (sesuai dengan 

jumlah data yang ingin diinput), sedangkan dengan 

menggunakan bahasa pemrograman PHP, baris kode yang 

dibutuhkan dapat dipersingkat hingga menjadi beberapa baris 

saja.(Enterprise, 2020) 

Selain itu PHP dapat digunakan dalam penginputan data ke 

sistem database, mengkonversi halaman yang berisi text 

menjadi dokumen PDF, melaksanakan session dalam berbagai 

macam aplikasi, menghasilkan gambar, dan berbagai macam 

kegunaan lainnya. 

Contoh penggunaan php dapat dilihat pada gambar 1.3: 

 

Gambar 1. 3 Contoh penggunaan PHP 

Untuk menggunakan php pada HTML harus dilakukan 

penyimpanan file dengan format “namafile.php”. Jika hanya 

“.html”, maka script yang merupakan fungsi pada php tidak 

dapat berjalan di file tersebut. 

Pada bagian kode-kode tersebut, berfungsi untuk 

menyisipkan fungsi php/menggunakan fungsi php, kita harus 

menggunakan tag (<?php) sebagai pembuka dan tag (?>) 

sebagai penutup. Kemudian pada kode tersebut terdapat kata 

“echo”. “Echo” ini digunakan untuk menampilkan tulisan 

ataupun value dalam sebuah variabel dan biasanya kata echo 

sering disingkat dengan tag php seperti ini (<?=) kalimat atau 

variable (?>). 

Setelah membuat file .php, untuk mellihat hasil tampilan 

pada browser, diperlukan aplikasi lain untuk mempemudah 

dalam melihat hasil tampilan dari kode-kode tersebut seperti 

XAMPP. Setelah itu, pada aplikasi XAMPP perlu menjalankan 

module yang bernama “Apache”. Kemudian hanya ketikan 

https://localhost/namafolder/ pada web browser kalian, 

kemudian pilih nama file yang ingin ditampilkan. 

Contoh tampilan browser dapat dilihat pada gambar 1.4: 

 

Gambar 1. 4 Contoh Tampilan Browser 

 

  

10 

  

11 

BAGIAN II 

PENGENALAN DATABASE 

 

2.1 Pengertian Database 

Database atau biasa disebut basis data merupakan suatu 

data yang dapat dimaksudkan sebagai informasi yang dapat 

diperoleh dan disimpan. Sedangkan basis merupakan 

semacam perkumpulan atau tempat berkumpul. Maka dapat 

disimpulkan bahwa database adalah kumpulan data atau 

informasi yang saling berkaitan dan selanjutnya disimpan 

secara bersamaan pada suatu media (komputer) sehingga 

mampu memenuhi informasi yang optimal sesuai dengan 

kebutuhan pengguna. (Nugroho, 2019) 

Pengolahan database dalam media komputer ditujukan 

untuk mempermudah serta mengikuti perkembangan zaman 

yang menerapkan era komputerisasi. Pengelolaan sistem 

database dikenal dengan istilah DBMS (Database Management 

System). (Budio, Fadlan, & Sari, 2019) 

Pada dasarnya penerapan database tidak hanya terdapat 

dalam lingkup IT, Contohnya pada Perguruan Tinggi terdapat 

database Mahasiswa, Dosen, Mata Kuliah, dan lain lain. 

Dalam lingkungan perusahaan pastinya terdapat data-data 

perusahaan mencakup database Karyawan, Keuangan, dan 

lain – lain. 

12 

2.2 Fungsi Database 

Bagi orang awam suatu database merupakan kumpulan 

data dan informasi yang hanya perlu di backup dalam fungsi 

keamanan. Namun terdapat fungsi-fungsi lain dari 

penggunaan database, fungsi lainnya yaitu sebagai 

berikut:(Budio et al., 2019) 

1. Data dapat dikelompokkan untuk mempermudah proses 

identifikasi data, pengelompokkan dapat dilakukan 

dengan berbagai cara seperti membuat beberapa tabel. 

Sebagai contoh suatu DBMS pada perbankan dapat 

mencari informasi user dengan lebih cepat karena 

pengelompokan sesuai dengan kebutuhan. 

2. DBMS dapat dilakukan pengaturan agar mampu 

mengenali duplikasi data yang terjadi sebelum dilakukan 

penyimpanan, hal ini dilakukan untuk menghindari 

terjadinya data ganda yang akan tersimpan. Karena sifat 

database yang dapat diakses oleh lebih dari satu 

pengguna, maka salah satu cara yang dilakukan adalah 

dengan menerapkan sistem kata kunci atau Primary Key. 

3. Dapat mempermudah penggunaan di semua bagian 

seperti dapat menginput data baru, mengupdate data 

yang sudah ada, serta menghapus data yang sudah tidak 

diperlukan lagi. Didukung dengan tampilan yang 

menarik sesuai dengan aplikasi tertentu. 

4. Menjadi solusi terbaik dari penggunaan kertas sebagai 

media penyimpanan banyak memakan ruang. Dengan 

adanya database maka tidak perlu khawatir data hilang 

begitu saja, karena dapat dilakukan backup data. 

13 

5. Suatu database juga dapat menjadi alternatif lain terkait 

masalah penyimpanan ruang dalam aplikas dikarenakan 

keterbatasan dari media penyimpanan oleh kebanyakan 

aplikasi komputer. 

 

2.3 Pengenalan PhpMyAdmin  

PhpMyAdmin  adalah  sebuah  aplikasi/perangkat  

lunak  bebas  (opensource)  yang ditulis dalam bahasa 

pemrograman PHPyang digunakan untuk menangani 

administrasi database  MySQL  melalui  jaringan  lokal  

maupun  internet.  phpMyAdmin  mendukung berbagai   

operasi   MySQL,   diantaranya   (mengelola   basis   data,   

tabel-tabel,   bidang (fields),  relasi  (relations),  indeks,  

pengguna  (users), perijinan  (permissions),  dan  lain-lain).  

(Standsyah & Restu, 2017) 

Dengan menggunakan phpmyadmin, pengguna dapat 

membuat database, membuat tabel, menambah, menghapus 

dan memperbaharui data dengan tampilan antarmuka dengan 

grafis dan terasa lebih mudah, tanpa perlu mengetikkan 

perintah SQL secara manual. 

PhpMyAdmin merupakan sebuah software gratis 

berbasis scrip dengan bahasa PHP yang bertujuan untuk 

memudahkan dalam mengelola database MySQL. Tanpa 

phpMyAdmin, pengguna perlu menggunakan terminal untuk 

mengelola database. 

Saat ini hampir semua penyedia hosting di internet 

menggunakan phpMyAdmin karena kemudahan dalam 

menggunakan aplikasinya. PhpMyAdmin memiliki berbagai 

14 

fitur untuk administrasi MySQL termasuk manipulasi 

database, tabel, index dan juga dapat mengeksport data dalam 

berbagai format data. PhpMyAdmin juga menyediakan lebih 

dari 50 bahasa, salah satunya termasuk bahasa Indonesia.  

Tampilan awal dari phpMyAdmin dapat dilihat pada 

gambar 2.1: 

 

Gambar 2. 1 Tampilan Awal PhpMyAdmin 

2.4 Pembuatan Database Dengan PhpMyAdmin  

Dalam pembuatan database dengan phpMyAdmin, 

dapat mengikuti langkah-langkah sebagai berikut:(Masykur, 

Makruf, & Atmaja, 2015) 

1. Ketik link pada alamat browser 

http://localhost/phpmyadmin/ untuk masuk kedalam 

halaman phpMyAdmin. 

2. Buat database baru dengan mengetikan nama database 

pada halaman localhost seperti terlihat pada gambar 2.2: 

15 

 

Gambar 2. 2 Tampilan buat database baru 

3. Pilih button Create pada sisi sebelah kanan create new 

database. 

Berikut merupakan tampilan database yang sudah berhasil 

dibuat menggunakan phpMyAdmin. Nama database yang 

sudah terbentuk yaitu db-bunga. Tampilan database dapat 

dilihat pada gambar 2.3. 

 

Gambar 2. 3 Tampilan database 

16 

2.5 Pembuatan Tabel Dengan PhpMyAdmin 

Dalam pembuatan tabel dengan phpMyAdmin, dapat 

mengikuti langkah-langkah sebagai berikut: 

1. 1. Pastikan posisi pada phpMyAdmin sudah di dalam 

database. Tampilan sudah berada dalam database yang 

telah terbentuk dapat dilihat pada gambar 2.4. 

 

Gambar 2. 4 Tampilan sudah berada pada posisi database 

2. Buat tabel baru dengan mengetikan nama tabel dan 

jumlah field yang akan dibentuk pada kolom Create new 

table on database db-bunga seperti pada gambar 2.5. 

 

Gambar 2. 5 Tampilan untuk Membuat Tabel Baru 

17 

3. Pilih button Go pada sisi sebelah kanan Create new table 

on database db-bunga, seperti gambar 2.6. 

 

Gambar 2. 6 Pilih Botton Go pada Pembuatan Tabel 

baru 

Berikut merupakan tampilan tabel yang sudah berhasil 

dibuat menggunakan phpMyAdmin. Nama tabel yang 

sudah terbentuk yaitu transaksi yang terdiri dari 7 

atribut. Tampilan tabel dapat dilihat pada gambar 2.7. 

 

Gambar 2. 7 Tampilan Tabel yang Sudah Berhasil 

Dibuat 

4. Isi atribut (field) yang ada pada tabel tersebut sesuai 

dengan kebutuhan pada masing-masing kolom Field, 

Type, Length/Values, dan index. 

18 

5. Setelah semua terisi scroll layar kebawah, hingga 

menemukan button Go seperti pada gambar 2.8 berikut: 

 

Gambar 2. 8 Tampilan Form untuk Isian Field pada 

Tabel 

6. Pilih button Go untuk membuat isi dari tabel tersebut. 

Berikut merupakan tampilan struktur tabel transaksi 

dengan 7 field yang sudah berhasil dibuat menggunakan 

phpMyAdmin. Tampilan struktur tabel dapat dilihat pada 

gambar 2.9. 

 

Gambar 2. 9 Tampilan Struktur Tabel  

19 

BAGIAN III 

PENGENALAN CODEIGNITER 

 

3.1 Framework Web   

Web Application Framework (WAF) atau yang sering 

disebut dengan Web framework, yaitu suatu kumpulan kode 

berupa pustaka (library)dan alat (tool) yang dipadukan 

sedemikian rupa menjadi kerangka kerja (framework) guna 

memudahkan dan mempercepat proses pengembangan 

aplikasi. (Daqiqil, n.d.) 

Beberapa Framework Web untuk PHP, diantaranya: 

1. Codeigniter 

2. Yii 

3. Slim Framework 

4. Zend Framework 

5. Laravel 

6. Symfony 

7. CakePHP 

8. Phalcon 

9. Kohana 

10. FuelPHP 

Sebagian besar dari Framework Web di atas 

mengimplementasikan pola desain Model-View-Controller 

(MVC), Model-View-Controller (MVC), yang memisahkan 

bagian kode untuk penanganan proses bisnis dengan bagian 

20 

kode untuk keperluan presentasi (tampilan).(Muttaqi, Yusuf, 

& Subroto, 2019)  

 

3.2 Codeigniter 

Codeidniter merupakan Framework Web untuk bahasa 

pemrograman PHP, yang dibuat oleh Rick Ellis pada tahun 

2006, penemu dan pendiri EllisLab 

(www.ellislab.com).(Sabdojati & Sofyan, 2016) EllisLab 

merupakan suatu tim kerja yang berdiri pada tahun 2002 yang 

bergerak di bidang pembuatan software dan tool  untuk para 

pengembang web. Sejak tahun 2014 sampai dengan sekarang, 

EllisLab telah menyerahkan hak kepemilikan codeigniter ke 

British Columbia Institute of Technology (BCIT) saat ini situs 

resmi codeigniter yaitu www.codeigniter.com.  

Codeigniter merupakan sebuah framework untuk web 

yang dibuat dalam format PHP. Kelebihan dari CI adalah 

dapat digunakan untuk membuat sistem aplikasi web yang 

kompleks, dapat mempercepat proses pembuatan web karena 

semua class dan modul ynag dibutuhkan sudah ada dan 

programmer tinggal menggunakan kembali pada aplikasi 

yang dibuat. (Prabowo, 2015) 

Dengan pemanfaatan Framework Codeigniter, 

pembuatan sistem jadi lebih mudah dikarenakan struktur 

MVC (Model, View, Controller) yang terdapat pada 

Codeigniter, sehingga pembuatan dan penggunaan coding 

dengan bahasa pemrograman PHP dapat dilakukan dengan 

lebih mudah.(Saharna & Rukun, 2019) 

21 

3.3 Software 

Software yang bisa digunakan yaitu: 

1. Web server (Apache2Triad, WAMPP server, Xampp 

Server, dll) 

2. Text Editor (notepad, notepad++, sublime text, atom, 

visual studio code, dll)  

3. Codeigniter https://codeigniter.com/   

4. Web Browser (Mozila Firefox, google chrome, IE, Safari, 

UCBrowser, Opera, dll).  

 

3.4 Instalasi Codeigniter 

Langkah-langkah dalam menginstal codeigniter: 

(Muhardian, 2020a) 

1. Download Package codeigniter pada situs 

https://codeigniter.com/   

2. Saat ini versi stabil dari codeigniter yaitu 3.1.6  

3. Setelah di download ektrak file codeigniter pada direktori 

C:\xampp\htdocs. Tampilan folder dapat dilihat pada 

gambar 3,1 

22 

 

Gambar 3. 1 Tampilan Folder File Codeigniter pada 

Direktori C:\xampp\htdocs 

4. Lalu ubah folder Codeigniter, seperti contoh akan diubah 

menjadi ecommerce. Tampilan contoh ubah nama dapat 

dilihat pada gambar 3.2 

 

Gambar 3. 2 Contoh Ubah Nama Folder Codeigniter 

23 

5. Setelah itu, sekarang coba akses folder tersebut melalui 

browser  

6. Sebelum mencoba pada browser maka nyalakan XAMPP 

terlebih dahulu  

7. Lalu pada alamat web browser unyuk mengakses url 

http://localhost/nama_folder_project pada tutorial kali ini 

beri nama dengan ecommerce, sehingga muntul tampilan 

seperti yang terlihat pada gambar 3.3. 

 

Gambar 3. 3 Tampilan Halaman Utama Codeigniter 

8. Jika sudah tampil halaman Welcome Codeigniter, maka 

telah berhasil melakukan instalasi codeigniter.  

 

3.5 Struktur Folder Codeigniter 

Pada folder codeigniter terdapat 3 folder utama yaitu 

Application, System, User Guide. Folder Application berguna 

sebagai tempat untuk mendevelop aplikasi, Folder System 

berisi library atau kumpulan fungsi-fungsi dasar Codeigniter 

24 

(CI), sedangkan User Guide berisi sebagai buku panduan atau 

dokumentasi dari codeigniter. (Muhardian, 2020b) 

Struktur dari folder codeigniter dapat dilihat pada 

gambar 3.4. 

 

Gambar 3. 4 Struktur Folder Codeigniter 

Pada folder application/config dan semua berawal dari 

file routes.php Apabila membuka file tersebut, maka akan 

menemukan default_controller yang telah terisi dengan nama 

“welcome”, yang mana default_controller ini berfungsi ketika 

user tidak melakukan atau memasukkan apapun pada URL 

browser, maka secara otomatis mencari controller dengan 

nama “welcome”, seperti yang terlihat pada gambar 3.5. 

25 

 

Gambar 3. 5 Tampilan File Controller Welcome 

Controller Welcome bisa ditemukan pada folder 

application/controllers. Pada file welcome_controller tersebut 

terdapat fungsi index yang gunanya meload bagian view 

atau memanggil halaman views dengan nama 

welcome_messages seperti gambar 3.6.  

 

Gambar 3. 6 Tampilan FIle untuk Memanggil Halaman 

Views 

Lihat pada bagian views yang terletak pada 

application/views. Pada folder view tersebut terdapat file 

dengan nama welcome_message. Pada bagian ini semua html 

dan css akan diletakkan yang nantinya akan ditampilkan ke 

26 

pengunjung. Tampilan file welcome message dapat dilihat 

pada gambar 3.7. 

 

Gambar 3. 7 Tampilan File welcome_message 

27 

BAGIAN IV 

MODEL, VIEW, CONTROLLER 

 

4.1 Pengertian Model, View, Controller (MVC) 

Model, View, Controller (MVC) merupakan teknik atau 

konsep yang memisahkan komponen utama menjadi tiga 

komponen yaitu model, view dan controller. (Tyowati & 

Irawan, 2017) 

1. Model 

Model yaitu kelas yang merepresentasikan atau 

memodelkan tipe data yang akan digunakan oleh 

aplikasi. Model dapat didefinisakan sebagai bagian 

penanganan yang berhubungan dengan pengolahan atau 

manipulasi database. Seperti mengambil data dari 

database, menginput dan pengolahan database lainnya. 

Semua intruksi atau fungsi yang berhubung dengan 

pengolahan database di letakkan di dalam model. Sebagai 

contoh, jika ingin membuat aplikasi untuk menghitung 

luas dan keliling persegi panjang, maka dapat 

memodelkan objek persegi panjang sebagai kelas 

model.(Setiadi, 2018) 

 

2. View 

View merupakan bagian yang menangani halaman user 

interface atau halaman yang muncul pada user(pada 

browser). Tampilan dari user interface di kumpulkan 

28 

pada view untuk memisahkannya dengan controller dan 

model sehingga memudahkan web designer dalam 

melakukan pengembangan tampilan halaman website. 

 

3. Controller 

Controller merupakan kumpulan intruksi aksi yang 

menghubungkan model dan view, jadi user tidak akan 

berhubungan dengan model secara langsung, intinya data 

yang tersimpan di database (model) di ambil oleh 

controller dan kemudian controller pula yang 

menampilkannya ke view. Controller yang mengolah 

intruksi. 

 

Controller yaitu sebagai penghubung view dan model, 

seperti pada aplikasi yang menampilkan data dengan 

menggunakan metode konsep MVC, Controller memanggil 

intruksi pada model yang mengambil data pada database, 

kemudia controller yang meneruskannya pada view untuk di 

tampilkan. Cara MVC sangat mudah dalam pengembangan 

aplikasi karena web designer atau front-end developer tidak 

perlu lagi berhubungan dengan controller, itu hanya perlu 

berhubungan dengan view untuk mendesign tampilan 

aplikasi, karena back-end developer yang menangani bagian 

controller dan modelnya. Sehingga pembagian tugas menjadi 

mudah dan pengembangan aplikasi dapat dilakukan dengan 

terstruktur dan cepat. (Sidik, 2012) 

Bentuk umum model sebagai berikut: 

 Class Nama_model extends CI_model { 

  //badan kelas } 

29 

Jika ingin memanggil konstruktor kelas CI_model dari 

konstruktor kelas model yang didefinisikan, maka bentuk 

umumnya seperti berikut: 

class Nama_model extends CI_model {  

//konstruktor kelas model  

Function __construct( ) {  

//memanggil konstruktor kelas 

CI_model  

$parent: : __construct( );  

//...  

}  

// ...  

 

4.2 Menentukan Kontroler Standar 

Controller standar (default) adalah controller yang akan 

dipanggil secara otomatis ketika user tidak menyertakan nama 

controller di dalam URL. Controller standar dapat ditentukan 

sendiri sesuai dengan keinginan, yaitu dengan cara 

melakukan konfigurasi pada file routes.php yang terletak 

pada folder application\config\(Muhardian, 2020c), seperti 

yang terlihat pada gambar 4.1.  

 

Gambar 4. 1 Tampilan File Membuat Controller Standar 

Ubah kata welcome dengan nama controller yang 

diinginkan untuk dijadikan controller standar. 

 

30 

4.3 Menghilangkan index.php pada Codeigniter 

Seorang web developer, dalam rangka pengamanan web 

site miliknya akan melakukan berbagai trik. Ada yang 

dibuatkan sistem sandi yang diubah secara berkala, ada yang 

menggunakan trik kamuplase pengaksesan file dan ada juga 

yang menggunakan sistem sandi dengan teknik kriptografi 

yaitu mengenkrip sandi sedemikian rupa agar tidak mudah 

dipecahkan oleh pihak yang tidak bertanggung jawab. Berikut 

adalah salah satu trik untuk mengelabui pihak yang tidak 

bertanggung jawab agar tidak mudah untuk melakukan 

pencurian atau penggunaan data yang akan merugikan. 

Dengan cara menghilangkan index.php pada url codeigniter, 

caranya buka config.php yang terletak pada folder 

application/config/, kemudian cari pengaturan 

$config[„index_page] seperti gambar 4.2. 

 

Gambar 4. 2 Tampilan Pengaturan $config[„index_page] 

Kemudian hapus index.php pada pengaturan sehingga 

akan menjadi seperti terlihat pada gambar 4.3. 

 

Gambar 4. 3 Tampilan Menghilangkan index.php 

Setelah menghapus index, maka selanjutnya adalah 

membuat file .htaccess pada direktori root codeigniter. 

Caranya buat file baru dengan nama .htaccess tanpa diberi 

extensi, karena .htaccess merupakan file yang tidak 

berektensi. Diawali dengan tanda titik(.). 

31 

File ecommerce/.htaccess dapat dilihat pada gambar 4.4. 

 

Gambar 4. 4 Tampilan File ecommerce/.htaccess 

 

4.4 Aturan Merancang  Model, View, Controller 

1. Model  

Secara umum perancangan model dapat dibuat 

menggunakan aturan sebagai berikut:  

a. Model harus memiliki atribut yang dapat mewakili 

element tertentu.  

b. Model seharusnya berisi kode kode yang menangani 

proses bisnis untuk data bersangkutan, misalnya untuk 

melakukan proses validasi data.  

c. Model boleh berisi kode kode yang dugunakan untuk 

memanipulasi data, misalnya untuk menambah baris 

data baru, mengubah baris data, dan menghapus baris 

data pada sebuah tabel yang terdapat dalam database.  

d. Model seharusnya tidak berisi kode kode yang 

berkaitan langsung dengan permintaan yang 

dilakukan oleh user melalu URL (tidak berisi $_GET 

32 

maupun $_POST). Pekerjaan seperti ini seharusnya 

dilakukan oleh controller.  

e. Model seharusnya tidak berisi kode kode yang 

berkaitan dengan presentasi (tampilan) halaman web 

yang akan disajikan ke hadapan user. Pekerjaan 

semacam ini seharusnya dilakukan oleh view.  

 

2. View  

Berikut ini aturan yang dapat digunakan untuk 

merancang view:  

a. View harus berisi kode kode yang bersifat 

presentasional, biasanya berupa kode HTML. View 

juga dapat berisi perintah perintah PHP sederhana 

yang masih berkaitan dengan proses pembuatan 

tampilna, misalnya untuk menampilkan data yang 

dihasilkan oleh model tertentu.  

b. View seharusnya tidak berisi kode PHP yang 

melakukan akses data secara langsung ke database. 

Pekerjaan semacam ini sebaiknya dilakukan oleh 

model. 

c. View seharunsnya menghindari kode PHP yang 

mengakses secara langsung permintaan dari user 

(tidak berisi $_GET maupun $_POST). Tugas ini 

sebaiknya didelegasikan ke controller. 

 

3. Controller  

Berikut ini aturan yang dapat digunakan untuk 

merancang controller:  

33 

a. Controller boleh mengakses $_GET, $_POST, dan 

variabel variabel PHP lainnya yang berkaitan dengan 

permintaan user.  

b. Controller boleh membuat objek (instance) dari kelas 

kelas model dan mengarahkan ke view (jika model 

bersangkutan menghasilkan data yang perlu 

ditampilkan ke user). 

c. Controller seharusnya tidak berisi kode kode yang 

mengakses data secara langsung dari database. Tugas 

seperti ini sebaiknya dilakukan oleh model. Dan 

controller tinggal menggunakannya saja.  

d. Controller seharusnya tidak berisi kode kode HTML 

yang diperlukan untuk tujuan presentasi. Tugas ini 

sebaiknya dilakukan oleh view.  

 

4.5 Parsing Data dari Controller ke View 

Untuk mengirimkan nilai dari controller ke view, yaitu 

dapat mengirimkannya dengan menggunakan bantuan array. 

Jadi data yang akan diparsing di masukkan ke array. 

Perhatikan contoh cara pengiriman nilai ke view codeigniter 

berikut ini. (Sidik, 2012) 

Buat sebuah view baru beri nama view-produk.php 

kemudian simpan dalam forlder 

Application/views/mod_produk dan ketik script pada 

gambar 4.5 berikut:  

34 

 

 

 

Gambar 4. 5 Skrip view-produk.php 

Script di atas akan membentuk sebuah tampilan form 

input data yang akan di submit kemudian di proses ke sebuah 

controller. Untuk itu perlu membuat controller terlebih 

dahulu beri nama Produk.php kemudian simpan dalam folder 

Application/controllers/ lalu ketiklah script gambar 4.6 

berikut ini: 

35 

 

 

36 

 

 

Gambar 4. 6 Skrip Produk.php  

37 

BAGIAN V 

PENGENALAN BOOTSTRAP 

 

5.1 Pengenalan Bootstrap 

Bootstrap merupakan salah satu Framework CSS yang 

paling populer. Digunakan oleh Web Designer global yang 

mampu menjawab kebutuhan konsep responsive web design 

(RWD) karena integrasi yang baik antara HTML 5, CSS 3, dan 

jQuery (yang merupakan JavaScript Library) di dalam 

framework Bootstrap. Framework ini terus berkembang 

hingga saat ini telah berada pada versi 4 (Adri, 2019)ad. 

Bootstrap meneyediakan class dan komponen yang siap 

dipakai, sehingga kita tidak perlu menulis kode CSS dari nol. 

Bootstrap awalnya dikembangkan oleh developer Twitter, lalu 

dibuat open source agar semua orang dapat berkontribusi di 

dalamnya.(Muhardian, 2018) Selain itu, bootstrap juga 

responsive terhadap banyak platform, yang artinya tampilan 

halaman website yang menggunakan Bootstrap ini akan 

tampak tetap rapi, baik itu versi mobile ataupun desktop. 

Saat ini penggunaan Bootstrap sudah meluas di 

kalangan disainer front-end web, perkembangannya masih 

terus berlangsung hingga sekarang. Penggunaannya tidak 

begitu rumit, mudah karena dapat tinggal memanggil CSS 

dan JS yang tersedia lalu menuliskan class-class nya pada 

script program. Bootstrap memiliki 12-column responsive 

grid, macam-macam components, typography, JavaScript 

38 

plugins, form controls dan juga sebuah Web Based 

Customizer untuk membuat Bootstrap sendiri.  

Struktur utama file Bootstrap seperti gambar 5.1: 

 

Gambar 5. 1 Struktur Utama File Bootstrap 

 

5.2 Mulai Menggunakan Bootstrap 

1. Heading 

Untuk heading dalam bootstrap yaitu sama dengan 

HTML biasa, yaitu dengan menggunakan script 

<h1>...<h6>(Widyantoro, 2012) 

39 

 

Gambar 5. 2 Heading dalam Bootstrap 

2. Body Copy 

Ukuran standar dalam text bootstrap untuk bodytext 

adalah font-size 14px, line-hight 20px. Selama masih di dalam 

tag paragraph <p>...<p/> 

Contoh: 

<html> 

<head> 

<title>Latihan Bootstrap</title> 

<meta name="viewport" content="width=device-width, 

initial-scale=1.0"> 

<!-- Bootstrap --> 

<link href="css/bootstrap.min.css" rel="stylesheet" 

media="screen"> 

</head> 

<body> 

<p> Haloo...mari latihan bootstrap </p> 

<script src="http://code.jquery.com/jquery.js"> </script> 

<script src="js/bootstrap.min.js"></script> 

40 

</body> 

</html> 

 

Hasilnya akan seperti gambar 5.3: 

 

Gambar 5. 3 Tampilan hasil Body Copy 

3. Lead Body Copy 

Cara memanggil class css dalam bootstrap, dan sebagai 

contoh awal yaitu menggunakan class lead 

<html> 

<head> 

<title>Latihan Bootstrap</title> 

<meta name="viewport" content="width=device-width, 

initial-scale=1.0"> 

<!-- Bootstrap --> 

<link href="css/bootstrap.min.css" rel="stylesheet" 

media="screen"> 

</head> 

<body> 

<p class=”lead”>Hai, kali ini belajar menggunakan class lead 

</p> 

<script src="http://code.jquery.com/jquery.js"> </script> 

<script src="js/bootstrap.min.js"></script> 

</body> 

</html> 

Hasilnya seperti gambar 5.4.: 

41 

 

Gambar 5. 4 Tampilan Hasil Lead Body Copy 

Kesimpulannya, class lead merubah teks menjadi lebih 

tebal dan besar, fungsinya beda dengan <b>…</b> atau 

<strong>…</strong>. 

 

4. Class Paragraf 

Untuk mengatur paragraph, yaitu dengan memanggil 

class seperti kode yang ditebalkan dibawah ini: 

<html> 

<head> 

<title>Latihan Bootstrap</title> 

<meta name="viewport" content="width=device-width, 

initial-scale=1.0"> 

<!-- Bootstrap --> 

<link href="css/bootstrap.min.css" rel="stylesheet" 

media="screen"> 

</head> 

<body> 

<p class="text-left">paragraf kiri</p> 

<p class="text-center">paragraf tengah</p> 15 

<p class="text-right">paragraf kanan</p> 

<script src="http://code.jquery.com/jquery.js"> </script> 

<script src="js/bootstrap.min.js"></script> 

</body> 

</html> 

5. Text Pertanda 

42 

Didalam bootstrap juga dapat menambahkan warna teks 

sesuai dengan maksud dan isi pada teksnya, Contoh sebagai 

berikut: 

<html> 

<head> 

<title>Latihan Bootstrap</title> 

<meta name="viewport" content="width=device-width, 

initial-scale=1.0"> 

<!-- Bootstrap --> 

<link href="css/bootstrap.min.css" rel="stylesheet" 

media="screen"> 

</head> 

<body> 

<p class="muted">Teks ini berwarna abu-abu muted</p> 

<p class="text-warning">Peringatan hanya untuk 5 tahun 

keatas.</p> 

<p class="text-error">Login gagal! Username & password 

salah</p> 

<p class="text-info">Silahkan download disini aplikasi 

gratis</p> 

<p class="text-success">Login berhasil, silahkan mengisi 

kolom berikut</p> 

<script src="http://code.jquery.com/jquery.js"> </script> 

<script src="js/bootstrap.min.js"></script> 

</body> 

</html> 

 

Hasilnya akan tampak seperti gambar 5.5: 

43 

 

Gambar 5. 5 Tampilan Hasil Text Pertanda 

6. Blockquotes 

Menggunakan Blockquotes yaitu menggunakan tag 

<blockquote>...</blockquote>, Contoh sebagai berikut: 

<html> 

<head> 

<title>Latihan Bootstrap</title> 

<meta name="viewport" content="width=device-width, 

initial-scale=1.0"> 

<!-- Bootstrap --> 

<link href="css/bootstrap.min.css" rel="stylesheet" 

media="screen"> 

</head> 

<body> 

<blockquote>Raihlah cita-citamu setinggi 

langit</blockquote> 

<script src="http://code.jquery.com/jquery.js"> </script> 

<script src="js/bootstrap.min.js"></script> 

</body> 

</html> 

 

 

Hasilnya akan tampak seperti gambar 5.6: 

44 

 

Gambar 5. 6 Tampilan Skrip Blockquotes 

Untuk mengubah blockquote jadi rata Kanan yaitu 

dapat menggunakan class pull-right.  

<blockquote class=”pull-right”> Raihlah cita-citamu setinggi 

langit </blockquote> 

 

 

Gambar 5. 7 Tampilan Skrip Blockquotes Rata kanan 

7. Memasukkan Kode Dalam HTML (Inline) 

<html> 

<head> 

<title>Latihan Bootstrap</title> 

<meta name="viewport" content="width=device-width, 

initial-scale=1.0"> 

<!-- Bootstrap --> 

<link href="css/bootstrap.min.css" rel="stylesheet" 

media="screen"> 

</head> 

<body> 

Contoh seperti  ini, <code>&lt;section&gt; </code> harusnya 

menjadi inline. 

<script src="http://code.jquery.com/jquery.js"> </script> 

<script src="js/bootstrap.min.js"></script> 

</body> 

</html> 

45 

Hasilnya seperti gambar 5.8.: 

 

Gambar 5. 8 Tampilan Hasil Memasukkan Kode Dalam 

HTML (Inline) 

8. Membuat Tabel 

Cara membuat tabel dalam pemanggilan classnya cukup 

mudah, yaitu sebagai berikut: 

<html> 

<head> 

<title>Latihan Bootstrap</title> 

<meta name="viewport" content="width=device-width, 

initial-scale=1.0"> 

<!-- Bootstrap --> 

<link href="css/bootstrap.min.css" rel="stylesheet" 

media="screen"> 

</head> 

<body> 

<table class="table"> 

<tr class="success"> 

<td>1</td> 

<td>Yuyun Yuningsih</td> 

<td>14/05/2020</td> 

<td>Diterima</td> 

</tr> 

<tr class="error"> 

<td>2</td> 

<td>Lia Mazia</td> 

46 

<td>14/05/2020</td> 

<td>Ditolak</td> 

</tr> 

<tr class="warning"> 

<td>3</td> 

<td>Wulan Dari</td> 

<td>14/05/2020</td> 

<td>Diterima bersyarat</td> 

</tr> 

<tr class="info"> 

<td>4</td> 

<td>Endang Pujiastuti</td> 

<td>14/05/2020</td> 

<td>Hubungi Administrator Terlebih Dahulu</td> 

</tr> 

</table> 

<script src="http://code.jquery.com/jquery.js"> </script> 

<script src="js/bootstrap.min.js"></script> 

</body> 

</html> 

 

 

 

 

 

Hasilnya seperti gambar 5.9.: 

47 

 

Gambar 5. 9 Tampilan Hasil Membuat Tabel 

9. Membuat Form 

<html> 

<head> 

<title>Latihan Bootstrap</title> 

<meta name="viewport" content="width=device-width, 

initial-scale=1.0"> 

<!-- Bootstrap --> 

<link href="css/bootstrap.min.css" rel="stylesheet" 

media="screen"> 

</head> 

<body> 

<form> 

<fieldset> 

<legend>Judul Form</legend> 

<label>Label</label> 

<input type="text" placeholder="Tulis sesuatu"> 

<span class="help-block">contoh text penjelas. </span> 

<label class="checkbox"> 

<input type="checkbox"> Teks Penjelasan Checkbox 

</label> 

48 

<button type="submit" class="btn">Submit 

</button></fieldset> 

</form> 

<script src="http://code.jquery.com/jquery.js"> </script> 

<script src="js/bootstrap.min.js"></script> 

</body></html> 

Hasilnya seperti gambar 5.10: 

 

Gambar 5. 10 Tampilan Form 

 

10. Form Pencarian 

<html> 

<head> 

<title>Latihan Bootstrap</title> 

<meta name="viewport" content="width=device-width, 

initialscale=1.0"> 

<!-- Bootstrap --> 

<link href="css/bootstrap.min.css" rel="stylesheet" 

media="screen"> 

49 

</head> 

<body> 

<form class="form-search"> 

<input type="text" class="input-medium search-query"> 

<button type="submit" class="btn">Cari</button> 

</form> 

<script src="http://code.jquery.com/jquery.js"> </script> 

<script src="js/bootstrap.min.js"></script> 

</body> 

</html> 

Hasilnya seperti gambar 5.11: 

 

Gambar 5. 11 Tampilan Form Pencarian 

11. Form Login 

<html> 

<head> 

<title>Latihan Bootstrap</title> 

<meta name="viewport" content="width=device-width, 

initial-scale=1.0"> 

<!-- Bootstrap --> 

<link href="css/bootstrap.min.css" rel="stylesheet" 

media="screen"> 

</head> 

<body> 

<form class="form-horizontal"> 

<div class="control-group"> 

<label class="control-label" for="inputEmail">Email </label> 

50 

<div class="controls"> 

<input type="text" id="inputEmail" placeholder= "Email"> 

</div> 

</div> 

<div class="control-group"> 

<label class="control-label" for="inputPassword"> 

Password</label> 

<div class="controls"> 

<input type="password" id="inputPassword" 

placeholder="Password"> 

</div> 

</div> 

<div class="control-group"> 

<div class="controls"> 

<label class="checkbox"> 

<input type="checkbox"> Remember me 

</label> 

<button type="submit" class="btn">Sign in</button> 

</div> 

</div> 

</form> 

<script src="http://code.jquery.com/jquery.js"> </script> 

<script src="js/bootstrap.min.js"></script> 

</body> 

</html> 

Hasilnya seperti gambar 5.12: 

51 

 

Gambar 5. 12 Tampilan Form Login 

12. Extending Form Control 

<div class="input-prepend"> 

<span class="add-on">@</span> 

<input class="span2" id="prependedInput" type="text" 

placeholder="Username"> 

</div> 

<div class="input-append"> 

<input class="span2" id="appendedInput" type="text"> 

<span class="add-on">.00</span> 

</div> 

Hasilnya seperti gambar 5.13: 

 

Gambar 5. 13 Tampilan Extending Form Control 

13. Button Disamping Textfield 

52 

<div class="input-append"> 

<input class="span2" id="appendedInputButton" type="text"> 

<button class="btn" type="button">Go!</button> 

</div> 

Hasilnya seperti gambar 5.14: 

 

Gambar 5. 14 Tampilan Button Disamping Textfield 

  

53 

BAGIAN VI 

RANCANG BANGUN WEB 

ECOMMERCE 

 

6.1 Setting Base URL 

Pengaturan base url adalah pengaturan URL dalam 

sebuah project aplikasi yang akan dibuat dengan 

menggunakan codeigniter 4. Pengaturan base url di 

codeigniter biasanya terdapat di dalam file yang bernama 

config.php di dalam folder project codeigniter yang sudah 

ada.  

ecommerce\application\config\config.php 

 

dalam tahapan ini kita akan membuka beberapa library 

dan helper pada codeigniter yang kita butuhkan dalam 

pembuatan aplikasi e-commerce ini. Untuk menjalankan atau 

membuka library dan helper secara otomatis pada codeiginter, 

dapat diatur dalam file yang bernama autoload.php didalam 

folder application/config/autoload.php. 

 

Library yang akan kita buka secara otomatis yaitu 

database, session dan form_validation. Lalu cari sintaks: 

$autoload['libraries']=array(); 

 

54 

Kemudian pada sintak yang sudah ada tambahkan 

database, session dan form_validation. Sehingga menjadi 

seperti: 

$autoload['libraries']= 

array('session','database','mylibrary','pagination','table','form_

validation','template','user_agent','email','rss'); 

Dan helper yang akan kita buka secara otomatis adalah 

url berikut: 

$autoload['helper']= 

array('url','form','phpmu','download','html','engine','captcha','c

ookie','string'); 

 

Proses autoload library dan helper telah selesai. 

Selanjutnya kita buat database untuk aplikasi e-commerce dan 

melakukan konfigurasi database pada codeigniter. 

 

6.2 Membuat dan Merancang database Aplikasi 

Ecommerce 

Buat sebuah database baru dengan nama “ecommerce” 

kemudian buatlah tabel-tabel yang dibutuhkan. 

1. Nama tabel : tb_agenda 

Tabel 6. 1 Agenda 

No Nama 

Field 

Type 

Data  

size Keterangan 

1.  id_agenda int 5 - Primary key 

- Auto_Increment 

2.  tema varchar 100  

3.  tema_seo varchar 100  

55 

No Nama 

Field 

Type 

Data  

size Keterangan 

4.  isi_agenda text   

5.  tempat varchar 100  

6.  pengirim varchar 100  

7.  gambar varchar 100  

8.  tgl_mulai date   

9.  tgl_selesai date   

10.  tgl_posting date   

11.  jam time   

12.  dibaca int 5  

13.  username varchar 50  

 

2. Nama Tabel : tb_background 

Tabel 6. 2 Background 

No Nama Field Type 

Data  

size Keterangan 

1.  id_background int 5 - Primary key 

- Auto_Increment 

2.  gambar varchar 255  

 

3. Nama Tabel : tb_banner 

Tabel 6. 3 Tabel Banner 

No Nama 

Field 

Type Data  size Keterangan 

1.  id_banner int 5 - Primary key 

- Auto_Increment 

2.  judul varchar 100  

3.  url varchar 100  

4.  gambar varchar 100  

56 

5.  tgl_posting date   

 

4. Nama Tabel : tb_berita 

Tabel 6. 4 Berita 

No Nama 

Field 

Type 

Data  

size Keterangan 

1.  id_berita int 5 - Primary key 

- Auto_Increment 

2.  id_kategor

int 5 Foreign Key 

3.  username varchar 50  

4.  judul varchar 100  

5.  sub_judul varchar 255  

6.  youtube varchar 100  

7.  judul_seo varchar 100  

8.  headline Enum 

(‘Y’,’N’) 

  

9.  aktif Enum 

(‘Y’,’N’) 

  

10.  utama Enum 

(‘Y’,’N’) 

  

11.  isiberita longtext   

12.  keteranga

n_gambar 

text   

13.  hari varchar 20  

14.  tanggal date   

15.  jam time   

16.  gambar varchar 100  

17.  dibaca int 5  

18.  tag varchar 100  

19.  status Enum   

57 

No Nama 

Field 

Type 

Data  

size Keterangan 

(‘Y’,’N’) 

 

5. Nama Tabel: tb_download 

Tabel 6. 5 Download 

No Nama 

Field 

Type 

Data  

size Keterangan 

1.  id_downlo

ad 

int 5 - Primary key 

- Auto_Increment 

2.  judul varchar 100  

3.  nama_file varchar 50  

4.  tgl_postin

date   

5.  hits int 3  

 

6. Nama Tabel : tb_halamanstatis 

Tabel 6. 6 Halaman Statis 

No Nama Field Type 

Data  

size Keterangan 

1.  id_halaman int 5 - Primary key 

- Auto_Increment 

2.  judul varchar 100  

3.  judul_seo varchar 100  

4.  isi_halaman text   

5.  tgl_posting date   

6.  gambar varchar 100  

7.  username varchar 50  

8.  dibaca int 5  

9.  jam time   

58 

No Nama Field Type 

Data  

size Keterangan 

10.  hari varchar 20  

 

7. Nama Tabel: tb_header 

Tabel 6. 7 Header 

No Nama Field Type 

Data  

size Keterangan 

1.  id_header int 5 - Primary key 

- Auto_Increment 

2.  judul varchar 100  

3.  url varchar 100  

4.  gambar varchar 100  

5.  tgl_posting date   

 

8. Nama Tabel : tb_hubungi 

Tabel 6. 8 Hubungi 

No Nama Field Type 

Data  

size Keterangan 

1.  id_hubungi int 5 - Primary key 

- Auto_Increment 

2.  nama varchar 50  

3.  email varchar 100  

4.  subjek varchar 100  

5.  pesan text   

6.  tangal date   

7.  jam time   

8.  dibaca enum 

(‘Y’,’N’) 

  

9.  lampiran varchar 255  

59 

 

9.  Nama Tabel : tb_identitas 

Tabel 6. 9 Identitas 

No Nama Field Type 

Data  

size Keterangan 

1.  id_identitas int 5 - Primary key 

- Auto_Increment 

2.  nama_website varchar 100  

3.  email varchar 100  

4.  url varchar 100  

5.  facebook text   

6.  rekening varchar 100  

7.  no_telp varchar 20  

8.  meta_deksrips

varchar 250  

9.  meta_keyword varchar 250  

10.  maps text   

 

10.  Nama Tabel : tb_iklanatas 

Tabel 6. 10 Iklan Atas 

No Nama Field Type 

Data  

size Keterangan 

1.  id_iklanatas int 5 - Primary key 

- Auto_Increment 

2.  judul varchar 100  

3.  username varchar 50  

4.  url varchar 100  

5.  gambar varchar 100  

6.  tgl_posting date   

 

60 

 

11.  Nama Tabel : tb_iklantengah 

Tabel 6. 11 Iklan Tengah 

No Nama Field Type 

Data  

size Keterangan 

1.  id_iklantengah int 5 - Primary key 

- Auto_Increme

nt 

2.  judul varchar 100  

3.  username varchar 50  

4.  url varchar 100  

5.  gambar varchar 100  

6.  tgl_posting date   

 

12.  Nama Tabel : tb_katajelek 

Tabel 6. 12 Kata Jelek 

No Nama Field Type 

Data  

size Keterangan 

1.  id_jelek int 11 - Primary key 

- Auto_Increment 

2.  kata varchar 60  

3.  username varchar 50  

4.  ganti varchar 60  

 

13.  Nama Tabel : tb_kategori 

Tabel 6. 13 Kategori 

No Nama Field Type 

Data  

size Keterangan 

1.  id_kategori int 5 - Primary key 

61 

No Nama Field Type 

Data  

size Keterangan 

- Auto_Increment 

2.  nama_katego

ri 

varchar 50  

3.  username varchar 50  

4.  kategori_seo varchar 100  

5.  aktif enum 

(‘Y’,’N’) 

  

6.  sidebar int 10  

 

14. Nama Tabel : komentar 

Tabel 6. 14 Komentar 

No Nama Field Type 

Data  

size Keterangan 

1.  id_komentar int 5 - Primary key 

- Auto_Increment 

2.  id_berita int 5 Foreign Key 

3.  nama_koment

ar 

varch

ar 

100  

4.  url varch

ar 

100  

5.  isi_komentar text   

6.  tgl date   

7.  jam_komentar time   

8.  aktif enum 

(‘Y’,’

N’) 

  

9.  email varch

ar 

100  

 

62 

15. Nama Tabel : logo 

Tabel 6. 15 Logo 

No Nama Field Type 

Data  

size Keterangan 

1.  id_logo int 5 - Primary key 

- Auto_Increment 

2.  gambar varchar 100  

 

16. Nama Tabel : menu 

Tabel 6. 16 Menu 

No Nama Field Type 

Data  

size Keterangan 

1.  id_menu int 5 - Primary key 

- Auto_Increment 

2.  id_parent int 5  

3.  nama_menu varchar 100  

4.  link varchar 100  

5.  aktif enum 

(‘Y’,’N’) 

  

6.  position enum 

(‘top’,’b

ottom’) 

  

7.  urutan int 3  

 

17.  Nama Tabel : modul 

Tabel 6. 17 Modul 

No Nama Field Type 

Data  

size Keterangan 

1.  id_modul int 5 - Primary key 

63 

No Nama Field Type 

Data  

size Keterangan 

- Auto_Increment 

2.  nama_modul varchar 50  

3.  username varchar 50  

4.  link varchar 100  

5.  static_content text   

6.  gambar varchar 100  

7.  publish enum 

(‘Y’,’N’) 

  

8.  status enum 

(‘user’,’a

dmin’) 

  

9.  aktif enum 

(‘Y’,’N’) 

  

10.  urutan int 5  

11.  link_seo varchar 50  

 

18.  Nama Tabel : mod_alamat 

Tabel 6. 18 Modul Alamat 

No Nama Field Type 

Data  

size Keterangan 

1.  id_alamat int 5 - Primary key 

- Auto_Increment 

2.  alamat text   

 

 

 

 

 

64 

19.  Nama Tabel : pasangiklan 

Tabel 6. 19 Pasang Iklan 

No Nama Field Type 

Data  

size Keterangan 

1.  id_pasangikl

an 

int 5 - Primary key 

- Auto_Increment 

2.  judul varchar 100  

3.  username varchar 50  

4.  url varchar 100  

5.  gambar varchar 100  

6.  tgl_posting date   

 

20. Nama Tabel : rb_kategori_produk 

Tabel 6. 20 Kategori Produk 

No Nama Field Type 

Data  

size Keterangan 

1.  id_kategori_

produk 

int 11 - Primary key 

- Auto_Increment 

2.  nama_katego

ri 

varchar 255  

3.  kategori_seo varchar 255  

 

21.  Nama Tabel : rb_kategori_produk_sub 

Tabel 6. 21 Kategori Produk Sub 

No Nama Field Type 

Data  

size Keterangan 

1.  id_kategori_

produk_sub 

int 11 - Primary key 

- Auto_Increment 

2.  id_kategori int 11 Foreign Key 

65 

No Nama Field Type 

Data  

size Keterangan 

3.  nama_katego

ri_sub 

varchar 255  

4.  kategori_seo_

sub 

varchar 255  

 

22. Nama Tabel : rb_keterangan 

Tabel 6. 22 Keterangan 

No Nama Field Type 

Data  

size Keterangan 

1.  id_keterangan int 5 - Primary key 

- Auto_Increment 

2.  id_reseller int 11  

3.  keterangan text   

4.  tanggal_postin

date   

 

23.  Nama Tabel : rb_konfirmasi_pembayaran 

Tabel 6. 23 Konfirmasi Pembayaran 

No Nama Field Type 

Data  

size Keterangan 

1.  id_konfirmas

i_pembayara

int 11 - Primary key 

- Auto_Increment 

2.  id_penjual int 11  

3.  total_transfer varchar 20  

4.  id_rekening int 11  

5.  nama_pengir

im 

varchar 255  

66 

No Nama Field Type 

Data  

size Keterangan 

6.  tanggal_trans

fer 

date   

7.  bukti_transfe

varchar 255  

8.  waktu_konfir

masi 

datetime   

 

24. Nama Tabel : rb_konsumen 

Tabel 6. 24 Konsumen 

No Nama Field Type Data  size Keterangan 

1.  id_konsumen int 11 - Primary key 

- Auto_Increment 

2.  username varchar 50  

3.  password text   

4.  nama_lengka

varchar 255  

5.  email varchar 60  

6.  jeni_kelamin enum(‘La

ki-

laki’,’Pere

mpuan’) 

  

7.  tanggal_lahir date   

8.  tempat_lahir varchar 100  

9.  alamat_lengk

ap 

text   

10.  kecamatan varchar 255  

11.  kota_id int 11  

12.  no_telp varchar 15  

13.  foto varchar 255  

67 

No Nama Field Type Data  size Keterangan 

14.  tanggal_dafta

date   

 

25.  Nama Tabel : rb_kota 

Tabel 6. 25 Kota 

No Nama Field Type Data  size Keterangan 

1.  kota_id int 11 - Primary key 

- Auto_Increment 

2.  provinsi_id int 11  

3.  nama_kota varchar 11  

 

26. Nama Tabel : rb_pembelian 

Tabel 6. 26 Pembelian 

No Nama Field Type 

Data  

size Keterangan 

1.  id_pembelian int 11 - Primary key 

- Auto_Increment 

2.  kode_pembeli

an 

varchar 50  

3.  id_supplier int 11  

4.  waktu_beli datetime   

 

 

 

 

 

27.  Nama Tabel : rb_pembelian_detail 

Tabel 6. 27 Pembelian Detail 

68 

No Nama Field Type Data  size Keterangan 

1.  id_pembelian

_detail 

int 11 - Primary key 

- Auto_Increment 

2.  id_pembelian int 11  

3.  id_produk int 11  

4.  harga_pesan int 11  

5.  jumlah_pesa

int 11  

6.  satuan varchar 50  

 

28.  Nama Tabel : rb_penjualan 

Tabel 6. 28 Penjualan 

No Nama Field Type 

Data  

size Keterangan 

1.  id_penjualan int 11 - Primary key 

- Auto_Increment 

2.  kode_transaksi varchar 50  

3.  id_pmbeli int 11  

4.  id_penjual int 11  

5.  status_pembeli Enum 

(‘reseller’

,’konsum

en’) 

  

6.  status_penjual Enum 

(‘admin’,

’reseller’) 

  

7.  kurir varchar 255  

8.  service varchar 255  

9.  ongkir int 11  

10.  waktu_transak

ksi 

datetime   

69 

No Nama Field Type 

Data  

size Keterangan 

11.  proses enum 

(‘0’,’1’,’2’

  

 

29.  Nama Tabel : rb_penjualan_detail 

Tabel 6. 29 Penjualan Detail 

No Nama Field Type 

Data  

size Keterangan 

1.  id_penjualan_

detail 

int 11 - Primary key 

- Auto_Increment 

2.  id_penjual int 11  

3.  id_produk int 11  

4.  jumlah int 11  

5.  diskon int 11  

6.  harga_jual int 11  

7.  satuan varchar 50  

 

30. Nama Tabel : rb_penjualan_temp 

Tabel 6. 30 Penjualan Temporary 

No Nama Field Type Data  size Keterangan 

1.  id_penjualan

_detail 

int 11 - Primary key 

- Auto_Increment 

2.  session varchar 50  

3.  id_produk int 11  

4.  jumlah int 11  

5.  diskon int 11  

6.  harga_jual int 11  

7.  satuan varchar 50  

70 

No Nama Field Type Data  size Keterangan 

8.  waktu_order datetime   

 

31. Nama Tabel : rb_produk_diskon 

Tabel 6. 31 Produk Diskon 

N

Nama Field Type Data  size Keterangan 

1.  id_produk_di

skon 

int 11 - Primary key 

- Auto_Increment 

2.  id_produk int 11  

3.  id_reseller int 11  

4.  diskon int 11  

 

32. Nama Tabel : rb_produk 

Tabel 6. 32 Produk 

No Nama Field Type 

Data  

size Keterangan 

1.  id_produk int 11 - Primary key 

- Auto_Increment 

2.  id_produk_peru

sahaan 

int 11  

3.  id_kategori_pro

duk 

int 11  

4.  id_kategori_pro

duk_seo 

int 11  

5.  id_reseller int 11  

6.  nama_produk varchar 255  

7.  produk_seo varchar 255  

8.  satuan varchar 50  

9.  harga_beli int 11  

71 

No Nama Field Type 

Data  

size Keterangan 

10.  harga_reseller int 11  

11.  harga_konsume

int 11  

12.  berat varchar 50  

13.  gambar varchar 255  

14.  keterangan text   

15.  username varchar 50  

16.  waktu_input datetim

  

 

33.  Nama Tabel : rb_provinsi 

Tabel 6. 33 Provinsi 

No Nama Field Type 

Data  

size Keterangan 

1.  provinsi_id int 11 - Primary key 

- Auto_Increment 

2.  nama_provinsi varchar 50  

 

 

 

 

 

34. Nama Tabel : rb_rekening 

Tabel 6. 34 Rekening 

No Nama Field Type 

Data  

size Keterangan 

1.  id_rekening int 5 - Primary key 

- Auto_Increment 

72 

No Nama Field Type 

Data  

size Keterangan 

2.  nama_bank varchar 50  

3.  no_rekening varchar 50  

4.  pemilik_rekenin

varchar 150  

 

35. Nama Tabel : rb_reseller 

Tabel 6. 35 Reseller 

No Nama Field Type 

Data  

size Keterangan 

1.  id_reseller int 11 - Primary key 

- Auto_Increment 

2.  username varchar 50  

3.  password varchar 255  

4.  nama_reseller varchar 255  

5.  jenis_kelamin varchar 50  

6.  kota_id int 10  

7.  alamat_lengka

text   

8.  no_telpon varchar 15  

9.  email varchar 100  

10.  kode_pos int 7  

11.  keterangan text   

12.  foto varchar 255  

13.  referral varchar 50  

14.  tanggal_daftar datetime   

 

 

73 

6.3 Membuat Koneksi Database Codeigniter 

dengan MySQL 

Untuk menghubungkan codeigniter dengan database 

buka file config database pada codeigniter yang terletak di 

application/config/database.php, kemudian cari baris sintak 

seperti berikut: 

<?php 

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

allowed'); 

$active_group = 'default'; 

$query_builder = TRUE; 

$db['default'] = array('dsn' =>'','hostname'=> 'localhost', 

'username' => 'root', 'password' => '', 'database' => 

'ecommerce', => 'mysqli', 'dbprefix' => '', 'pconnect' => FALSE, 

'db_debug' => (ENVIRONMENT !== 'production'), 'cache_on' 

=> FALSE, 'cachedir' => '', 'char_set' => 'utf8', 'dbcollat' => 

'utf8_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 

'compress' => FALSE, 'stricton' => FALSE, 'failover' => array(), 

'save_queries' => TRUE 

); ?> 

 

6.4 Membuat Model untuk CRUD 

Tahapan ini kita akan membuat fungsi-fungsi yang bisa 

digunakan berulang-ulang, dan tidak perlu repot membuat 

banyak fungsi pada sebuah model. contohnya file untuk insert 

data ke dalam sebuah database, hanya cukup membuat satu 

fungsi saja untuk perintah insert database. Begitu juga dengan 

74 

fungsi edit, hapus dan update data pada database dapat kita 

buat satu fungsi yang dapat dipergunakan berulang kali. 

a. model_app.php 

<?php  

class Model_app extends CI_model{ 

public function view($table){ 

return $this->db->get($table); 

public function insert($table,$data){ 

return $this->db->insert($table, $data); 

 

public function edit($table, $data){ 

return $this->db->get_where($table, $data); 

public function update($table, $data, $where){ 

return $this->db->update($table, $data, $where);  

 

public function delete($table, $where){ 

return $this->db->delete($table, $where); 

public function view_where($table,$data){ 

$this->db->where($data); 

return $this->db->get($table); 

 

public function view_ordering_limit ($table,$order, 

$ordering,$baris,$dari){ 

75 

$this->db->select('*'); 

$this->db->order_by($order,$ordering); 

$this->db->limit($dari, $baris); 

return $this->db->get($table); 

 

public function view_where_ordering_limit ($table, 

$data,$order,$ordering,$baris,$dari){ 

$this->db->select('*'); 

$this->db->where($data); 

$this->db->order_by($order,$ordering); 

$this->db->limit($dari, $baris); 

return $this->db->get($table); 

 

public function view_ordering ($table,$order, $ordering){ 

$this->db->select('*'); 

$this->db->from($table); 

$this->db->order_by($order,$ordering); 

return $this->db->get()->result_array(); 

public function view_where_ordering ($table,$data, 

$order,$ordering){ 

$this->db->where($data); 

$this->db->order_by($order,$ordering); 

$query = $this->db->get($table); 

return $query->result_array(); 

76 

 

public function view_join_one ($table1,$table2, 

$field,$order,$ordering){ 

$this->db->select('*'); 

$this->db->from($table1); 

$this->db->join($table2, $table1.'.'.$field.'='.$table2.' .'.$field); 

$this->db->order_by($order,$ordering); 

return $this->db->get()->result_array(); 

 

public function view_join_where ($table1,$table2, 

$field,$where,$order,$ordering){ 

$this->db->select('*'); 

$this->db->from($table1); 

$this->db->join($table2, $table1.'.'.$field.'='.$table2.'. '.$field); 

$this->db->where($where); 

$this->db->order_by($order,$ordering); 

return $this->db->get()->result_array(); 

 

 

function umenu_akses($link,$id){ 

return $this->db->query ("SELECT * FROM 

modul,users_modul WHERE modul.id_modul 

=users_modul.id_modul AND users_modul.id_session ='$id' 

AND modul.link='$link'")->num_rows(); 

 

77 

public function cek_login ($username,$password, $table){ 

return $this->db->query("SELECT * FROM $table where 

username='".$this->db-> escape_str($username)."' AND 

password='".$this-> db->escape_str($password)."' AND 

blokir='N'"); 

 

function grafik_kunjungan(){ 

return $this->db->query("SELECT count(*) as jumlah, tanggal 

FROM statistik GROUP BY tanggal ORDER BY tanggal DESC 

LIMIT 10");} 

function kategori_populer($limit){ 

return $this->db->query("SELECT * FROM (SELECT a.*, 

b.jum_dibaca FROM  

(SELECT * FROM tb_kategori) as a left join  

(SELECT id_kategori, sum(dibaca) as jum_dibaca FROM 

tb_berita GROUP BY id_kategori) as b on 

a.id_kategori=b.id_kategori) as c where c.aktif='Y' ORDER BY 

c.jum_dibaca DESC LIMIT $limit"); 

b. model_menu.php 

<?php  

class Model_menu extends CI_model{ 

function top_menu(){ 

return $this->db->query("SELECT * FROM menu where 

position='Top' ORDER BY urutan ASC"); 

 

78 

function menugroup(){ 

return $this->db->query("SELECT * FROM group_menu 

ORDER BY id_group_menu DESC"); 

 } 

 

function menugroup_edit($id){ 

return $this->db->query("SELECT * FROM group_menu 

where id_group_menu='$id'");} 

function menugroup_update(){ 

$datadb = array('nama_group_menu'=>$this-> db-> 

escape_str($this->input->post('a'))); 

 $this->db->where('id_group_menu',$this->input-> post('id')); 

$this->db->update('group_menu',$datadb); } 

 

function bottom_menu(){ 

return $this->db->query("SELECT * FROM menu where 

id_parent='0' AND position = 'Bottom' AND aktif='Ya' 

ORDER BY urutan ASC"); 

 

function dropdown_menu($id){ 

return $this->db->query("SELECT * FROM menu WHERE 

id_parent='$id' AND aktif='Ya' ORDER BY urutan ASC"); 

 

function menu_utama(){ 

return $this->db->query("SELECT * FROM menu where 

id_parent='0' ORDER BY urutan"); 

79 

 

function menu_cek($id){ 

return $this->db->query("SELECT * FROM menu where 

id_menu='$id'");} 

function menu_edit($id){ 

return $this->db->query("SELECT * FROM menu where 

id_menu='$id'");} 

 

function menu_delete($id){ 

return $this->db->query("DELETE FROM menu where 

id_menu='$id'"); 

 

c. model_reseller.php 

<?php  

class Model_reseller extends CI_model{ 

function top_menu(){ 

return $this->db->query("SELECT * FROM menu where 

position='Top' ORDER BY urutan ASC"); 

 

function testimoni(){ 

return $this->db->query("SELECT a.*, b.nama_lengkap, 

b.id_konsumen FROM testimoni a JOIN rb_konsumen b ON 

a.id_konsumen = b.id_konsumen ORDER BY a.id_testimoni 

DESC"); 

80 

 

function testimoni_update(){ 

$datadb = array('isi_testimoni'=>$this->input-> post('b'), 

'aktif'=>$this->input->post('f')); 

$this->db->where('id_testimoni',$this->input->  post('id')); 

$this->db->update('testimoni',$datadb); 

 

function testimoni_edit($id){ 

return $this->db->query("SELECT a.*, b.nama_lengkap, 

b.id_konsumen FROM testimoni a JOIN rb_konsumen b ON 

a.id_konsumen= b.id_konsumen where a.id_testimoni='$id'"); 

 

function testimoni_delete($id){ 

return $this->db->query("DELETE FROM testimoni where 

id_testimoni='$id'"); 

function public_testimoni($sampai, $dari){ 

return $this->db->query("SELECT a.*,b.nama_lengkap, 

b.foto,b.id_konsumen,b.jenis_kelamin FROM testimoni a JOIN 

rb_konsumen b ON a.id_konsumen=b.id_konsumen  where 

a.aktif='Y' ORDER BY a.id_testimoni DESC LIMIT $dari, 

$sampai"); 

 

function hitung_testimoni(){ 

81 

return $this->db->query("SELECT * FROM testimoni where 

aktif='Y'"); 

 

function insert_testimoni(){ 

$datadb=array('id_konsumen'=>$this->session-> 

id_konsumen,'isi_testimoni'=>$this->input-> post('testimoni'), 

'aktif'=>'N', 'waktu_testimoni'=> date('Y-m-d H:i:s')); 

$this->db->insert('testimoni',$datadb); 

 

function cari_reseller($kata){ 

$pisah_kata = explode(" ",$kata); 

$jml_katakan = (integer)count($pisah_kata); 

$jml_kata = $jml_katakan-1; 

$cari = "SELECT * FROM rb_reseller a LEFT JOIN rb_kota b 

ON a.kota_id=b.kota_id WHERE"; 

for ($i=0; $i<=$jml_kata; $i++){ 

$cari.= " a.nama_reseller LIKE '%".$pisah_kata[$i]."%' OR 

b.nama_kota LIKE '%".$pisah_kata[$i]."%' "; 

if ($i < $jml_kata ){ 

$cari .= " OR ";  

}  

$cari .= " ORDER BY a.id_reseller DESC LIMIT 36"; 

return $this->db->query($cari);} 

 

public function view_join_rows($table1,$table2,$field, 

$where,$order,$ordering){ 

82 

$this->db->select('*'); 

$this->db->from($table1); 

$this->db->join($table2, $table1.'.'.$field.'='.$table2.'. '.$field); 

$this->db->where($where); 

$this->db->order_by($order,$ordering); 

return $this->db->get(); 

 

function penjualan_list_konsumen($id,$level){ 

return $this->db->query("SELECT * FROM `rb_penjualan` a 

JOIN rb_konsumen b ON a.id_pembeli=b.id_konsumen where 

a.status_penjual='$level' AND a.id_penjual='$id' ORDER BY 

a.id_penjualan DESC"); 

 

 

 

function jual($id){ 

return $this->db->query("SELECT sum(a.jumlah) as jual 

FROM rb_penjualan_detail a JOIN rb_penjualan b ON 

a.id_penjualan=b.id_penjualan where a.id_produk ='$id' AND 

b.status_penjual='admin' AND b.proses= '1'"); 

 

function beli($id){ 

return $this->db->query("SELECT sum (a.jumlah_ pesan) as 

beli FROM rb_pembelian_detail a where a.id_produk='$id'"); 

83 

 

function jual_reseller($penjual, $produk){ 

return $this->db->query("SELECT sum(jumlah) as jual FROM 

`rb_penjualan` a JOIN rb_penjualan_detail b ON 

a.id_penjualan=b.id_penjualan where 

a.status_pembeli='konsumen' AND a.status_penjual='reseller' 

AND a.id_penjual='$penjual' AND b.id_produk='$produk' 

AND a.proses='1'"); 

 

function beli_reseller($pembeli, $produk){ 

return $this->db->query("SELECT sum(jumlah) as beli FROM 

`rb_penjualan` a JOIN rb_penjualan_detail b ON 

a.id_penjualan=b.id_penjualan where 

a.status_pembeli='reseller' AND a.status_penjual='admin' 

AND a.id_pembeli='$pembeli' AND b.id_produk='$produk' 

AND a.proses='1'"); } 

function penjualan_konsumen_detail($id){ 

return $this->db->query("SELECT * FROM `rb_penjualan` a 

JOIN rb_reseller b ON a.id_penjual= b.id_reseller JOIN 

rb_kota c ON b.kota_id=c.kota_id where 

a.id_penjualan='$id'"); 

 

function profile_konsumen($id){ 

return $this->db->query("SELECT a.id_konsumen, 

a.username, a.nama_lengkap, a.email, a.jenis_kelamin, 

a.tanggal_lahir, a.tempat_lahir, a.alamat_lengkap, 

84 

a.kecamatan, a.no_hp, a.tanggal_daftar, b.kota_id, 

b.nama_kota as kota, c.provinsi_id, c.nama_provinsi as 

propinsi FROM `rb_konsumen` a LEFT JOIN rb_kota b ON 

a.kota_id=b.kota_id LEFT JOIN rb_provinsi c ON 

b.provinsi_id=c.provinsi_id where a.id_konsumen= '$id'"); 

 

function orders_report($id,$level){ 

return $this->db->query("SELECT * FROM `rb_penjualan` a 

JOIN rb_reseller b ON a.id_penjual=b.id_reseller where 

a.status_penjual= '$level' AND a.id_pembeli='$id' ORDER BY 

a.id_penjualan DESC"); 

 

function agenda_terbaru($limit){ 

return $this->db->query("SELECT * FROM tb_agenda ORDER 

BY id_agenda DESC LIMIT $limit"); } 

public function view_join_where_one($table1,$table2, 

$field,$where){ 

$this->db->select('*'); 

$this->db->from($table1); 

$this->db->join($table2, $table1.'.'.$field.'='.$table2.'.' .$field); 

$this->db->where($where); 

return $this->db->get(); 

 

function modupdatefoto(){ 

$config['upload_path'] = 'asset/foto_user/'; 

$config['allowed_types'] = 'gif|jpg|png|JPG|gif|JPEG |jpeg'; 

85 

$config['max_size']     = '1000'; // kb 

$this->load->library('upload', $config); 

$this->upload->do_upload(); 

$hasil=$this->upload->data(); 

$config['image_library'] = 'gd2'; 

$config['source_image']='asset/foto_user/'.$hasil ['file_name']; 

$config['create_thumb'] = TRUE; 

$config['maintain_ratio'] = TRUE; 

$config['height']       = 622; 

$this->load->library('image_lib', $config); 

$this->image_lib->crop(); 

$datadb = array('foto'=>$hasil['file_name']); 

$this->db->where('id_konsumen',$this->session  

->id_konsumen); 

$this->db->update('rb_konsumen',$datadb);  

function modupdatefotoreseller(){ 

$config['upload_path'] = 'asset/foto_user/'; 

$config['allowed_types'] = 'gif|jpg|png|JPG|gif|JPEG| jpeg'; 

$config['max_size']     = '1000'; // kb 

$this->load->library('upload', $config); 

$this->upload->do_upload(); 

$hasil=$this->upload->data(); 

$config['image_library'] = 'gd2'; 

$config['source_image'] = 'asset/foto_user/'.$hasil 

['file_name']; 

$config['create_thumb'] = TRUE; 

$config['maintain_ratio'] = TRUE; 

86 

$config['height']       = 622; 

$this->load->library('image_lib', $config); 

$this->image_lib->crop(); 

$datadb = array('foto'=>$hasil['file_name']); 

$this->db->where('id_reseller',$this->session-> id_reseller); 

$this->db->update('rb_reseller',$datadb); 

 

function profile_update($id){ 

if (trim($this->input->post('a')) != ''){ 

$datadbd = array('username'=>$this->db-> escape_str 

(strip_tags($this->input->post('aa'))), 

'password'=>hash("sha512", md5($this->input-> post('a'))), 

'nama_lengkap'=>$this->db-> escape_str (strip_tags($this-> 

input->post('b'))), 'email'=>$this-> db-> escape_str (strip_tags 

($this->input->post('c'))),'jenis_kelamin'=>$this->db-> 

escape_str($this->input ->post('d')), 'tanggal_lahir'=>$this-> 

db->escape_str ($this-> input->post('e')), 'tempat_lahir'=> 

$this->db->escape_str(strip_tags($this->input->post('f'))), 

'alamat_lengkap'=>$this->db->escape_str (strip_tags ($this-> 

input->post('g'))),kecamatan'=>$this->db->escape_str 

(strip_tags($this->input->pos('k'))),'kota_id'=>$this->db-> 

escape_str(strip_tags($this->input->post('ga'))),'no_hp'=> 

$this->db->escape_str (strip_tags($this  ->input->post('l')))); 

 }else{ 

$datadbd = array('username'=>$this->db->escape_str 

(strip_tags($this->input->post('aa'))), 'nama_lengkap'=>$this- 

db->escape_str (strip_tags ($this->input->post('b'))), 'email'=> 

87 

$this->db-> escape_str(strip_tags($this->input->post('c'))), 

'jenis_kelamin'=>$this->db->escape_str($this->input-> 

post('d')), 'tanggal_lahir'=>$this->db->escape_str ($this-> 

input->post('e')),'tempat_lahir'=>$this->db->escape_str 

(strip_tags($this->input->post('f'))), 'alamat_lengkap'=>$this-> 

db->escape_str(strip_tags($this->input->post('g'))), 

'kecamatan'=>$this->db-> escape_str(strip_tags($this->input-> 

post('k'))), 'kota_id'=>$this->db-> escape_str(strip_tags($this-> 

input->post('ga'))), 'no_hp'=>$this->db->escape_str (strip_tags 

($this  ->input->post('l')))); 

$this->db->where('id_konsumen',$id); 

$this->db->update('rb_konsumen',$datadbd); 

 

 

function penjualan_list_konsumen_top($id, $level){ 

return $this->db->query("SELECT * FROM `rb_penjualan` a 

JOIN rb_konsumen b ON a.id_pembeli=b.id_konsumen where 

a.status_penjual= '$level' AND a.id_penjual='$id' ORDER BY 

a.id_penjualan DESC LIMIT 10"); 

 

function reseller_pembelian($id,$level){ 

return $this->db->query("SELECT * FROM `rb_penjualan` a 

JOIN rb_reseller b ON a.id_pembeli= b.id_reseller where 

a.status_penjual='$level' AND a.id_pembeli='$id' ORDER BY 

a.id_penjualan DESC");     

88 

 

function penjualan_detail($id){ 

return $this->db->query("SELECT * FROM `rb_penjualan` a 

JOIN rb_reseller b ON a.id_pembeli= b.id_reseller where 

a.id_penjualan='$id'");  

 

function penjualan_konsumen_detail_reseller($id){ 

return $this->db->query("SELECT * FROM `rb_penjualan` a 

JOIN rb_konsumen b ON a.id_pembeli =b.id_konsumen 

where a.id_penjualan='$id'"); 

 

 

 

function penjualan_list($id,$level){ 

return $this->db->query("SELECT * FROM `rb_penjualan` a 

JOIN rb_reseller b ON a.id_pembeli =b.id_reseller where 

a.status_penjual='$level' AND a.id_penjual='$id' ORDER BY 

a.id_penjualan DESC"); 

 

function pembelian($id_reseller){ 

return $this->db->query("SELECT sum((b.jumlah* 

b.harga_jual)-b.diskon) as total FROM rb_penjualan a JOIN 

rb_penjualan_detail b ON a.id_penjualan= b.id_penjualan 

89 

where a.status_penjual='admin' AND 

a.id_pembeli='".$id_reseller."' AND a.proses='1'"); 

 

function penjualan_perusahaan($id_reseller){ 

return $this->db->query("SELECT sum((a.jumlah* 

a.harga_jual)-a.diskon) as total, sum(a.jumlah) as produk 

FROM `rb_penjualan_detail` a JOIN rb_produk b ON 

a.id_produk=b.id_produk JOIN rb_penjualan c ON 

a.id_penjualan=c.id_penjualan where c.status_ 

penjual='reseller' AND b.id_produk_perusahaan!='0' AND 

id_penjual='".$id_reseller."' AND c.proses='1'"); 

 

function penjualan($id_reseller){ 

return $this->db->query("SELECT sum((a.jumlah* 

a.harga_jual)-a.diskon) as total, sum(a.jumlah) as produk 

FROM `rb_penjualan_detail` a JOIN rb_produk b ON 

a.id_produk=b.id_produk JOIN rb_penjualan c ON 

a.id_penjualan=c.id_penjualan where c.status_ 

penjual='reseller' AND b.id_produk_perusahaan='0' AND 

id_penjual= '".$id_reseller."' AND c.proses='1'"); 

 

function modal_perusahaan($id_reseller){ 

return $this->db->query("SELECT sum(a.jumlah* 

b.harga_reseller) as total FROM `rb_penjualan_detail` a JOIN 

rb_produk b ON a.id_produk=b.id_produk JOIN 

90 

rb_penjualan c ON a.id_penjualan=c.id_penjualan where 

c.status_pembeli='konsumen' AND c.proses ='1' AND 

c.id_penjual='".$id_reseller."' AND b.id_ 

produk_perusahaan!='0'"); 

 

function modal_pribadi($id_reseller){ 

return $this->db->query("SELECT sum(a.jumlah* 

b.harga_beli) as total FROM `rb_penjualan_detail` a JOIN 

rb_produk b ON a.id_produk=b.id_produk JOIN 

rb_penjualan c ON a.id_penjualan=c.id_penjualan where 

c.status_pembeli='konsumen' AND c.proses= '1' AND 

c.id_penjual='".$id_reseller."' AND b.id_produk_perusahaan 

='0'"); 

 

function produk_perkategori($id_reseller,$id_produk_ 

perusahaan,$id_kategori_produk,$limit){ 

return $this->db->query("SELECT a.*, b.nama_reseller, 

c.nama_kota FROM rb_produk a LEFT JOIN rb_reseller b ON 

a.id_reseller=b.id_reseller LEFT JOIN rb_kota c ON 

b.kota_id=c.kota_id where a.id_reseller!='$id_reseller' AND 

a.id_produk_ perusahaan='$id_produk_perusahaan' AND 

a.id_kategori_produk= '$id_kategori_produk' ORDER BY 

a.id_produk DESC LIMIT $limit"); } } 

 

d. model_utama.php 

<?php  

class Model_utama extends CI_model{ 

91 

public function view($table){ 

return $this->db->get($table); 

 

public function view_where($table,$data){ 

$this->db->where($data); 

return $this->db->get($table); 

 

public function view_ordering_limit($table, $order, 

$ordering,$baris,$dari){ 

$this->db->select('*'); 

$this->db->order_by($order,$ordering); 

$this->db->limit($dari, $baris); 

return $this->db->get($table); } 

public function view_where_ordering_limit($table , 

$data,$order,$ordering,$baris,$dari){ 

$this->db->where($data); 

$this->db->order_by($order,$ordering); 

$this->db->limit($dari, $baris); 

return $this->db->get($table); 

 

public function view_single($table,$data,$order, $ordering){ 

$this->db->where($data); 

$this->db->order_by($order,$ordering); 

return $this->db->get($table);     

 

92 

public function view_join($table1,$table2,$field, 

$order,$ordering,$baris,$dari){ 

$this->db->select('*'); 

$this->db->from($table1); 

$this->db->join($table2, $table1.'.'.$field.'='.$table2.'. '.$field); 

$this->db->order_by($order,$ordering); 

$this->db->limit($dari, $baris); 

return $this->db->get(); 

 

public function view_join_one($table1,$table2, $field, 

$where,$order,$ordering,$baris,$dari){ 

$this->db->select('*'); 

$this->db->from($table1); 

$this->db->join($table2, $table1.'.'.$field.'='.$table2.'. '.$field); 

$this->db->where($where); 

$this->db->order_by($order,$ordering); 

$this->db->limit($dari, $baris); 

return $this->db->get();     

 

public function view_joinn($table1,$table2,$table3,$field, 

$field1,$order,$ordering,$baris,$dari){ 

$this->db->select('*'); 

$this->db->from($table1); 

$this->db->join($table2,$table1.'.'.$field.'='.$table2.'.' .$field); 

$this->db->join($table3,$table1.'.'.$field1.'='.$table3. '.'.$field1); 

$this->db->order_by($order,$ordering); 

$this->db->limit($dari, $baris); 

93 

return $this->db->get(); 

 

public function view_join_two($table1,$table2,$table3, 

$field,$field1,$where,$order,$ordering,$baris,$dari){ 

$this->db->select('*'); 

$this->db->from($table1); 

$this->db->join($table2,$table1.'.'.$field.'='.$table2.'.'. $field); 

$this->db->join($table3,$table1.'.'.$field1.'='.$table3.'.'. $field1); 

$this->db->where($where); 

$this->db->order_by($order,$ordering); 

$this->db->limit($dari, $baris); 

return $this->db->get(); } 

function cari_berita($kata){ 

$pisah_kata = explode(" ",$kata); 

$jml_katakan = (integer)count($pisah_kata); 

$jml_kata = $jml_katakan-1; 

$cari = "SELECT * FROM tb_berita a join users b on 

a.username=b.username join tb_kategori c on 

a.id_kategori=c.id_kategori WHERE a.status='Y' AND"; 

for ($i=0; $i<=$jml_kata; $i++){ 

$cari .= " a.judul LIKE '%".$pisah_kata[$i]."%'"; 

if ($i < $jml_kata ){ 

$cari .= " OR ";  

}  

$cari .= " ORDER BY a.id_berita DESC LIMIT 15"; 

return $this->db->query($cari); 

94 

 

public function insert($table,$data){ 

return $this->db->insert($table, $data); 

 

public function update($table, $data, $where){ 

return $this->db->update($table, $data, $where);  

 

public function polling_sum(){ 

return $this->db->query("SELECT SUM(rating) as jml_vote 

FROM poling WHERE aktif='Y'");  } 

function kunjungan(){ 

$ip      = $_SERVER['REMOTE_ADDR']; 

$tanggal = date("Y-m-d"); 

$waktu   = time();  

$cekk = $this->db->query("SELECT * FROM statistik WHERE 

ip='$ip' AND tanggal='$tanggal'"); 

$rowh = $cekk->row_array(); 

if($cekk->num_rows() == 0){ 

$datadb = array('ip'=>$ip, 'tanggal'=>$tanggal, 'hits'=>'1', 

'online'=>$waktu); 

$this->db->insert('statistik',$datadb); 

}else{ 

$hitss = $rowh['hits'] + 1; 

$datadb = array('ip'=>$ip, 'tanggal'=>$tanggal, 'hits'=>$hitss, 

'online'=>$waktu); 

$array = array('ip' => $ip, 'tanggal' => $tanggal); 

95 

$this->db->where($array); 

$this->db->update('statistik',$datadb); 

 

Dari skrip yang sudah dibuat, untuk menginput data 

ke dalam database kita dapat menggunakan function 

simpan(), untuk menampilkan data atau mengambil data dari 

sebuah database kita dapat menggunakan function tampil(), 

dan untuk menghapus data dari sebuah database kita dapat 

menggunakan function hapus(), selain itu untuk mengupdate 

data pada sebuah database kita bisa menggunakan function 

ubah().  

Kemudian kita akan mengatur autoload model di 

dalam folder application/config/autoload.php. agar model-

model yang sudah dibuat dapat digunakan dan di buka secara 

otomatis. Jadi tidak perlu lagi kita buka dari file controller. 

 

autoload.php 

<?php 

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

allowed'); 

$autoload['packages'] = array(); 

$autoload['libraries'] = array('session','database', 'mylibrary', 

'pagination','table','form_validation','template','user_agent','em

ail','rss');$autoload['drivers'] = array(); 

$autoload['helper'] = array('url','form','phpmu', 'tb_download', 

'html','engine','captcha','cookie','string'); 

96 

$autoload['config'] = array(); $autoload['language'] = array(); 

$autoload['model'] = array('model_app','model_utama', 

'model_reseller'); 

 

6.5 Membuat Form Login  

Form login akan dibuat pada file controller Autentifikasi. 

Controller yang kita buat ini akan dijadikan sebagai controller 

default.  

Tampilan-tampilan aplikasi ecommerce akan dibuat dengan 

menggunakan template dari bootstrap yange terbaru yaitu 

versi 4. Sebelumnya kita harus mempersiapkan terlebih 

dahulu template webite yang menggunakan bootsrap 4. 

pada folder template bootstrap yang sudah diekstrak, 

kemudian cari file dengan naman login.html, kemudian buka 

file tersebut menggunakan menggunakan editor php atau 

html. Setelah file terbuka, copy isi script dari file login tersebut 

kemudian buat file view yang baru pada projek yang sedang 

dibuat dengan nama login.php. kemudian simpan file dalam 

folder Application/views/administrator. Maka hasilnya 

seperti berikut: 

<!DOCTYPE html> 

<html> 

<head> 

<meta charset="utf-8"> 

<meta http-equiv="X-UA-Compatible" content= "IE=edge"> 

<title>AdminLTE 2 | Log in</title> 

<!-- Tell the browser to be responsive to screen width --> 

97 

<meta content="width=device-width, initial-scale=1, 

maximum-scale=1, user-scalable=no" name= "viewport"> 

<!-- Bootstrap 3.3.5 --> 

<link rel="stylesheet" 

href="../../bootstrap/css/bootstrap.min.css"> 

<!-- Font Awesome --> 

<link rel="stylesheet" 

href="https://maxcdn.bootstrapcdn.com/font-

awesome/4.4.0/css/font-awesome.min.css"> 

<!-- Ionicons --> 

<link rel="stylesheet" 

href="https://code.ionicframework.com/ionicons/2.0.1/css/i

onicons.min.css"> 

<!-- Theme style --> 

<link rel="stylesheet" 

href="../../dist/css/AdminLTE.min.css"> 

<!-- iCheck -->  

<link rel="stylesheet" 

href="../../plugins/iCheck/square/blue.css"> 

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 

elements and media queries --> 

 <!-- WARNING: Respond.js doesn't work if you view the 

page via file:// --> 

<!--[if lt IE 9]> 

        <script 

src="https://oss.maxcdn.com/html5shiv/3.7.3/html5sh

iv.min.js"></script> 

98 

        <script 

src="https://oss.maxcdn.com/respond/1.4.2/respond.

min.js"></script> 

    <![endif]--> 

</head> 

<body class="hold-transition login-page"> 

<div class="login-box"> 

<div class="login-logo"> 

<a href="../../index2.html"><b>Admin</b>LTE</a> 

</div><!-- /.login-logo --> 

<div class="login-box-body"> 

<p class="login-box-msg">Sign in to start your session</p> 

<form action="../../index2.html" method="post"> 

<div class="form-group has-feedback"> 

<input type="email" class="form-control" placeholder= 

"Email"> 

<span class="glyphicon glyphicon-envelope form-control-

feedback"></span> 

</div> 

<div class="form-group has-feedback"> 

<input type="password" class="form-control" placeholder= 

"Password"> 

<span class="glyphicon glyphicon-lock form-control-

feedback"></span> 

</div> 

<div class="row"> 

<div class="col-xs-8"> 

<div class="checkbox icheck"> 

99 

<label> 

<input type="checkbox"> Remember Me 

</label> 

</div> 

</div><!-- /.col --> 

<div class="col-xs-4"> 

<button type="submit" class="btn btn-primary btn-block btn-

flat">Sign In</button> 

</div><!-- /.col --> 

</div> 

</form> 

<div class="social-auth-links text-center"> 

<p>- OR -</p> 

<a href="#" class="btn btn-block btn-social btn-facebook btn-

flat"><i class="fa fa-facebook"></i> Sign in using Facebook 

</a> 

 

<a href="#" class="btn btn-block btn-social btn-google btn-

flat"><i class="fa fa-google-plus"></i> Sign in using Google+ 

</a> 

</div><!-- /.social-auth-links --> 

 

<a href="#">I forgot my password</a><br> 

<a href="register.html" class="text-center">Register a new 

membership</a> 

 

</div><!-- /.login-box-body --> 

</div><!-- /.login-box --> 

100 

<!-- jQuery 2.1.4 --> 

<script src="../../plugins/jQuery/jQuery-

2.1.4.min.js"></script> 

<!-- Bootstrap 3.3.5 --> 

<script src="../../bootstrap/js/bootstrap.min.js"> </script> 

<!-- iCheck --> 

<script src="../../plugins/iCheck/icheck.min.js"> </script> 

<script> 

$(function () { 

$('input').iCheck({ 

checkboxClass: 'icheckbox_square-blue', 

radioClass: 'iradio_square-blue', 

increaseArea: '20%' // optional 

}); 

}); 

</script> 

</body> 

</html> 

 

Untuk melihat hasilnya dari scrip yang sudah dibuat, 

silahkan ketik URL seperti ini http://localhost/ecommerce/, 

lalu pilih menu login. Maka hasilnya seperti gambar 6.1:  

101 

 

Gambar 6. 1 Tampilan Form Login 

 

6.6 Membuat Halaman Admin 

Halaman admin adalah halaman yang digunakan untuk 

mengelola data-data master seperti produk, kategori produk 

dan data lainnya.  

Dalam pembuatan halaman admin, template yang 

digunakan masih tetap menggunakan template dari bootsrap. 

Lalu buka index.php dari template bootstrap menggunakan 

web editor yang biasa digunakan. Selanjutnya buat file 

main_header.php,  footer.php, menu_admin.php, 

view_home_admin.php, view_home_user.php, grafik.php, 

view_reset.php dan simpan di dalam folder 

application\views\administrator. 

 

A. Index.php 

<?php 

102 

define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? 

$_SERVER['CI_ENV'] : 'development'); 

switch (ENVIRONMENT) 

case 'development': 

error_reporting(-1); 

ini_set('display_errors', 1); 

break; 

case 'testing': 

case 'production': 

ini_set('display_errors', 0); 

if(version_compare(PHP_VERSION, '5.3', '>=')) 

error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED 

& ~E_STRICT & ~E_USER_NOTICE & 

~E_USER_DEPRECATED); 

else 

error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & 

~E_USER_NOTICE); 

break; 

default: 

header('HTTP/1.1 503 Service Unavailable.', TRUE, 503); 

echo 'The application environment is not set correctly.'; 

exit(1); // EXIT_ERROR 

103 

 

//$system_path = 'system'; 

$system_path = dirname(__FILE__) . 

DIRECTORY_SEPARATOR . 'system'; 

 

//$application_folder = 'application'; 

$application_folder = dirname(__FILE__) . 

DIRECTORY_SEPARATOR . 'application'; 

$view_folder = ''; 

 

// Set the current directory correctly for CLI requests 

if (defined('STDIN')) 

chdir(dirname(__FILE__)); 

 

if (($_temp = realpath($system_path)) !== FALSE) 

$system_path = $_temp.'/'; 

else 

// Ensure there's a trailing slash 

$system_path = rtrim($system_path, '/').'/';} 

// Is the system path correct? 

if ( !is_dir($system_path)) 

header('HTTP/1.1 503 Service Unavailable.', TRUE, 503); 

104 

echo 'Your system folder path does not appear to be set 

correctly. Please open the following file and correct 

this:'.pathinfo(__FILE__,PATHINFO_ BASENAME); 

exit(3); // EXIT_CONFIG 

 

// The name of THIS file 

define('SELF',pathinfo(__FILE__,PATHINFO_ BASENAME)); 

 

// Path to the system folder 

define('BASEPATH',str_replace('\\','/', $system_path)); 

 

// Path to the front controller (this file) 

define('FCPATH', dirname(__FILE__).'/'); 

 

// Name of the "system folder" 

define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/')); 

 

// The path to the "application" folder 

if (is_dir($application_folder)) 

if (($_temp = realpath($application_folder)) !== FALSE) 

$application_folder = $_temp; 

define('APPPATH', 

$application_folder.DIRECTORY_SEPARATOR); 

105 

else 

if(!is_dir(BASEPATH.$application_folder. 

DIRECTORY_SEPARATOR)) 

header('HTTP/1.1 503 Service Unavailable.', TRUE, 503); 

echo 'Your application folder path does not appear to be set 

correctly. Please open the following file and correct this: 

'.SELF; 

exit(3); // EXIT_CONFIG 

define('APPPATH',BASEPATH.$application_folder.DIRECTO

RY_SEPARATOR); 

 

// The path to the "views" folder 

if ( ! is_dir($view_folder)) 

if (!empty($view_folder) && is_dir (APPPATH. 

$view_folder.DIRECTORY_SEPARATOR)) 

$view_folder = APPPATH.$view_folder; 

elseif(!is_dir(APPPATH.'views'.DIRECTORY_ SEPARATOR)) 

header('HTTP/1.1 503 Service Unavailable.', TRUE, 503); 

106 

echo 'Your view folder path does not appear to be set 

correctly. Please open the following file and correct this: 

'.SELF; 

exit(3); // EXIT_CONFIG 

else 

$view_folder = APPPATH.'views'; 

 

if (($_temp = realpath($view_folder)) !== FALSE) 

$view_folder = $_temp.DIRECTORY_SEPARATOR; 

else 

$view_folder = rtrim($view_folder, '/\\') .DIRECTORY_ 

SEPARATOR; 

define('VIEWPATH', $view_folder); 

require_once BASEPATH.'core/CodeIgniter.php'; 

 

B. main_header.php 

<style type="text/css"> 

  .sekolah{ 

    float: left; 

    background-color: transparent; 

    background-image: none; 

107 

    padding: 15px 15px; 

    font-family: fontAwesome; 

    color:#fff; 

  } 

  .sekolah:hover{ 

    color:#fff; 

  } 

</style> 

<!-- Logo --> 

<a href="index.php" class="logo"> 

<!-- mini logo for sidebar mini 50x50 pixels --> 

<span class="logo-mini"></span> 

<!-- logo for regular state and mobile devices --> 

<span class="logo-lg"><b>ADMINISTRATOR</b> </span> 

</a> 

<!-- Header Navbar: style can be found in header.less --> 

<nav class="navbar navbar-static-top" role= "navigation"> 

 <!-- Sidebar toggle button--> 

<a href="#" class="sidebar-toggle" data-toggle= "offcanvas" 

role="button"> 

<span class="sr-only">Toggle navigation</span> 

</a> 

<div class="navbar-custom-menu"> 

<ul class="nav navbar-nav"> 

<!-- User Account: style can be found in dropdown.less --> 

<?php if ($this->session->level=='admin'){ ?> 

<li class="dropdown messages-menu"> 

108 

<a href="#" class="dropdown-toggle" data-toggle= 

"dropdown"> 

<i class="fa fa-envelope-o"></i> Pesan Masuk 

<?php $jmlh = $this->model_app->view_where ('tb_hubungi', 

array('dibaca'=>'N'))->num_rows(); ?> 

<span class="label label-success"><?php echo $jmlh; 

?></span> 

</a> 

<ul class="dropdown-menu"> 

<li class="header">You have <?php echo $jmlh; ?> new 

messages</li> 

<li> 

<ul class="menu"> 

<?php  

$pesan = $this->model_app->view_ordering_limit 

('tb_hubungi', 'id_hubungi','DESC',0,10); 

foreach ($pesan->result_array() as $row) { 

$isi_pesan = substr($row['pesan'],0,30); 

$waktukirim = cek_terakhir($row['tanggal'].''.$row ['jam']); 

 

if ($row['dibaca']=='N'){ $color = '#f4f4f4'; }else{ $color = '#fff'; 

echo "<li style='background-color:$color'> 

<a href='".base_url().$this->uri->segment(1). 

"/detail_pesanmasuk/$row[id_hubungi]'> 

<div class='pull-left'> 

<img src='".base_url()."asset/foto_user/blank.png' class='img-

circle' alt='User Image'> 

109 

</div> 

<h4>$row[nama]<small><i class='fa fa-clock-o'></i> 

$waktukirim</small></h4> 

<p>$isi_pesan...</p> 

</a> 

</li>"; 

} ?> 

</ul> 

</li> 

<li class="footer"><a href="<?php echo base_url(). $this->uri-

>segment(1); ?>/pesanmasuk">See All Messages</a></li> 

  </ul> 

 </li> 

<?php } ?> 

<li> 

<a target='_BLANK' href="<?php echo base_url(); ?>"><i 

class="glyphicon glyphicon-new-window"> </i></a> 

</li> 

</ul></div></nav> 

C. footer.php 

<strong>Copyright &copy; 2021 - <?php echo date('Y'); ?> 

</strong> 

All rights reserved. 

 

D. menu_admin.php 

<section class="sidebar"> 

<!-- Sidebar user panel --> 

<div class="user-panel"> 

<div class="pull-left image"> 

110 

<?php $usr = $this->model_app->view_where('users', array 

('username'=> $this->session->username))-> row_array(); 

if (trim($usr['foto'])==''){ $foto = 'blank.png'; }  

else{ $foto = $usr['foto']; } ?> 

<img src="<?php echo base_url();?> /asset/foto_user/<?php 

echo $foto; ?>" class="img-circle" alt="User Image"> 

</div> 

<div class="pull-left info"> 

<?php echo "<p>$usr[nama_lengkap]</p>"; ?> 

<a href="#"><i class="fa fa-circle text-success"></i> 

Online</a> 

</div> 

</div> 

 

<!-- sidebar menu: : style can be found in sidebar.less --> 

<ul class="sidebar-menu"> 

<li class="header" style='text-transform:uppercase;'> MENU 

<span class='uppercase'><?php echo $this-> session->level; 

?></span></li> 

 

 <li><a href="<?php echo base_url().$this->uri-> 

segment(1);?> /home"> <i class="fa fa-dashboard"> </i> 

<span>Dashboard</span></a></li> 

 <li class="treeview"> 

 

<a href="#"><i class="fa fa-shopping-cart"></i> <span>Toko 

/Reseller </span><i class="fa fa-angle-left pull-right"></i> 

</a> 

111 

 <ul class="treeview-menu"> 

<li class="treeview"> 

<a href="#"><i class="fa fa-circle-o"></i> Master