0% menganggap dokumen ini bermanfaat (0 suara)
219 tayangan

Modul CodeIgniter Update Lengkap

Modul ini memberikan panduan lengkap tentang penggunaan CodeIgniter framework untuk membangun aplikasi berbasis website. Modul ini menjelaskan arsitektur, konfigurasi, penggunaan database, perpustakaan, penanganan error, upload file, email, validasi form, session, flash data, cookie, fungsi umum, caching halaman, redirect halaman, dan profiling aplikasi menggunakan CodeIgniter.

Diunggah oleh

Akbar Algifari
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
219 tayangan

Modul CodeIgniter Update Lengkap

Modul ini memberikan panduan lengkap tentang penggunaan CodeIgniter framework untuk membangun aplikasi berbasis website. Modul ini menjelaskan arsitektur, konfigurasi, penggunaan database, perpustakaan, penanganan error, upload file, email, validasi form, session, flash data, cookie, fungsi umum, caching halaman, redirect halaman, dan profiling aplikasi menggunakan CodeIgniter.

Diunggah oleh

Akbar Algifari
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 91

Modul Pelatihan

Pemrograman Framework

Office:
Jl. Olat Maras
Sumbawa Besar, NTB
Website: uts.ac.id
Email: [email protected]
Univeristas Teknologi Sumbawa
KATA PENGANTAR
Segala puji dan syukur penulis panjatkan ke hadirat Allah Swt. Alhamdulillahi Rabbil
’Aalamin, atas limpahan rahmat dan karunia-Nya penulis dapat menyelesaikan penyusunan modul
ini. Shalawat dan salam dengan ucapan Allahumma sholli ’ala Muhammad wa ’ala ali Muhammad
penulis sampaikan untuk junjungan kita Nabi besar Muhammad Saw.

Modul ini disusun untuk memenuhi kebutuhan pengajaran menggunakan CodeIgniterr


dalam rangka meningkatkan pengetahuan pembaca dalam menggunakan framework untuk
membuat Aplikasi berbasis Website dengan menggunakan CodeIgniter. Maka modul ini disusun
dengan kualifikasi merangkum semua tahap-tahap yang ada didalam CodeIgniter, dengan teknik
penyajiannya dilakukan secara bertahap. Hal ini dilakukan untuk menghindari pengulangan dan
ketidak pahaman pembaca karena tahap yang tidak teratur.

Seperti layaknya sebuah modul, maka pembahasan dimulai dengan menjelaskan tujuan
yang hendak dicapai. Dengan demikian pengguna modul ini secara mandiri dapat membuat
Aplikasi berbasis Website dengan menggunakan CodeIgniter.

Penulis menyadari sepenuhnya bahwa modul ini tentu punya banyak kekurangan. Untuk
itu penulis dengan berlapang dada menerima masukan dan kritikan konstruktif dari berbagai pihak
demi kesempurnaannya di masa yang akan datang. Akhirnya kepada Allah jualah penulis
bermohon semoga semua ini menjadi amal saleh bagi penulis dan bermanfaat bagi pembaca.

Sumbawa, Pebruari 2021


Penulis,
I Made Widiarta, S.Komp, M. M. Inov
DAFTAR ISI
Tentang Kami

Kata Pengantar

Daftar Isi

BAB 1. TUTORIAL CODEIGNITER .......................................................................... 1

1. HOME ................................................................................................................ 1
1.1. Apa Itu CodeIgniter? ................................................................................... 1
1.2. User / Pemakai ............................................................................................. 1
1.3. Kelebihan CodeIgniter ................................................................................. 1
2. OVERVIEW ..................................................................................................... 1
3. INSTILING APPLICATION .......................................................................... 2
4. APPLICATION ARCHITECTURE .............................................................. 3
4.1. Arsitektur Aplikasi....................................................................................... 3
4.2. Struktur Direktori......................................................................................... 4
4.3. Aplikasi ........................................................................................................ 5
4.4. Sistem .......................................................................................................... 5
4.5. Panduan Pengguna ....................................................................................... 6
5. MVC FRAMEWORK ...................................................................................... 6
6. BASIC CONCEPTS ......................................................................................... 7
6.1. Pengontrol .................................................................................................... 7
6.2. Membuat Pengendali ................................................................................... 7
6.3. Memanggil Pengendali ................................................................................ 8
6.4. Membuat & Memanggil Metode Konstruktor ............................................. 8
6.5. Poin untuk Diingat ....................................................................................... 9
6.6. Tampilan .................................................................................................... 10
6.7. Model ......................................................................................................... 11
6.8. Membuat Kelas Model .............................................................................. 11
6.9. Membuat Model......................................................................................... 12
6.10. Membuat Model Otomatis ....................................................................... 12
6.11. Pembantu ................................................................................................. 12
6.12. Pembantu yang sering digunakan ............................................................ 13
7. CONFIGURATION ....................................................................................... 15
7.1. Mengkonfigurasi URL ............................................................................... 15
7.2. Konfigurasi Basis Data .............................................................................. 15
7.3. Konfigurasi Pengisian Otomatis ................................................................ 17
8. WORKING WITH DATABASE .................................................................. 18
8.1. Menghubungkan ke Database .................................................................... 18
8.2. Memasukkan Catatan................................................................................. 19
8.3. Memperbarui Catatan ................................................................................ 19
8.4. Menghapus Rekaman................................................................................. 21
8.5. Memilih Catatan ........................................................................................ 21
8.6. Menutup Koneksi....................................................................................... 22
9. LIBRARIES .................................................................................................... 27
91. Kelas Perpustakaan ..................................................................................... 27
9.2. Membuat Perpustakaan .............................................................................. 27
9.3. Perpanjang Native Library ......................................................................... 28
9.4. Ganti Perpustakaan Asli ............................................................................ 29
10. ERROR HANDLING ................................................................................... 29
11. FILE UPLOADING ..................................................................................... 32
12. SENDING EMAIL ....................................................................................... 36
12.1. Fitur fitur mengirim email : ................................................................... 36
12.2. Mengirim Email .................................................................................... 39
13. FORM VALIDATION ................................................................................. 42
14. SESSION MANAGEMENT ........................................................................ 46
14.1. Menginisialisasi Sesi ............................................................................. 46
14.2. Tambahkan Data Sesi ............................................................................ 46
14.3. Hapus Data Sesi..................................................................................... 47
14.4. Ambil Data Sesi..................................................................................... 47
15. FLASH DATA .............................................................................................. 49
16. TEMPDATA ................................................................................................. 52
16.1. Tambahkan Tempdata ........................................................................... 52
16.2. Ambil Tempdata .................................................................................... 53
16.3. Hapus Tempdata .................................................................................... 53
16.4. Menghancurkan Sesi ............................................................................. 56
17. COOKIE MANAGEMENT ........................................................................ 56
18. COMMON FUNCTION .............................................................................. 59
19. PAGE CACHING ......................................................................................... 64
19.1. Aktifkan Caching .................................................................................. 64
19.2. Nonaktifkan Caching ............................................................................. 64
20. PAGE REDIRECTION ............................................................................... 66
21. APPLICATION PROFILING .................................................................... 68
21.1. Aktifkan Pembuatan Profil .................................................................... 68
21.2. Nonaktifkan Profiling ............................................................................ 68
21.3. Aktifkan / Nonaktifkan Bagian Profiler ................................................ 68
22. BENCHMARKING ...................................................................................... 70
23. ADDING JS AND CSS ................................................................................ 73
24. INTERNATIONALIZATION..................................................................... 75
24.1. Membuat file Bahasa ............................................................................. 75
24.2. Memuat file bahasa ............................................................................... 76
24.3. Mengambil Teks Bahasa ....................................................................... 76
24.4. Muat Ulang Otomatis Bahasa................................................................ 76
25. SECURITY ................................................................................................... 81
25.1. Pencegahan XSS.................................................................................... 81
25.2. Pencegahan Injeksi SQL ....................................................................... 81
25.3. Escaping Queries ................................................................................... 82
25.4. Query Biding ......................................................................................... 82
25.5. Active Record Class .............................................................................. 82
25.6. Menyembunyikan Kesalahan PHP ........................................................ 82
25.7. Pencegahan CSRF ................................................................................. 83
25.8. Penanganan Kata Sandi ......................................................................... 84
Modul Pelatihan Pemrograman Framework

BAB I

TUTORIAL CODEIGNITER

1. HOME
1.1 Apa Itu CodeIgniter?
CodeIgniter adalah framework PHP yang aman dengan kapasitas yang sangat kecil, dibangun
untuk pengembang yang membutuhkan toolkit sederhana dan elegan untuk membuat aplikasi
web berfitur lengkap. CodeIgniter dibuat oleh EllisLab, dan sekarang merupakan proyek dari
British Columbia Institute of Technology.

1.2. User / Pemakai


Tutorial ini telah disiapkan untuk pengembang yang ingin mempelajari seni mengembangkan
situs web menggunakan CodeIgniter. Ini memberikan pemahaman lengkap tentang
framework ini.

1.3. Kelebihan CodeIgniter


Sebelum Anda mulai melanjutkan dengan tutorial ini, kami berasumsi bahwa Anda sudah
paham dengan HTML, Core PHP, dan PHP Advance. Kami telah menggunakan CodeIgniter
versi 3.0.1 di semua contoh CodeIgniter adalah framework pengembangan aplikasi, yang
dapat digunakan untuk mengembangkan situs web, menggunakan PHP. CodeIgniter adalah
framework Terbuka yang memiliki serangkaian fungsi yang sangat banyak, yang akan
meningkatkan kecepatan pekerjaan pengembangan situs web.

Jika Anda mengenal PHP dengan baik, maka CodeIgniter akan membuat tugas Anda lebih
mudah. Ia memiliki koleksi perpustakaan yang sangat banyak. Dengan menggunakan
CodeIgniter, Anda akan menghemat banyak waktu, jika Anda mengembangkan situs web dari
awal. Tidak hanya itu, situs web yang dibangun di CodeIgniter juga aman, karena memiliki
kemampuan untuk mencegah berbagai serangan yang terjadi melalui situs web.

2. OVERVIEW
Fitur CodeIgniter
Beberapa fitur penting CodeIgniter tercantum di bawah ini adalah :
• Sistem Berbasis Model-View-Controller
• Sangat Ringan

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 1


Modul Pelatihan Pemrograman Framework

• Kelas basis data berfitur lengkap dengan dukungan untuk beberapa platform.
• memiliki Database Builder Kueri
• Formulir dan Validasi Data
• Keamanan dan Penyaringan XSS
• Manajemen Sesi
• Dilengkapi dengan Email Kelas. Mendukung Lampiran, email HTML / Teks, banyak protokol
(sendmail, SMTP, dan Mail) dan banyak lagi.
• Perpustakaan Manipulasi Gambar (memotong, mengubah ukuran, memutar, dll.). Mendukung
GD, ImageMagick, dan NetPBM
• Terdapat Kelas Mengunggah File
• Kelas FTP
• Lokalisasi
• Pagination
• Enkripsi data
• Tersedia halaman caching yang banyak
• Kesalahan Logging
• Profil Aplikasi
• Terdapat Kelas Kalender
• Kelas Agen Pengguna
• Kelas Pengkodean Zip
• Kelas Mesin Template
• Kelas Pelacakan
• Perpustakaan XML-RPC
• Kelas Pengujian Unit
• URL Ramah mesin pencari
• Routing URI yang Fleksibel
• terdapat Hooks dan Ekstensi Kelas
• Perpustakaan besar yang sangat membantu.

3. INSTILING APPLICATION
Cara Menginstal CodeIgniter sangat mudah, Ikuti saja langkah-langkah yang diberikan di
bawah ini :
➢ Langkah-1 - Unduh CodeIgniter dari tautan CodeIgniter
Ada dua opsi warisan berbeda dan terbaru. Nama-nama itu sendiri deskriptif diri. legacy
memiliki versi kurang dari 2.x dan terbaru memiliki versi 3.0. Kita juga bisa menggunakan
GitHub dan mendapatkan semua skrip terbaru ..
➢ Langkah-2 - Buka ritsleting folder.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 2


Modul Pelatihan Pemrograman Framework

➢ Langkah-3 - Unggah semua file dan folder ke server Anda.


➢ Langkah-4 - Setelah mengunggah semua file ke server Anda, kunjungi URL server Anda,
mis., Www.domain-name.com.

Saat mengunjungi URL, Anda akan melihat layar berikut :

4. APPLICATION ARCHITECTURE
4.1. Arsitektur Aplikasi

• Langkah pertama Seperti yang ditunjukkan pada gambar, setiap kali permintaan datang
ke CodeIgniter, pertama-tama akan pergi ke halaman index.php.
• Pada langkah kedua, Routing akan memutuskan apakah akan meneruskan permintaan ini
ke langkah-3 untuk caching atau meneruskan permintaan ini ke langkah-4 untuk
pemeriksaan keamanan.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 3


Modul Pelatihan Pemrograman Framework

• Jika halaman yang diminta sudah dalam Caching, maka Routing akan meneruskan
permintaan ke langkah-3 dan jawabannya akan kembali ke pengguna. Jika halaman yang
diminta tidak ada dalam Caching, maka Routing akan melewati halaman yang diminta ke
langkah-4 untuk pemeriksaan Keamanan.
• Sebelum meneruskan permintaan ke Pengontrol Aplikasi, Keamanan data yang
dikirimkan diperiksa. Setelah pemeriksaan Keamanan, Pengontrol Aplikasi memuat
Model, Perpustakaan, Pembantu, Plugin, dan Skrip yang diperlukan dan meneruskannya
ke View.
• Tampilan akan membuat halaman dengan data yang tersedia dan meneruskannya untuk
Caching. Karena halaman yang diminta tidak di-cache sebelum jadi kali ini akan di-cache
dalam Caching, untuk memproses halaman ini dengan cepat untuk permintaan di masa
mendatang.

4.2. Struktur Direktori


Gambar yang diberikan di bawah ini menunjukkan struktur direktori CodeIgniter.

Struktur direktori CodeIgniter dibagi menjadi 3 folder yaitu : Aplikasi, Sistem, dan Panduan
pengguna.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 4


Modul Pelatihan Pemrograman Framework

4.3 Aplikasi
Seperti namanya menunjukkan folder Aplikasi berisi semua kode aplikasi Anda yang sedang
Anda bangun. Ini adalah folder tempat Anda akan mengembangkan proyek Anda. Folder
Aplikasi berisi beberapa folder lain, yang dijelaskan di bawah ini.

• Cache - Folder ini berisi semua halaman cache aplikasi Anda. Halaman yang di-cache ini
akan meningkatkan kecepatan keseluruhan untuk mengakses halaman.
• Config - Folder ini berisi berbagai file untuk mengkonfigurasi aplikasi. Dengan bantuan
file config.php, pengguna dapat mengkonfigurasi aplikasi. Menggunakan file
database.php, pengguna dapat mengkonfigurasi database aplikasi.
• Pengontrol - Folder ini menampung pengontrol aplikasi Anda. Ini adalah bagian dasar
dari aplikasi Anda.
• Inti - Folder ini akan berisi kelas dasar aplikasi Anda.
• Pembantu - Dalam folder ini, Anda dapat menempatkan kelas pembantu aplikasi Anda.
• Kait - File dalam folder ini menyediakan sarana untuk memanfaatkan dan memodifikasi
cara kerja kerangka tanpa meretas file inti.
• Bahasa - Folder ini berisi file terkait bahasa.
• Perpustakaan - Folder ini berisi file perpustakaan yang dikembangkan untuk aplikasi
Anda.
• Log - Folder ini berisi file yang terkait dengan log sistem.
• Model - Login basis data akan ditempatkan di folder ini.
• Third_party - Di folder ini, Anda dapat menempatkan plugin apa pun, yang akan
digunakan untuk aplikasi Anda.
• Tampilan - File HTML aplikasi akan ditempatkan di folder ini.

4.4. Sistem
Folder ini berisi kode inti CodeIgniter, pustaka, helper, dan file lainnya, yang membantu
memudahkan pengodean. Perpustakaan dan bantuan ini dimuat dan digunakan dalam
pengembangan aplikasi web.

Folder ini berisi semua kode CodeIgniter dari konsekuensi, disusun dalam berbagai folder.

• Inti - Folder ini berisi kelas inti CodeIgniter. Jangan modifikasi apa pun di sini. Semua
pekerjaan Anda akan berlangsung di folder aplikasi. Bahkan jika maksud Anda adalah
untuk memperpanjang inti CodeIgniter, Anda harus melakukannya dengan kait, dan kait
langsung di folder aplikasi.
• Basis data - Folder basis data berisi driver basis data inti dan utilitas basis data lainnya.
• Font - Folder font berisi informasi dan utilitas terkait font.
• Pembantu - Folder pembantu berisi pembantu CodeIgniter standar (seperti pembantu
tanggal, cookie, dan URL).
• Bahasa - Folder bahasa berisi file bahasa. Anda dapat mengabaikannya untuk saat ini.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 5


Modul Pelatihan Pemrograman Framework

• Perpustakaan - Folder perpustakaan berisi perpustakaan CodeIgniter standar (untuk


membantu Anda dengan email, kalender, unggahan file, dan banyak lagi). Anda dapat
membuat pustaka Anda sendiri atau memperluas (dan bahkan mengganti) pustaka
standar, tetapi pustaka tersebut akan disimpan dalam direktori aplikasi / pustaka untuk
memisahkannya dari pustaka CodeIgniter standar yang disimpan dalam folder khusus ini.

4.5.Panduan pengguna
Ini adalah panduan pengguna untuk CodeIgniter. Pada dasarnya, ini adalah versi offline dari
panduan pengguna di situs web CodeIgniter. Dengan menggunakan ini, seseorang dapat
mempelajari berbagai fungsi perpustakaan, pembantu dan kelas. Disarankan untuk membaca
panduan pengguna ini sebelum membangun aplikasi web pertama Anda di CodeIgniter. Di
samping ketiga folder ini, ada satu lagi file penting bernama "index.php". Dalam file ini, kita
dapat mengatur lingkungan aplikasi dan tingkat kesalahan dan kita dapat mendefinisikan
sistem dan nama folder aplikasi. Disarankan, jangan mengedit pengaturan ini jika Anda tidak
memiliki cukup pengetahuan tentang apa yang akan Anda lakukan.

5. MVC FRAMEWORK
CodeIgniter didasarkan pada pola pengembangan Model-View-Controller (MVC).
MVC adalah pendekatan perangkat lunak yang memisahkan logika aplikasi dari presentasi. Dalam
praktiknya, ini memungkinkan halaman web Anda untuk mengandung skrip minimal karena
presentasi terpisah dari skrip PHP.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 6


Modul Pelatihan Pemrograman Framework

a. Model mewakili struktur data Anda. Biasanya, kelas model Anda akan berisi fungsi yang
membantu Anda mengambil, menyisipkan, dan memperbarui informasi dalam basis data
Anda.
b. View adalah informasi yang disajikan kepada pengguna. Tampilan biasanya akan menjadi
halaman web, tetapi dalam CodeIgniter, tampilan juga bisa berupa fragmen halaman seperti
header atau footer. Ini juga bisa berupa halaman RSS, atau "halaman" jenis lainnya.
c. Controller berfungsi sebagai perantara antara Model, Tampilan, dan sumber daya lainnya yang
diperlukan untuk memproses permintaan HTTP dan menghasilkan halaman web.

6. BASIC CONCEPTS
6.1. Pengontrol
Pengontrol adalah file kelas sederhana. Seperti namanya, itu mengontrol seluruh aplikasi oleh
URI.

6.2. Membuat Pengendali


Pertama, buka folder aplikasi / pengontrol. Anda akan menemukan dua file di sana, index.html
dan Welcome.php. File-file ini datang dengan CodeIgniter.

Simpan file-file ini sebagaimana adanya. Buat file baru di bawah jalur yang sama bernama
"Test.php". Tulis kode berikut dalam file itu

<?php
class Test extends CI_Controller {

public function index() {


echo "Hello World!";
}
}
?>
Kelas Tes memperluas kelas built-in yang disebut CI_Controller. Kelas ini harus diperpanjang
setiap kali Anda ingin membuat kelas Controller Anda sendiri.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 7


Modul Pelatihan Pemrograman Framework

6.3. Memanggil Pengendali


Kontroler di atas dapat dipanggil oleh URI sebagai berikut

http://www.your-domain.com/index.php/test

Perhatikan kata "test" di URI di atas setelah index.php. Ini menunjukkan nama kelas
controller. Seperti yang telah kita beri nama controller "Test", kita menulis "test" setelah
index.php. Nama kelas harus dimulai dengan huruf besar tetapi kita harus menulis huruf kecil
ketika kita memanggil controller itu oleh URI. Sintaks umum untuk memanggil controller
adalah sebagai berikut.

http://www.your-domain.com/index.php/controller/method-name

6.4. Membuat & Memanggil Metode Konstruktor


Mari kita modifikasi kelas di atas dan buat metode lain bernama "halo".

<?php
class Test extends CI_Controller {

public function index() {


echo "This is default function.";
}

public function hello() {


echo "This is hello function.";
}
}
?>

Kita dapat menjalankan controller di atas dengan tiga cara berikut.

http://www.your-domain.com/index.php/test

http://www.your-domain.com/index.php/test/index

http://www.your-domain.com/index.php/test/hello

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 8


Modul Pelatihan Pemrograman Framework

Setelah mengunjungi URI pertama di browser, kami mendapatkan output seperti yang
ditunjukkan pada gambar di bawah ini. Seperti yang Anda lihat, kami mendapat hasil dari
metode "indeks", meskipun kami tidak memberikan nama metode URI. Kami hanya
menggunakan nama pengontrol di URI. Dalam situasi seperti itu, CodeIgniter memanggil
metode standar "indeks".

Mengunjungi URI kedua di browser, kami mendapatkan output yang sama seperti yang
ditunjukkan pada gambar di atas. Di sini, kami telah memasukkan nama metode setelah nama
pengontrol di URI. Karena nama metode ini adalah "indeks", kami mendapatkan hasil yang
sama.

Mengunjungi URI ketiga di browser, kami mendapatkan output seperti yang ditunjukkan pada
gambar di bawah ini. Seperti yang Anda lihat, kita mendapatkan output dari metode "halo"
karena kita telah melewati "halo" sebagai nama metode, setelah nama controller "test" di URI.

6.5. Poin untuk Diingat


• Nama kelas pengontrol harus dimulai dengan huruf besar.
• Pengontrol harus dipanggil dengan huruf kecil.
• Jangan menggunakan nama metode yang sama dengan kelas induk Anda, karena akan
menimpa fungsionalitas kelas induk.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 9


Modul Pelatihan Pemrograman Framework

6.6. Tampilan
Ini bisa berupa laman web sederhana atau kompleks, yang bisa dipanggil oleh pengontrol.
Halaman web dapat berisi tajuk, catatan kaki, bilah sisi dll. Tampilan tidak dapat dipanggil
secara langsung. Mari kita buat tampilan sederhana. Buat file baru di bawah aplikasi / tampilan
dengan nama "test.php" dan salin kode yang diberikan di bawah ini dalam file itu.

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

<head>
<meta charset = "utf-8">
<title>CodeIgniter View Example</title>
</head>

<body>
CodeIgniter View Example
</body>

</html>

Ubah kode file aplikasi / pengontrol / test.php seperti yang ditunjukkan di bawah ini.
Tampilan dapat dimuat oleh sintaks berikut -

$this->load->view('name');

Di mana nama adalah file tampilan, yang sedang dirender. Jika Anda berencana untuk
menyimpan file tampilan di beberapa direktori maka Anda dapat menggunakan sintaks berikut

$ this-> load-> view ('direktori-nama / nama');

Tidak perlu menentukan ekstensi sebagai php, kecuali sesuatu selain .php digunakan.

Metode index () memanggil metode view dan meneruskan "test" sebagai metode argument to
view () karena kami telah menyimpan pengkodean html dalam file "test.php" di bawah
application / views / test.php.

<?php
class Test extends CI_Controller {

public function index() {


$this->load->view('test');
}
}
?>

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 10


Modul Pelatihan Pemrograman Framework

Berikut adalah output dari kode di atas.

6.7. Model
Kelas model dirancang untuk bekerja dengan informasi dalam database. Sebagai contoh, jika
Anda menggunakan CodeIgniter untuk mengelola pengguna di aplikasi Anda, maka Anda
harus memiliki kelas model, yang berisi fungsi untuk menyisipkan, menghapus, memperbarui,
dan mengambil data pengguna Anda.

6.8. Membuat Kelas Model


Kelas model disimpan dalam direktori aplikasi / model. Kode berikut menunjukkan cara
membuat kelas model di CodeIgniter.
Di mana Model_name adalah nama kelas model yang ingin Anda berikan. Setiap kelas model
harus mewarisi kelas CI_Model CodeIgniter. Huruf pertama dari kelas model harus dalam
huruf kapital. Berikut ini adalah kode untuk kelas model pengguna.

<?php
Class Model_name extends CI_Model {

Public function __construct() {


parent::__construct();
}
}
?>
Kelas model di atas harus disimpan sebagai User_model.php. Nama kelas dan nama file harus
sama.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 11


Modul Pelatihan Pemrograman Framework

6.9. Membuat Model


Model dapat disebut di controller. Kode berikut dapat digunakan untuk membuat model apa
pun.

$ this-> load-> model ('model_name');

Di mana model_name adalah nama model yang akan dimuat. Setelah memuat model, Anda
dapat memanggil metode seperti yang ditunjukkan di bawah ini.

$ this-> model_name-> method ();

6.10. Membuat Model Otomatis


Mungkin ada situasi di mana Anda ingin beberapa kelas model di seluruh aplikasi Anda.
Dalam situasi seperti itu, lebih baik jika kita memuatnya secara otomatis.

/*
| ---------------------------------------------------------------
| Auto-Load Models
| ---------------------------------------------------------------
| Prototype:
|
| $autoload['model'] = array('first_model', 'second_model');
|
| You can also supply an alternative model name to be assigned
| in the controller:
|
| $autoload['model'] = array('first_model' => 'first');
*/
$autoload['model'] = array();
Seperti yang ditunjukkan pada gambar di atas, masukkan nama model dalam array yang
Anda ingin autoload dan itu akan dimuat secara otomatis, saat sistem dalam keadaan
inisialisasi dan dapat diakses di seluruh aplikasi.

6.11. Pembantu
Seperti namanya, ini akan membantu Anda membangun sistem Anda. Ini dibagi menjadi
beberapa fungsi kecil untuk melayani berbagai fungsi. Sejumlah pembantu tersedia di
CodeIgniter, yang tercantum dalam tabel di bawah ini. Kita juga bisa membangun pembantu
kita sendiri.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 12


Modul Pelatihan Pemrograman Framework

Pembantu biasanya disimpan di sistem / pembantu Anda, atau direktori aplikasi / pembantu.
Pembantu kustom disimpan dalam direktori aplikasi / pembantu dan pembantu sistem
disimpan di direktori sistem / pembantu. CodeIgniter akan terlihat pertama di direktori
aplikasi / pembantu Anda. Jika direktori tidak ada atau pembantu yang ditentukan tidak
ditemukan, CodeIgniter sebaliknya akan mencari di sistem global Anda / helpers / direktori.
Setiap helper, apakah itu custom atau system helper, harus dimuat sebelum
menggunakannya.

6.12. Pembantu yang sering digunakan


• Helper
Helper dapat dimuat seperti yang ditunjukkan di bawah ini.

$ this-> load-> helper ('name');

Di mana nama adalah nama pembantu. Misalnya, jika Anda ingin membuat Pembantu
URL, maka dapat dimuat sebagai berikut.

$ this-> load-> helper ('url');


• Rute
CodeIgniter memiliki sistem perutean URI yang mudah digunakan, sehingga Anda dapat
dengan mudah merutekan ulang URL. Biasanya, ada hubungan satu-ke-satu antara string
URL dan kelas / metode pengontrol yang sesuai. Segmen dalam URI biasanya mengikuti
pola berikut :
Segmen pertama mewakili kelas pengontrol yang harus dipanggil.
Segmen kedua mewakili fungsi kelas, atau metode, yang harus dipanggil.
Yang ketiga, dan setiap segmen tambahan, mewakili ID dan variabel apa pun yang akan
diteruskan ke controller.
Dalam beberapa situasi, Anda mungkin ingin mengubah mekanisme perutean default ini.
CodeIgniter menyediakan fasilitas untuk mengatur aturan perutean Anda sendiri.
• Kustomisasi Aturan Perutean
Ada file tertentu di mana Anda dapat menangani semua ini. File ini terletak di application
/ config / routes.php. Anda akan menemukan array yang disebut $ route di mana Anda
dapat menyesuaikan aturan routing Anda. Kunci dalam array $ route akan memutuskan
apa yang harus dirutekan dan nilainya akan memutuskan ke mana harus merutekan. Ada
tiga rute yang dipesan dalam CodeIgniter.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 13


Modul Pelatihan Pemrograman Framework

• S.N. Rute & Deskripsi Cadangan


i. Route ['default_controller']
Rute ini menunjukkan kelas controller mana yang harus dimuat, jika URI tidak
mengandung data, yang akan menjadi kasus ketika orang memuat URL root Anda.
Anda disarankan untuk memiliki rute default jika tidak halaman 404 akan muncul,
secara default. Kami dapat mengatur beranda situs web di sini sehingga akan dimuat
secara default.
ii. Route ['404_override']
Rute ini menunjukkan kelas controller mana yang harus dimuat jika controller yang
diminta tidak ditemukan. Ini akan menimpa halaman kesalahan 404 default. Ini tidak
akan memengaruhi fungsi show_404 (), yang akan melanjutkan memuat file
error_404.php default di aplikasi / views / errors / error_404.php.
iii. Route ['translate_uri_dashes']
Sebagaimana terbukti dengan nilai Boolean, ini bukan rute yang tepat. Opsi ini
memungkinkan Anda untuk mengganti tanda hubung (‘-‘) secara otomatis dengan
garis bawah pada pengontrol dan metode segmen URI, sehingga menghemat entri
rute tambahan jika Anda perlu melakukannya. Ini diperlukan karena tanda hubung
bukan karakter kelas atau metode-nama yang valid dan akan menyebabkan kesalahan
fatal, jika Anda mencoba menggunakannya. Rute dapat dikustomisasi dengan
wildcard atau dengan menggunakan ekspresi reguler tetapi perlu diingat bahwa
aturan kustom ini untuk perutean harus datang setelah aturan yang dipesan.
• Wildcard
Kita dapat menggunakan dua karakter wildcard seperti yang dijelaskan di bawah ini.

(: num) - Ini akan cocok dengan segmen yang hanya berisi angka.
(: any) - Ini akan cocok dengan segmen yang mengandung karakter apa pun.

Contoh :
$ route ['product /: num'] = 'catalog / product_lookup';

Dalam contoh di atas, jika kata literal "produk" ditemukan di segmen pertama URL, dan
angka ditemukan di segmen kedua, kelas "katalog" dan metode "product_lookup"
digunakan sebagai gantinya.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 14


Modul Pelatihan Pemrograman Framework

• Ekspresi Reguler
Seperti wildcard, kita juga bisa menggunakan ekspresi reguler di bagian kunci $ array
route. Jika ada URI yang cocok dengan ekspresi reguler, maka akan dialihkan ke bagian
nilai yang diatur ke dalam array $ route.
Contoh :

$ route ['products / ([a-z] +) / (\ d +)'] = '$ 1 / id_ $ 2';

Dalam contoh di atas, URI yang mirip dengan produk / sepatu / 123 akan memanggil
kelas pengontrol "shoes" dan metode "id_123".

7. Configuration
7.1. Mengkonfigurasi URL
URL dasar situs dapat dikonfigurasi dalam file application / config / config.php. Ini adalah
URL ke root CodeIgniter Anda. Biasanya, ini akan menjadi URL dasar Anda, dengan garis
miring. Bisa dibuka pada http://example.com/
Jika ini tidak disetel, maka CodeIgniter akan mencoba menerka protokol, domain dan jalur
untuk instalasi Anda. Namun, Anda harus selalu mengonfigurasi ini secara eksplisit dan tidak
pernah mengandalkan autoguessing, terutama di lingkungan produksi. Anda dapat
mengonfigurasi URL dasar dalam array $ config dengan kunci “base_url” seperti yang
ditunjukkan di bawah ini :
$ config ['base_url'] = 'http://your-domain.com';

7.2. Konfigurasi Basis Data


Basis data situs dapat dikonfigurasi dalam file application / config / database.php. Seringkali
kita perlu mengatur basis data untuk lingkungan yang berbeda seperti pengembangan dan
produksi. Dengan array multidimensi yang disediakan di CodeIgniter, kita dapat mengatur
database untuk lingkungan yang berbeda. Pengaturan konfigurasi disimpan dalam array
seperti yang ditunjukkan di bawah ini :

$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database_name',

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 15


Modul Pelatihan Pemrograman Framework

'dbdriver' => 'mysqli',


'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array()
);

Anda dapat meninggalkan beberapa opsi ke nilai defaultnya kecuali nama host, nama
pengguna, kata sandi, basis data, dan driver.
• hostname - Tentukan lokasi basis data Anda di sini mis. Localhost atau alamat IP
• nama pengguna - Tetapkan nama pengguna dari basis data Anda di sini.
• kata sandi - Tetapkan kata sandi basis data Anda di sini.
• database - Tetapkan nama database di sini.
• dbdriver - Tetapkan jenis basis data yang Anda gunakan mis. MySQL, MySQLi, Postgre
SQL, ODBC, dan MS SQL.

Dengan mengubah kunci array $ db, Anda dapat mengatur konfigurasi database lainnya
seperti yang ditunjukkan di bawah ini. Di sini, kami telah menetapkan kunci untuk ‘pengujian’
untuk menetapkan basis data untuk lingkungan pengujian, dengan menjaga lingkungan basis
data lainnya sebagaimana adanya.

$db['test'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database_name',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 16


Modul Pelatihan Pemrograman Framework

'swap_pre' => '',


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

Anda cukup beralih ke lingkungan yang berbeda dengan mengubah nilai variabel seperti yang
ditunjukkan di bawah ini -

$ active_group = ‘default’; // Ini akan mengatur lingkungan default

$ active_group = ‘test’; // Ini akan mengatur lingkungan pengujian

7.3. Konfigurasi Pengisian Otomatis


File ini menentukan, secara default, sistem mana yang harus dimuat. Untuk menjaga kerangka
kerja seringan mungkin, hanya sumber daya minimal absolut yang dimuat secara default.
Seseorang harus secara otomatis memuat sistem yang sering digunakan, daripada memuatnya
di tingkat lokal, berulang kali. Berikut ini adalah hal-hal yang dapat Anda muat secara
otomatis.
• Perpustakaan - Ini adalah daftar perpustakaan, yang harus dimuat secara otomatis.
Berikan daftar pustaka dalam array seperti yang ditunjukkan di bawah ini untuk dimuat
secara otomatis oleh CodeIgniter. Dalam contoh ini, kami memuat pustaka, email, dan
pustaka sesi secara otomatis.
$ autoload ['libraries'] = array ('database', 'email', 'session');

• Driver - Kelas-kelas ini terletak di system / libraries / atau dalam direktori aplikasi /
libraries / Anda, tetapi juga ditempatkan di dalam subdirektori mereka sendiri dan mereka
memperluas kelas CI_Driver_Library. Mereka menawarkan beberapa opsi driver yang
dapat ditukar. Berikut ini adalah contoh untuk memuat driver cache secara otomatis.
• File pembantu - Ini adalah daftar file pembantu, untuk dimuat secara otomatis. Berikan
daftar pustaka dalam array, seperti yang ditunjukkan di bawah ini, untuk dimuat secara
otomatis oleh CodeIgniter. Dalam contoh yang diberikan, kami autoloading URL dan file
helper.
$ autoload ['helper'] = array ('url', 'file');

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 17


Modul Pelatihan Pemrograman Framework

• File konfigurasi khusus - File ini dimaksudkan untuk digunakan, hanya jika Anda telah
membuat file konfigurasi khusus. Jika tidak, biarkan kosong. Berikut ini adalah contoh
cara memuat ulang otomatis lebih dari satu file konfigurasi.
$ autoload ['config'] = array ('config1', 'config2');

• File bahasa - Ini adalah daftar file bahasa, yang seharusnya dimuat secara otomatis.
Lihatlah contoh yang diberikan di bawah ini. Berikan daftar bahasa dalam array seperti
yang ditunjukkan di bawah ini untuk dimuat secara otomatis oleh CodeIgniter. Ingatlah
bahwa tidak termasuk bagian "_lang" dari file Anda. Misalnya, "codeigniter_lang.php"
akan dirujuk sebagai array ('codeigniter');
• Model - Ini adalah daftar file model, yang harus dimuat secara otomatis. Berikan daftar
model dalam array seperti yang ditunjukkan di bawah ini untuk dimuat secara otomatis
oleh CodeIgniter. Berikut ini adalah contoh cara memuat secara otomatis lebih dari satu
model file.

$autoload['model'] = array('first_model', 'second_model');

8. Working With Database


8.1. Menghubungkan ke Database
Kita dapat terhubung ke database dengan dua cara berikut.
• Penghubung Otomatis - Koneksi otomatis dapat dilakukan dengan menggunakan aplikasi
file / config / autoload.php. Koneksi otomatis akan memuat basis data untuk setiap
halaman. Kami hanya perlu menambahkan perpustakaan database seperti yang
ditunjukkan di bawah ini -

$ autoload ['libraries'] = array (‘database’);

• Penghubung Manual - Jika Anda ingin konektivitas basis data hanya untuk beberapa
halaman, maka kita bisa menggunakan penghubung manual. Kita dapat terhubung ke
database secara manual dengan menambahkan baris berikut di kelas mana pun.

$ this-> load-> database ();

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 18


Modul Pelatihan Pemrograman Framework

8.2. Memasukkan Catatan


Untuk menyisipkan catatan dalam database, fungsi insert () digunakan seperti yang
ditunjukkan dibawah ini.

Contoh berikut menunjukkan cara memasukkan catatan di tabel stud. $ Data adalah array di
mana kita telah menetapkan data dan untuk memasukkan data ini ke induk tabel, kita hanya
perlu meneruskan array ini ke fungsi insert dalam table kedua

$data = array(
'roll_no' => ‘1’,
'name' => ‘Virat’
);

$this->db->insert("stud", $data);

8.3.Memperbarui Catatan
Untuk memperbarui catatan dalam database, fungsi pembaruan () digunakan bersama dengan
fungsi set () dan where () seperti yang ditunjukkan pada tabel di bawah ini. Fungsi set () akan
mengatur data yang akan diperbarui.

set($key[, $value = ''[, $escape = NULL]])


Syntax

• $key (mixed) − Field name, or an array of field/value pairs


Parameters
• $value (string) − Field value, if $key is a single field

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 19


Modul Pelatihan Pemrograman Framework

• $escape (bool) − Whether to escape values and identifiers

CI_DB_query_builder instance (method chaining)


Returns

CI_DB_query_builder
Return Type

Fungsi where () akan memutuskan record mana yang akan diperbarui.

where($key[, $value = NULL[, $escape = NULL]])


Syntax

• $key (mixed) − Name of field to compare, or associative array


Parameters • $value (mixed) − If a single key, compared to this value
• $escape (bool) − Whether to escape values and identifiers

DB_query_builder instance
Returns

Object
Return Type

Terakhir , fungsi update () akan memperbarui data dalam database.

update([$table = ''[, $set = NULL[, $where = NULL[, $limit = NULL]]]])


Syntax

• $table (string) − Table name


• $set (array) − An associative array of field/value pairs
Parameters
• $where (string) − The WHERE clause
• $limit (int) − The LIMIT clause

TRUE on success, FALSE on failure


Returns

Bool
Return Type

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 20


Modul Pelatihan Pemrograman Framework

$data = array(
'roll_no' => ‘1’,
'name' => ‘Virat’
);

$this->db->set($data);
$this->db->where("roll_no", ‘1’);
$this->db->update("stud", $data);

8.4. Menghapus Rekaman


Untuk menghapus catatan dalam database, fungsi delete () digunakan seperti yang ditunjukkan
pada tabel berikut.
delete([$table = ''[, $where = ''[, $limit = NULL[, $reset_data = TRUE]]]])
Syntax

• $table (mixed) − The table(s) to delete from; string or array


• $where (string) − The WHERE clause
Parameters
• $limit (int) − The LIMIT clause
• $reset_data (bool) − TRUE to reset the query “write” clause

CI_DB_query_builder instance (method chaining) or FALSE on failure


Returns

Mixed
Return Type

Gunakan kode berikut untuk menghapus catatan di tabel stud. Argumen pertama menunjukkan
nama tabel untuk menghapus catatan dan argumen kedua memutuskan catatan mana yang
akan dihapus.

$ this-> db-> delete ("stud", "roll_no = 1");

8.5. Memilih Catatan


Untuk memilih catatan dalam database, fungsi get digunakan, seperti yang ditunjukkan pada
tabel berikut :
Gunakan kode berikut untuk mendapatkan semua catatan dari database. Pernyataan pertama
mengambil semua catatan dari tabel "stud" dan mengembalikan objek, yang akan disimpan
dalam objek $ query. Pernyataan kedua memanggil fungsi result () dengan objek $ query untuk
mendapatkan semua record sebagai array.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 21


Modul Pelatihan Pemrograman Framework

$ query = $ this-> db-> get ("stud");


$ data ['records'] = $ query-> result ();

8.6. Menutup Koneksi


Koneksi basis data dapat ditutup secara manual, dengan mengeksekusi kode berikut
$ this-> db-> close ();

Contoh
Buat kelas controller yang disebut Stud_controller.php dan simpan di application / controller
/ Stud_controller.php
Berikut adalah contoh lengkap, di mana semua operasi yang disebutkan di atas dilakukan.
Sebelum menjalankan contoh berikut, buat database dan tabel seperti yang diperintahkan pada
awal bab ini dan buat perubahan yang diperlukan dalam file konfigurasi database yang
disimpan di application / config / database.php

<?php
class Stud_controller extends CI_Controller {

function __construct() {
parent::__construct();
$this->load->helper('url');
$this->load->database();
}

public function index() {


$query = $this->db->get("stud");
$data['records'] = $query->result();

$this->load->helper('url');
$this->load->view('Stud_view',$data);
}

public function add_student_view() {


$this->load->helper('form');
$this->load->view('Stud_add');
}

public function add_student() {


$this->load->model('Stud_Model');

$data = array(
'roll_no' => $this->input->post('roll_no'),
'name' => $this->input->post('name')

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 22


Modul Pelatihan Pemrograman Framework

);

$this->Stud_Model->insert($data);

$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}

public function update_student_view() {


$this->load->helper('form');
$roll_no = $this->uri->segment('3');
$query = $this->db-
>get_where("stud",array("roll_no"=>$roll_no));
$data['records'] = $query->result();
$data['old_roll_no'] = $roll_no;
$this->load->view('Stud_edit',$data);
}

public function update_student(){


$this->load->model('Stud_Model');

$data = array(
'roll_no' => $this->input->post('roll_no'),
'name' => $this->input->post('name')
);

$old_roll_no = $this->input->post('old_roll_no');
$this->Stud_Model->update($data,$old_roll_no);

$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}

public function delete_student() {


$this->load->model('Stud_Model');
$roll_no = $this->uri->segment('3');
$this->Stud_Model->delete($roll_no);

$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}
}
?>

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 23


Modul Pelatihan Pemrograman Framework

Buat kelas model yang disebut Stud_Model.php dan simpan di aplikasi / models /
Stud_Model.php

<?php
class Stud_Model extends CI_Model {

function __construct() {
parent::__construct();
}

public function insert($data) {


if ($this->db->insert("stud", $data)) {
return true;
}
}

public function delete($roll_no) {


if ($this->db->delete("stud", "roll_no = ".$roll_no)) {
return true;
}
}

public function update($data,$old_roll_no) {


$this->db->set($data);
$this->db->where("roll_no", $old_roll_no);
$this->db->update("stud", $data);
}
}
?>

Buat file tampilan bernama Stud_add.php dan simpan dalam aplikasi / views
/ Stud_add.php

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

<head>
<meta charset = "utf-8">
<title>Students Example</title>
</head>
<body>
<?php
echo form_open('Stud_controller/add_student');
echo form_label('Roll No.');
echo
form_input(array('id'=>'roll_no','name'=>'roll_no'));

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 24


Modul Pelatihan Pemrograman Framework

echo "<br/>";

echo form_label('Name');
echo form_input(array('id'=>'name','name'=>'name'));
echo "<br/>";

echo form_submit(array('id'=>'submit','value'=>'Add'));
echo form_close();
?>
</body>
</html>

Buat file tampilan bernama Stud_edit.php dan simpan di aplikasi / views /


Stud_edit.php

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

<head>
<meta charset = "utf-8">
<title>Students Example</title>
</head>

<body>
<form method = "" action = "">

<?php
echo form_open('Stud_controller/update_student');
echo form_hidden('old_roll_no',$old_roll_no);
echo form_label('Roll No.');
echo form_input(array('id'⇒'roll_no',
'name'⇒'roll_no','value'⇒$records[0]→roll_no));
echo "
";

echo form_label('Name');
echo form_input(array('id'⇒'name','name'⇒'name',
'value'⇒$records[0]→name));
echo "
";
echo form_submit(array('id'⇒'sub
mit','value'⇒'Edit'));
echo form_close();
?>

</form>
</body>
</html>

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 25


Modul Pelatihan Pemrograman Framework

Buat file tampilan bernama Stud_view.php dan simpan di aplikasi / views / Stud_view.php

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

<head>
<meta charset = "utf-8">
<title>Students Example</title>
</head>

<body>
<a href = "<?php echo base_url(); ?>
index.php/stud/add_view">Add</a>

<table border = "1">


<?php
$i = 1;
echo "<tr>";
echo "<td>Sr#</td>";
echo "<td>Roll No.</td>";
echo "<td>Name</td>";
echo "<td>Edit</td>";
echo "<td>Delete</td>";
echo "<tr>";

foreach($records as $r) {
echo "<tr>";
echo "<td>".$i++."</td>";
echo "<td>".$r->roll_no."</td>";
echo "<td>".$r->name."</td>";
echo "<td><a href =
'".base_url()."index.php/stud/edit/"
.$r->roll_no."'>Edit</a></td>";
echo "<td><a href =
'".base_url()."index.php/stud/delete/"
.$r->roll_no."'>Delete</a></td>";
echo "<tr>";
}
?>
</table>
</body>

</html>
Buat perubahan berikut pada file rute di application / config / routes.php dan tambahkan baris berikut
di akhir file.

$route['stud'] = "Stud_controller";

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 26


Modul Pelatihan Pemrograman Framework

$route['stud/add'] = 'Stud_controller/add_student';
$route['stud/add_view']='Stud_controller/add_student_view';
$route['stud/edit/(\d+)'] =
'Stud_controller/update_student_view/$1';
$route['stud/delete/(\d+)'] =
'Stud_controller/delete_student/$1';

Sekarang, mari kita jalankan contoh ini dengan mengunjungi URL berikut di browser. Ganti
yoursite.com dengan URL Anda.

http://yoursite.com/index.php/stud

9. Libraries
Bagian penting dari kerangka kerja CodeIgniter adalah perpustakaan. Ini menyediakan
serangkaian perpustakaan yang kaya, yang secara tidak langsung meningkatkan kecepatan
pengembangan aplikasi. Pustaka sistem terletak di sistem / pustaka. Yang perlu kita lakukan adalah
memuat pustaka yang ingin kita gunakan. Perpustakaan dapat dimuat seperti yang ditunjukkan di
bawah ini.

$ this-> load-> perpustakaan ('nama kelas');

Di mana nama kelas adalah nama perpustakaan yang ingin kita muat. Jika kita ingin
memuat beberapa pustaka, maka kita cukup meneruskan sebuah array sebagai fungsi argumen ke
pustaka () seperti yang ditunjukkan di bawah ini.

$ this-> load-> library (array ('email', 'table'));

9.1. Kelas Perpustakaan


Kelas perpustakaan terletak di sistem / perpustakaan. Setiap kelas memiliki berbagai fungsi
untuk menyederhanakan pekerjaan yang sedang dikerjakan. Tabel berikut ini memperlihatkan
nama-nama kelas perpustakaan dan deskripsinya. di bawah ini adalah Kelas Perpustakaan
yang paling umum digunakan.

9.2. Membuat Perpustakaan


CodeIgniter memiliki banyak pustaka, yang dapat Anda temukan di folder sistem / pustaka
tetapi CodeIgniter tidak hanya terbatas pada pustaka sistem, Anda juga dapat membuat
pustaka Anda sendiri, yang dapat disimpan di folder aplikasi / pustaka. Anda dapat membuat
perpustakaan dengan tiga cara.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 27


Modul Pelatihan Pemrograman Framework

• Buat perpustakaan baru


• Perpanjang perpustakaan asli
• Ganti perpustakaan asli
• Buat Perpustakaan Baru
Sementara membuat perpustakaan baru yang harus diingat, hal-hal berikut -

• Nama file harus dimulai dengan huruf kapital mis. Mylibrary.php


• Nama kelas harus dimulai dengan huruf kapital, mis. kelas Mylibrary
• Nama kelas dan nama file harus cocok.

Mylibrary.php

?php if ( ! defined('BASEPATH')) exit('No direct script access


allowed');

class Mylibrary {

public function some_function() {


}
}

/* End of file Mylibrary.php */

Pustaka di atas dapat dimuat dengan hanya menjalankan baris berikut di controller Anda.

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

mylibrary adalah nama perpustakaan Anda dan Anda dapat menulisnya dalam huruf kecil
maupun huruf besar. Gunakan nama perpustakaan tanpa ekstensi ".php". Setelah memuat
perpustakaan, Anda juga dapat memanggil fungsi kelas itu seperti yang ditunjukkan di bawah
ini.

$ this-> mylibrary-> some_function ();

9.3. Perpanjang Native Library


Terkadang, Anda mungkin perlu menambahkan fungsionalitas Anda sendiri ke perpustakaan
yang disediakan oleh CodeIgniter. CodeIgniter menyediakan fasilitas dimana Anda dapat
memperluas perpustakaan asli dan menambahkan fungsi Anda sendiri. Untuk mencapai ini,
Anda harus memperluas kelas kelas perpustakaan asli. Misalnya jika Anda ingin memperluas
perpustakaan Email maka itu dapat dilakukan seperti yang ditunjukkan di bawah ini -

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 28


Modul Pelatihan Pemrograman Framework

Kelas MY_Email meluas CI_Email {

Di sini, dalam contoh di atas, kelas MY_Email memperluas kelas email perpustakaan asli
CI_Email. Perpustakaan ini dapat dimuat dengan cara standar memuat perpustakaan email.
Simpan kode di atas dalam file My_Email.php

9.4. Ganti Perpustakaan Asli


Dalam beberapa situasi, Anda tidak ingin menggunakan perpustakaan asli cara kerjanya dan
ingin menggantinya dengan cara Anda sendiri. Ini bisa dilakukan dengan mengganti
perpustakaan asli. Untuk mencapai ini, Anda hanya perlu memberikan nama kelas yang sama
dengan yang disebutkan di pustaka asli. Misalnya, jika Anda ingin mengganti kelas Email,
maka gunakan kode seperti yang ditunjukkan di bawah ini. Simpan nama file Anda dengan
Email.php dan berikan nama kelas ke CI_Email

Class CI_Email {

10. Error Handling

Sering kali, saat menggunakan aplikasi, kami menemukan kesalahan. Sangat mengganggu
bagi pengguna jika kesalahan tidak ditangani dengan benar. CodeIgniter menyediakan mekanisme
penanganan kesalahan yang mudah.
Lingkungan aplikasi Anda dapat diubah, dengan mengubah baris yang diberikan di bawah
ini dari file index.php. Ini dapat diatur untuk apa pun tetapi biasanya ada tiga nilai (pengembangan,
pengujian, produksi) yang digunakan untuk tujuan ini.

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


'development');

Lingkungan yang berbeda akan memerlukan tingkat kesalahan yang berbeda. Secara
default, mode pengembangan akan menampilkan kesalahan dan pengujian dan mode langsung
akan menyembunyikannya. CodeIgniter menyediakan tiga fungsi seperti yang ditunjukkan di
bawah ini untuk menangani kesalahan.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 29


Modul Pelatihan Pemrograman Framework

fungsi show_error () menampilkan kesalahan dalam format HTML di bagian atas layar.

show_error($message, $status_code, $heading = 'An Error Was


Syntax
Encountered')

• $message (mixed) − Error message

Parameters • $status_code (int) − HTTP Response status code

• $heading (string) − Error page heading

Mixed
Return Type

• fungsi show_404 () menampilkan kesalahan jika Anda mencoba mengakses


halaman yang tidak ada.

show_404($page = '', $log_error = TRUE)


Syntax

• $page (string) – URI string


Parameters
• $log_error (bool) – Whether to log the error

Return Type Void

log_message() fungsi digunakan untuk menulis pesan log. Ini berguna ketika
Anda ingin menulis pesan khusus.

Syntax log_message($level, $message, $php_error = FALSE)

• $level (string) − Log level: ‘error’, ‘debug’ or ‘info’


Parameters
• $message (string) − Message to log

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 30


Modul Pelatihan Pemrograman Framework

• $php_error (bool) − Whether we’re logging a native PHP


error message

Void
Return Type

Logging dapat diaktifkan di file application / config / config.php. Diberikan di bawah ini adalah tangkapan
layar file config.php, di mana Anda dapat menetapkan nilai yang belum pasti.

/*

|--------------------------------------------------------------------------------

| Error Logging Threshold

|--------------------------------------------------------------------------------

| You can enable error logging by setting a threshold over zero. The

| threshold determines what gets logged. Threshold options are:

| 0 = Disable logging, Error logging TURNED OFF

| 1 = Error Message (including PHP errors)

| 2 = Debug Message

| 3 = Informational Messages

| 4 = All Messages

| You can also pass an array with threshold levels to show individual error types

| array(2) = Debug Message, without Error Messages

| For a live site you'll usually only enable Errors (1) to be logged otherwise

| your log files will fill up very fast.

*/

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 31


Modul Pelatihan Pemrograman Framework

$config['log_threshold'] = 0;

Anda dapat menemukan pesan log di aplikasi / log /. Pastikan direktori ini dapat ditulis sebelum
Anda mengaktifkan file log.

Berbagai templat untuk pesan kesalahan dapat ditemukan di aplikasi / tampilan / kesalahan / cli
atau aplikasi / tampilan / kesalahan / html.

11. FILE UPLOADING


Menggunakan kelas Mengunggah File, kita dapat mengunggah file dan kita juga bisa
membatasi jenis dan ukuran file yang akan diunggah. Ikuti langkah-langkah yang ditunjukkan pada
contoh yang diberikan untuk memahami proses pengunggahan file di CodeIgniter.

Contoh:
Salin kode berikut dan simpan di aplikasi / view / Upload_form.php.

<html>

<head>

<title>Upload Form</title>

</head>

<body>

<?php echo $error;?>

<?php echo form_open_multipart('upload/do_upload');?>

<form action = "" method = "">

<input type = "file" name = "userfile" size = "20" />

<br /><br />

<input type = "submit" value = "upload" />

</form>

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 32


Modul Pelatihan Pemrograman Framework

</body>

</html>

Salin kode yang diberikan di bawah ini dan simpan di


application/view/Upload_success.php

<html>

<head>

<title>Upload Form</title>

</head>

<body>

<h3>Your file was successfully uploaded!</h3>

<ul>

<?phpforeach ($upload_data as $item => $value):?>

<li><?php echo $item;?>: <?php echo $value;?></li>

<?phpendforeach; ?>

</ul>

<p><?php echo anchor('upload', 'Upload Another File!'); ?></p>

</body>

</html>

Salin kode yang diberikan di bawah ini dan simpan di aplikasi / controllers / Upload.php. Buat
folder "unggah" di root CodeIgniter yaitu di direktori induk folder aplikasi.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 33


Modul Pelatihan Pemrograman Framework

<?php

class Upload extends CI_Controller {

public function __construct() {

parent::__construct();

$this->load->helper(array('form', 'url'));

public function index() {

$this->load->view('upload_form', array('error' => ' ' ));

public function do_upload() {

$config['upload_path'] = './uploads/';

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

$config['max_size'] = 100;

$config['max_width'] = 1024;

$config['max_height'] = 768;

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

if ( ! $this->upload->do_upload('userfile')) {

$error = array('error' => $this->upload->display_errors());

$this->load->view('upload_form', $error);

else {

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 34


Modul Pelatihan Pemrograman Framework

$data = array('upload_data' => $this->upload->data());

$this->load->view('upload_success', $data);

?>

Buat perubahan berikut pada file rute di aplikasi / config / routes.php dan tambahkan baris berikut
di akhir file.
$route['upload'] = 'Upload';

Sekarang mari kita jalankan contoh ini dengan mengunjungi URL berikut di browser. Ganti
yoursite.com dengan URL Anda.
http://yoursite.com/index.php/upload

Maka hasilnya akan seperti dibawah ini:

Setelah berhasil mengunggah file, Anda akan melihat layar berikut -

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 35


Modul Pelatihan Pemrograman Framework

12. SENDING EMAIL

Mengirim email di CodeIgniter jauh lebih mudah. Anda juga mengonfigurasi preferensi
mengenai email di CodeIgniter. Berbagai Protokol - Mail, Sendmail, dan SMTP.
12.1. Fitur fitur mengirim email :
• Enkripsi TLS dan SSL untuk SMTP
• Banyak penerima
• CC dan BCC
• Email HTML atau Plaintext
• Lampiran
• Pembungkus kata
• Prioritas
• Batch BCC Mode, memungkinkan daftar email besar untuk dipecah menjadi batch BCC
kecil.
• Email Alat debugging

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 36


S.N. Syntax Parameters Return Return
Type
Modul Pelatihan Pemrograman Framework

1 from($from[, $name = $from (string) − “From” e- CI_Email CI_Email


''[, $return_path = instance
mail address
NULL]]) (method
$name (string) − “From” chaining)
display name

$return_path (string) −
Optional email address to
redirect undelivered e-mail
to

2 reply_to($replyto[, $name $replyto (string) − E-mail CI_Email CI_Email


= '']) instance
address for replies
(method
$name (string) − Display chaining)
name for the reply-to e-mail
address

2 to($to) $to (mixed) − Comma- CI_Email CI_Email


instance
delimited string or an array
(method
of e-mail addresses
chaining)

3 cc($cc) $cc (mixed) − Comma- CI_Email CI_Email


instance
delimited string or an array
(method
of e-mail addresses
chaining)

4 bcc($bcc[, $limit = '']) $bcc (mixed) − Comma- CI_Email CI_Email


instance
delimited string or an array
(method
of e-mail addresses chaining)
$limit (int) − Maximum
number of e-mails to send
per batch

5 subject($subject) $subject (string) − E-mail CI_Email CI_Email


instance
subject line

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 37


Modul Pelatihan Pemrograman Framework

(method
chaining)

6 message($body) $body (string) − E-mail CI_Email CI_Email


instance
message body
(method
chaining)

7 set_alt_message($str) $str (string) − Alternative CI_Email CI_Email


instance
e-mail message body
(method
chaining)

8 set_header($header, $header (string) − Header CI_Email CI_Email


$value) instance
name
(method
$value (string) − Header chaining)
value

9 clear([$clear_attachments $clear_attachments(bool) CI_Email CI_Email


= FALSE]) instance
– Whether or not to clear
(method
attachments chaining)

10 send([$auto_clear = $auto_clear (bool) − CI_Email CI_Email


TRUE]) instance
Whether to clear message
(method
data automatically chaining)

11 attach($filename[, $filename (string) − File CI_Email CI_Email


$disposition = ''[, instance
name
$newname = NULL[, (method
$mime = '']]]) $disposition (string) − chaining)
‘disposition’ of the
attachment. Most email
clients make their own
decision regardless of the

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 38


Modul Pelatihan Pemrograman Framework

MIME specification used


here. iana

$newname (string) −
Custom file name to use in
the e-mail

$mime (string) − MIME


type to use (useful for
buffered data)

12 attachment_cid($filename) $filename (string) − Attachment string


Content-ID
Existing attachment
or FALSE if
filename not found

Kelas email memiliki fungsi-fungsi berikut untuk menyederhanakan pekerjaan pengiriman


email.

12.2. Mengirim Email


Untuk mengirim email menggunakan CodeIgniter, Anda harus memuat pustaka email
menggunakan yang berikut :

$this->load->library('email');

Setelah memuat pustaka, cukup jalankan fungsi berikut untuk mengatur elemen yang
diperlukan untuk mengirim email. Fungsi from () digunakan untuk mengatur - dari mana
email dikirim dan ke () function digunakan - kepada siapa email itu dikirim. Fungsi subjek
() dan pesan () digunakan untuk mengatur subjek dan pesan email.

$this->email->from('[email protected]', 'Your Name');

$this->email->to('[email protected]');

$this->email->subject('Email Test');$this->email->message('Testing the email class.');

Setelah itu, jalankan fungsi send () seperti yang ditunjukkan di bawah ini untuk mengirim email.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 39


Modul Pelatihan Pemrograman Framework

$this->email->send();

Contoh :
Buat file controller Email_controller.php dan simpan di aplikasi / controller /
Email_controller.php.

<?php

class Email_controller extends CI_Controller {

function __construct() {

parent::__construct();

$this->load->library('session');

$this->load->helper('form');

public function index() {

$this->load->helper('form');

$this->load->view('email_form');

public function send_mail() {

$from_email = "[email protected]";

$to_email = $this->input->post('email');

//Load email library

$this->load->library('email');

$this->email->from($from_email, 'Your Name');

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 40


Modul Pelatihan Pemrograman Framework

$this->email->to($to_email);

$this->email->subject('Email Test');

$this->email->message('Testing the email class.');

//Send mail

if($this->email->send())

$this->session->set_flashdata("email_sent","Email sent successfully.");

else

$this->session->set_flashdata("email_sent","Error in sending Email.");

$this->load->view('email_form');

?>

Buat file tampilan bernama email_form.php dan simpan di aplikasi / views / email_form.php

<!DOCTYPE html>

<html lang = "en">

<head>

<meta charset = "utf-8">

<title>CodeIgniter Email Example</title>

</head>

<body>

<?php

echo $this->session->flashdata('email_sent');

echo form_open('/Email_controller/send_mail');

?>

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 41


Modul Pelatihan Pemrograman Framework

<input type = "email" name = "email" required />

<input type = "submit" value = "SEND MAIL">

<?php

echo form_close();

?>

</body>

</html>

Buat perubahan pada file routes.php dalam aplikasi / config / routes.php dan tambahkan baris
berikut di akhir file.
$route['email'] = 'Email_Controller';

Jalankan contoh di atas dengan mengunjungi tautan berikut. Ganti yoursite.com dengan URL situs
Anda.
http://yoursite.com/index.php/email

13. FORM VALIDATION


Validasi adalah proses penting saat membangun aplikasi web. Untuk memastikan bahwa
data yang kita peroleh adalah layak dan valid untuk disimpan atau diproses. CodeIgniter telah
membuatnya menjadi sangat mudah. Mari kita memahami proses ini dengan contoh sederhana.

Contoh:
Buat file view myform.php dan simpan kode di bawah ini di application / views / myform.php.
Halaman ini akan menampilkan formulir di mana pengguna dapat mengirimkan namanya dan kami
akan memvalidasi halaman ini untuk memastikan bahwa itu tidak boleh kosong saat mengirimkan.

<html>

<head>

<title>My Form</title>

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 42


Modul Pelatihan Pemrograman Framework

</head>

<body>

<form action = "" method = "">

<?php echo validation_errors(); ?>

<?php echo form_open('form'); ?>

<h5>Name</h5>

<input type = "text" name = "name" value = "" size = "50" />

<div><input type = "submit" value = "Submit" /></div>

</form>

</body>

</html>

Buat file tampilan formuccess.php dan simpan di aplikasi / views / formuccess.php. Halaman ini
akan ditampilkan jika formulir berhasil divalidasi.

<html>

<head>

<title>My Form</title>

</head>

<body>

<h3>Your form was successfully submitted!</h3>

<p><?php echo anchor('form', 'Try it again!'); ?></p>

</body>

</html>

Buat file controller Form.php dan simpan di application / controller / Form.php. Formulir
ini akan, menunjukkan kesalahan jika tidak divalidasi dengan benar atau dialihkan ke halaman
formuccess.php.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 43


Modul Pelatihan Pemrograman Framework

<?php

class Form extends CI_Controller {

public function index() {

/* Load form helper */

$this->load->helper(array('form'));

/* Load form validation library */

$this->load->library('form_validation');

/* Set validation rule for name field in the form */

$this->form_validation->set_rules('name', 'Name', 'required');

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

$this->load->view('myform');

else {

$this->load->view('formsuccess');

?>

Tambahkan baris berikut di application / config / routes.php.


$route['validation'] = 'Form';

Mari kita jalankan contoh ini dengan mengunjungi URL berikut di browser. URL ini
mungkin berbeda berdasarkan situs Anda.
http://yoursite.com/index.php/validation

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 44


Modul Pelatihan Pemrograman Framework

Hasilnya seperti dibawah ini:

Kami telah menambahkan validasi di controller - Kolom wajib diisi sebelum


mengirimkan formulir. Jadi, jika Anda mengklik tombol kirim tanpa memasukkan apa pun di
bidang nama, maka Anda akan diminta untuk memasukkan nama sebelum mengirimkan seperti
yang ditunjukkan pada layar di bawah ini.

Setelah memasukkan nama dengan sukses, Anda akan diarahkan ke layar seperti yang ditunjukkan
di bawah ini.

Dalam contoh di atas, kami telah menggunakan pengaturan aturan yang diperlukan. Ada banyak
aturan yang tersedia di CodeIgniter.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 45


Modul Pelatihan Pemrograman Framework

14. SESSION MANAGEMENT


14.1. Menginisialisasi Sesi
Data sesi tersedia secara global melalui situs ini tetapi untuk menggunakan data itu, pertama-
tama kita perlu menginisialisasi sesi. Kita dapat melakukannya dengan mengeksekusi baris
berikut dalam konstruktor.
$this->load->library('session');

Setelah memuat pustaka , Anda cukup menggunakan objek sesi seperti yang ditunjukkan di bawah
ini.
$this->session

14.2. Tambahkan Data Sesi


Dalam PHP, kami cukup menggunakan array $ _SESSION untuk mengatur data apa pun
dalam sesi seperti yang ditunjukkan di bawah ini.
$_SESSION[‘key’] = value;

Di mana ‘kunci’ adalah kunci larik dan nilai diberikan di sisi kanan sama dengan tanda.
Hal yang sama dapat dilakukan di CodeIgniter seperti yang ditunjukkan di bawah ini.
$this->session->set_userdata('some_name', 'some_value');

• fungsi set_userdata () membutuhkan dua argumen. Argumen pertama, some_name,


adalah nama variabel sesi, di mana, some_value akan disimpan.
• fungsi set_userdata () juga mendukung sintaks lain di mana Anda dapat meneruskan larik
untuk menyimpan nilai seperti yang ditunjukkan di bawah ini.

$newdata = array(

'username' => 'johndoe',

'email' => '[email protected]',

'logged_in' => TRUE

);

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

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 46


Modul Pelatihan Pemrograman Framework

14.3. Hapus Data Sesi


Di PHP, kita dapat menghapus data yang disimpan dalam sesi menggunakan fungsi unset ()
seperti yang ditunjukkan di bawah ini.
unset($_SESSION[‘some_name’]);

Menghapus data sesi di CodeIgniter sangat sederhana seperti yang ditunjukkan di bawah
ini. Versi fungsi unset_userdata () di bawah ini hanya akan menghapus satu variabel dari sesi.
$this->session->unset_userdata('some_name');

Jika Anda ingin menghapus lebih banyak nilai dari sesi atau menghapus seluruh array,
Anda dapat menggunakan versi unset_userdata () fungsi di bawah ini.
$this->session->unset_userdata($array_items);

14.4. Ambil Data Sesi


Setelah mengatur data dalam sesi, kami juga dapat mengambil data itu seperti yang
ditunjukkan di bawah ini. Fungsi Userdata () akan digunakan untuk tujuan ini. Fungsi ini
akan mengembalikan NULL jika data yang Anda coba akses tidak tersedia.
$name = $this->session->userdata('name');

Contoh :
Buat kelas kontroler yang disebut Session_controller.php dan simpan di application / controller /
Session_controller.php.

<?php

class Session_controller extends CI_Controller {

public function index() {

//loading session library

$this->load->library('session');

//adding data to session

$this->session->set_userdata('name','virat');

$this->load->view('session_view');

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 47


Modul Pelatihan Pemrograman Framework

public function unset_session_data() {

//loading session library

$this->load->library('session');

//removing session data

$this->session->unset_userdata('name');

$this->load->view('session_view');

?>

Buat file tampilan bernama session_view.php dan simpan di aplikasi / views / session_view.php

<!DOCTYPE html>

<html lang = "en">

<head>

<meta charset = "utf-8">

<title>CodeIgniter Session Example</title>

</head>

<body>

Welcome <?php echo $this->session->userdata('name'); ?>

<br>

<a href = 'http://localhost:85/CodeIgniter-


3.0.1/CodeIgniter3.0.1/index.php/sessionex/unset'>

Click Here</a> to unset session data.

</body>

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 48


Modul Pelatihan Pemrograman Framework

</html>

Buat perubahan pada file routes.php dalam aplikasi / config / routes.php dan tambahkan baris
berikut di akhir file.
$route['sessionex'] = 'Session_Controller';

15. FLASH DATA


Tambahkan Flashdata
Cara menyimpan flashdata adalah seperti yang ditunjukkan di bawah ini.
$ this-> session-> mark_as_flash ('item');

• fungsi mark_as_flash () membutuhkan satu argumen dari nilai yang akan disimpan. Bisa juga
melewatkan array untuk menyimpan beberapa nilai.
• fungsi set_flashdata () juga dapat digunakan, yang membutuhkan dua argumen, nama dan
nilai, seperti yang ditunjukkan di bawah ini.
$ this-> session-> set_flashdata ('item', 'value');

• Ambil Flashdata
Flashdata dapat diambil menggunakan fungsi flashdata () yang mengambil satu argumen dari
item yang akan diambil seperti yang ditunjukkan di bawah ini. fungsi flashdata () memastikan
bahwa Anda hanya mendapatkan data flash dan bukan data lainnya.
$ this-> session-> flashdata ('item');

Jika Anda tidak memberikan perubahan apa pun, maka Anda bisa mendapatkan array dengan
fungsi yang sama.
Contoh :
Buat kelas bernama FlashData_Controller.php dan simpan di application / controller /
FlashData_Controller.php.

<?php

class FlashData_Controller extends CI_Controller {

public function index() {

//Load session library

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 49


Modul Pelatihan Pemrograman Framework

$this->load->library('session');

//redirect to home page

$this->load->view('flashdata_home');

public function add() {

//Load session library

$this->load->library('session');

$this->load->helper('url');

//add flash data

$this->session->set_flashdata('item','item-value');

//redirect to home page

redirect('flashdata');

?>

Buat file tampilan bernama flashdata_home.php dan simpan di aplikasi / views /


flashdata_home.php

<!DOCTYPE html>

<html lang = "en">

<head>

<meta charset = "utf-8">

<title>CodeIgniter Flashdata Example</title>

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 50


Modul Pelatihan Pemrograman Framework

</head>

<body>

Flash Data Example

<h2><?php echo $this->session->flashdata('item'); ?></h2>

<a href = 'flashdata/add'>Click Here</a> to add flash data.

</body>

</html>

Buat perubahan pada file routes.php dalam aplikasi / config / routes.php dan tambahkan baris
berikut di akhir file.

$route['flashdata'] = 'FlashData_Controller';

$route['flashdata/add'] = 'FlashData_Controller/add';

Jalankan contoh di atas dengan mengunjungi tautan berikut. Ganti yoursite.com dengan URL situs
Anda.
http://yoursite.com/index.php/flashdata

Setelah mengunjungi URL di atas, Anda akan melihat layar seperti yang ditunjukkan di bawah ini.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 51


Modul Pelatihan Pemrograman Framework

Klik tautan "Klik Di Sini" dan Anda akan melihat layar seperti yang ditunjukkan di bawah
ini. Di sini, di layar ini Anda akan melihat nilai variabel data flash. Refresh halaman lagi
dan Anda akan melihat layar seperti di atas dan variabel data flash akan dihapus secara
otomatis.

16. TEMPDATA
Dalam beberapa situasi, di mana Anda ingin menghapus data yang disimpan dalam sesi
setelah beberapa periode waktu tertentu, ini dapat dilakukan dengan menggunakan fungsionalitas
tempdata di CodeIgniter.
16.1. Tambahkan Tempdata
Untuk menambahkan data sebagai tempdata, kita harus menggunakan fungsi
mark_as_tempdata (). Fungsi ini membutuhkan dua item tambahan atau item untuk disimpan
sebagai tempdata dan waktu kedaluwarsa untuk item-item tersebut seperti yang ditunjukkan di
17.
bawah ini.
// 'item' will be erased after 300 seconds(5 minutes)
$this->session->mark_as_temp('item',300);

Anda juga bisa melewatkan baris untuk menyimpan banyak data. Semua item yang disimpan di
bawah ini akan kedaluwarsa setelah 300 detik

$this->session->mark_as_temp(array('item','item2'),300);

Anda juga dapat mengatur waktu kedaluwarsa yang berbeda untuk setiap item seperti yang
ditunjukkan di bawah ini.

// 'item' will be erased after 300 seconds, while 'item2'

// will do so after only 240 seconds

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 52


Modul Pelatihan Pemrograman Framework

$this->session->mark_as_temp(array(

'item'=>300,

'item2'=>240

));

16.2. Ambil Tempdata


Kita dapat mengambil tempdata menggunakan fungsi tempdata (). Fungsi ini memastikan
bahwa Anda hanya mendapatkan tempdata dan bukan data lainnya. Lihat contoh yang
diberikan di bawah ini untuk melihat cara mengambil tempdata. tempdata () function akan
mengambil satu data dari item yang akan diambil.

$ this-> session-> tempdata ('item');

Jika Anda menghilangkan data, maka Anda dapat mengambil semua tempdata yang ada.

16.3. Hapus Tempdata


Tempdata dihapus secara otomatis setelah waktu kedaluwarsanya tetapi jika Anda ingin
menghapus tempdata sebelum itu, maka Anda dapat melakukan seperti yang ditunjukkan di
bawah ini menggunakan fungsi unset_tempdata (), yang mengambil satu data dari item yang
akan dihapus.
$ this-> session-> unset_tempdata ('item');

Contoh :
Buat kelas yang disebut Tempdata_controller.php dan simpan di application / controller /
Tempdata_controller.php.

<?php

class Tempdata_controller extends CI_Controller {

public function index() {

$this->load->library('session');

$this->load->view('tempdata_view');

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 53


Modul Pelatihan Pemrograman Framework

public function add() {

$this->load->library('session');

$this->load->helper('url');

//tempdata will be removed after 5 seconds

$this->session->set_tempdata('item','item-value',5);

redirect('tempdata');

?>

buat file bernama tempdata view.php dan simpan di aplikasi / views / tempdata view.php

<!DOCTYPE html>

<html lang = "en">

<head>

<meta charset = "utf-8">

<title>CodeIgniter Tempdata Example</title>

</head>

<body>

Temp Data Example

<h2><?php echo $this->session->tempdata('item'); ?></h2>

<a href = 'tempdata/add'>Click Here</a> to add temp data.

</body>

</html>

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 54


Modul Pelatihan Pemrograman Framework

Buat perubahan pada file routes.php dalam aplikasi / config / routes.php dan tambahkan baris
berikut di akhir file.

$route['tempdata'] = "Tempdata_controller";

$route['tempdata/add'] = "Tempdata_controller/add";

Jalankan contoh di atas dengan mengunjungi tautan berikut. Ganti yoursite.com dengan URL situs
Anda.
http://yoursite.com/index.php/tempdata

Setelah mengunjungi URL di atas, Anda akan melihat layar seperti yang ditunjukkan di bawah ini.

Klik tautan "Click Here" dan Anda akan melihat layar seperti yang ditunjukkan di bawah ini. Di
sini, di layar ini Anda akan melihat nilai variabel data temp. Refresh halaman yang sama setelah
lima detik lagi karena kami telah mengatur data temp selama lima detik dan Anda akan melihat
layar seperti di atas dan variabel data temp akan dihapus secara otomatis setelah lima detik. Jika
Anda me-refresh halaman yang sama sebelum 5 detik, maka data temp tidak akan dihapus, karena
periode waktunya belum berakhir.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 55


Modul Pelatihan Pemrograman Framework

16.4. Menghancurkan Sesi


Di PHP, kami menggunakan fungsi session_destroy () untuk menghancurkan sesi dan di
CodeIgniter kita dapat menghancurkan fungsi seperti yang ditunjukkan di bawah ini.
$ this-> session-> sess_destroy ();

Setelah memanggil fungsi ini, semua data sesi termasuk flashdata dan tempdata akan dihapus
secara permanen dan tidak dapat diambil kembali.

17. COOKIE MANAGEMENT


Cookie adalah sepotong kecil data yang dikirim dari server web untuk disimpan di
komputer klien. CodeIgniter memiliki satu helper yang disebut "Helper Cookie" untuk manajemen
cookie.
set_cookie($name[, $value = ''[, $expire = ''[, $domain =
Syntax
''[, $path = '/'[, $prefix = ''[, $secure = FALSE[, $httponly =
FALSE]]]]]]]])

• $name (mixed) − Cookie name or associative array of all


of the parameters available to this function

• $value (string) − Cookie value

• $expire (int) − Number of seconds until expiration

• $domain (string) − Cookie domain (usually:


.yourdomain.com)
Parameters
• $path (string) − Cookie path

• $prefix (string) − Cookie name prefix

• $secure (bool) − Whether to only send the cookie


through HTTPS

• $httponly (bool) − Whether to hide the cookie from


JavaScript

Return Type Void

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 56


Modul Pelatihan Pemrograman Framework

Dalam fungsi set_cookie (), kita bisa meneruskan semua nilai menggunakan dua cara.
Dalam cara pertama, hanya array yang dapat dilewati dan dengan cara kedua, parameter individual
juga dapat dilewati.

get_cookie($index[, $xss_clean = NULL]])


Syntax

• $index (string) − Cookie name

Parameters • $xss_clean (bool) − Whether to apply XSS filtering to


the returned value

The cookie value or NULL if not found


Return

Return Type Mixed

Fungsi get_cookie () digunakan untuk mendapatkan cookie yang telah ditetapkan menggunakan
fungsi set_cookie ().

Syntax delete_cookie($name[, $domain = ''[, $path = '/'[, $prefix =


'']]]])

• $name (string) − Cookie name

• $domain (string) − Cookie domain (usually:

Parameters .yourdomain.com)

• $path (string) − Cookie path

• $prefix (string) − Cookie name prefix

Return Type Void

Fungsi delete_cookie () digunakan untuk menghapus cookie ().


Contoh :
Buat pengontrol bernama Cookie_controller.php dan simpan di application / controller /
Cookie_controller.php

<?php

class Cookie_controller extends CI_Controller {

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 57


Modul Pelatihan Pemrograman Framework

function __construct() {

parent::__construct();

$this->load->helper(array('cookie', 'url'));

public function index() {

set_cookie('cookie_name','cookie_value','3600');

$this->load->view('Cookie_view');

public function display_cookie() {

echo get_cookie('cookie_name');

$this->load->view('Cookie_view');

public function deletecookie() {

delete_cookie('cookie_name');

redirect('cookie/display');

?>

Buat file tampilan bernama Cookie_view.php dan simpan di aplikasi / views / Cookie_view.php

<!DOCTYPE html>

<html lang = "en">

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 58


Modul Pelatihan Pemrograman Framework

<head>

<meta charset = "utf-8">

<title>CodeIgniter View Example</title>

</head>

<body>

<a href = 'display'>Click Here</a> to view the cookie.<br>

<a href = 'delete'>Click Here</a> to delete the cookie.

</body>

</html>

Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk controller
di atas dan tambahkan baris berikut di akhir file.

$route['cookie'] = "Cookie_controller";

$route['cookie/display'] = "Cookie_controller/display_cookie";

$route['cookie/delete'] = "Cookie_controller/deletecookie";

Setelah itu, Anda dapat menjalankan URL berikut di browser untuk menjalankan contoh.

http://yoursite.com/index.php/cookie

18. COMMON FUNCTION


Fungsi pustaka CodeIgniter dan fungsi pembantu harus diinisialisasi sebelum digunakan
tetapi ada beberapa fungsi umum, yang tidak perlu diinisialisasi. Fungsi umum dan deskripsinya
diberikan di bawah ini :

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 59


Modul Pelatihan Pemrograman Framework

Syntax is_php($version)

Parameters
$version (string) − Version number

Return TRUE if the running PHP version is at least the one specified or
FALSE if not

Return Type Void

Description Determines if the PHP version being used is greater than the
supplied version number.

Syntax is_really_writable($file)

Parameters
$file (string) − File path

Return TRUE if the path is writable, FALSE if not

Return Type Bool

Description checks to see if file is writable or not.

Syntax config_item($key)

Parameters $key (string) − Config item key

Return Configuration key value or NULL if not found

Return Type Mixed

Description This function is used to get the configuration item

Syntax set_status_header($code[, $text = ''])

$code (int) − HTTP Response status code


Parameters
$text (string) − A custom message to set with the status code

Return

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 60


Modul Pelatihan Pemrograman Framework

Return Type Void

Description This function permits you to manually set a server status header.

Syntax remove_invisible_characters($str[, $url_encoded = TRUE])

$str (string) − Input string


Parameters
$url_encoded (bool) − Whether to remove URLencoded
characters as well

Return Sanitized string

Return Type String

Description This function prevents inserting NULL characters between ASCII


characters

Syntax html_escape($var)

Parameters
$var (mixed) − Variable to escape (string or array)

Return HTML escaped string(s)

Return Type Mixed

Description This function acts as a native PHP htmlspecialchars() function.

Syntax get_mimes()

Return An associative array of file types

Return Type Array

Description This function returns a reference to the MIMEs array


from application/config/mimes.php.

Syntax is_https()

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 61


Modul Pelatihan Pemrograman Framework

Return TRUE if currently using HTTP-over-SSL, FALSE if not

Return Type Bool

Description Returns TRUE if a secure (HTTPS) connection is used and FALSE


in any other case (including non-HTTP requests).

Syntax is_cli()

Return TRUE if currently running under CLI, FALSE otherwise

Return Type Bool

Description Returns TRUE if the application is run through the command line
and FALSE if not.

Syntax function_usable($function_name)

Parameters $function_name (string) − Function name

Return Type Bool

Description Returns TRUE if a function exists and is usable, FALSE otherwise.

Berikut di bawah ini adalah contoh, yang menunjukkan semua fungsi di atas.
Contoh :
Di sini kita hanya membuat satu pengontrol di mana kita akan menggunakan fungsi-fungsi di atas.
Salin kode yang diberikan di bawah ini dan simpan di application / controller /
CommonFun_Controller.php.

<?php

class CommonFun_Controller extends CI_Controller {

public function index() {

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 62


Modul Pelatihan Pemrograman Framework

set_status_header(200);

echo is_php('5.3')."<br>";

var_dump(is_really_writable('./Form.php'));

echo config_item('language')."<br>";

echo remove_invisible_characters('This is a test','UTF8')."<br>";

$str = '< This > is \' a " test & string';

echo html_escape($str)."<br>";

echo "is_https():".var_dump(is_https())."<br>";

echo "is_cli():".var_dump(is_cli())."<br>";

var_dump(function_usable('test'))."<br>";

echo "get_mimes():".print_r(get_mimes())."<br>";

public function test() {

echo "Test function";

?>

Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk controller
di atas dan tambahkan baris berikut di akhir file.
$ route ['commonfunctions'] = 'CommonFun_Controller';

Ketik URL berikut di bilah alamat browser Anda untuk menjalankan contoh.
http://yoursite.com/index.php/communcunctions

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 63


Modul Pelatihan Pemrograman Framework

19. PAGE CACHING


Caching halaman akan meningkatkan kecepatan pemuatan halaman. Jika halaman di-
cache, maka halaman itu akan disimpan dalam keadaan yang sepenuhnya diberikan. Lain kali,
ketika server mendapatkan permintaan untuk halaman yang di-cache, itu akan langsung dikirim ke
browser yang diminta.
File dalam cache disimpan dalam folder aplikasi / cache. Caching dapat diaktifkan
berdasarkan per halaman. Saat mengaktifkan cache, kita perlu mengatur waktu, sampai itu perlu
tetap di folder cache dan setelah periode itu, itu akan dihapus secara otomatis.

19.1. Aktifkan Caching


Caching dapat diaktifkan dengan mengeksekusi baris berikut di salah satu metode controller.

$this->output->cache($n);

Di mana $ n adalah jumlah menit, Anda ingin halaman tetap di-cache di antara refresh.

19.2. Nonaktifkan Caching


File cache dihapus ketika itu berakhir tetapi ketika Anda ingin menghapusnya secara manual,
maka Anda harus menonaktifkannya. Anda dapat menonaktifkan caching dengan
menjalankan baris berikut.

// Deletes cache for the currently requested URI

$this->output->delete_cache();

// Deletes cache for /foo/bar

$this->output->delete_cache('/foo/bar');

Contoh :
Buat pengontrol yang disebut Cache_controller.php dan simpan di aplikasi / controller /
Cache_controller.php

<?php

class Cache_controller extends CI_Controller {

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 64


Modul Pelatihan Pemrograman Framework

public function index() {

$this->output->cache(1);

$this->load->view('test');

public function delete_file_cache() {

$this->output->delete_cache('cachecontroller');

?>

Buat file tampilan bernama test.php dan simpan di aplikasi / views / test.php

<!DOCTYPE html>

<html lang = "en">

<head>

<meta charset = "utf-8">

<title>CodeIgniter View Example</title>

</head>

<body>

CodeIgniter View Example

</body>

</html>

Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk controller
di atas dan tambahkan baris berikut di akhir file.

$route['cachecontroller'] = 'Cache_controller';

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 65


Modul Pelatihan Pemrograman Framework

$route['cachecontroller/delete'] = 'Cache_controller/delete_file_cache';

Ketik URL berikut di browser untuk menjalankan contoh.


http://yoursite.com/index.php/cachecontroller

Setelah mengunjungi URL di atas, Anda akan melihat bahwa file cache untuk ini akan dibuat di
folder aplikasi / cache. Untuk menghapus file, kunjungi URL berikut.
http://yoursite.com/index.php/cachecontroller/delete

20. PAGE REDIRECTION


Saat membangun aplikasi web, kita sering perlu mengarahkan pengguna dari satu
halaman ke halaman lain. CodeIgniter membuat pekerjaan ini mudah bagi kami. Fungsi redirect
() digunakan untuk tujuan ini.
redirect($uri = '', $method = 'auto', $code = NULL)
Syntax

• $uri (string) − URI string

• $method (string) − Redirect method (‘auto’, ‘location’ or


Parameters ‘refresh’)

• $code (string) − HTTP Response code (usually 302 or


303)

Return type Void

Baris pertama dapat memiliki dua jenis URI. Kami dapat mengirimkan URL situs
lengkap atau segmen URI ke pengontrol yang ingin Anda arahkan.
Parameter opsional kedua dapat memiliki salah satu dari tiga nilai dari otomatis, lokasi atau
penyegaran. Standarnya adalah otomatis. Parameter opsional ketiga hanya tersedia dengan
pengalihan lokasi dan memungkinkan Anda untuk mengirim kode respons HTTP tertentu.
Contoh :
Buat pengontrol yang disebut Redirect_controller.php dan simpan di aplikasi / controller /
Redirect_controller.php

<?php

class Redirect_controller extends CI_Controller {

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 66


Modul Pelatihan Pemrograman Framework

public function index() {

/*Load the URL helper*/

$this->load->helper('url');

/*Redirect the user to some site*/

redirect('http://www.tutorialspoint.com');

public function computer_graphics() {

/*Load the URL helper*/

$this->load->helper('url');

redirect('http://www.tutorialspoint.com/computer_graphics/index.htm');

public function version2() {

/*Load the URL helper*/

$this->load->helper('url');

/*Redirect the user to some internal controller’s method*/

redirect('redirect/computer_graphics');

?>

Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk controller
di atas dan tambahkan baris berikut di akhir file.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 67


Modul Pelatihan Pemrograman Framework

$route['redirect'] = 'Redirect_controller';

$route['redirect/version2'] = 'Redirect_controller/version2';

$route['redirect/computer_graphics'] = 'Redirect_controller/computer_graphics';

Ketik URL berikut di browser, untuk menjalankan contoh.


http://yoursite.com/index.php/redirect

21. APPLICATION PROFILING


Saat membuat aplikasi web, kami sangat prihatin dengan kinerja situs web dalam hal
berapa lama waktu yang dibutuhkan pengontrol untuk mengeksekusi dan berapa banyak memori
yang digunakan. Tidak hanya kinerja, tetapi kita juga perlu melihat wawasan data seperti data
POST, data permintaan basis data, data sesi, dll. Untuk tujuan debugging saat mengembangkan
beberapa aplikasi. CodeIgniter telah mempermudah pekerjaan ini bagi kami dengan membuat
profil suatu aplikasi.

21.1. Aktifkan Pembuatan Profil


Untuk mengaktifkan pembuatan profil aplikasi Anda, cukup jalankan perintah yang
diberikan di bawah ini di salah satu metode controller Anda.
$this->output->enable_profiler(TRUE);

Laporan profil dapat dilihat di bagian bawah halaman setelah mengaktifkannya.

21.2. Nonaktifkan Profiling


Untuk menonaktifkan profil aplikasi Anda, cukup jalankan perintah yang diberikan di bawah
ini di salah satu metode controller Anda.
$this->output->enable_profiler(FALSE);

21.3. Aktifkan / Nonaktifkan Bagian Profiler


Pembuatan profil dapat dilakukan berdasarkan bagian. Anda dapat mengaktifkan atau
menonaktifkan profil bagian dengan menetapkan nilai Boolean BENAR atau SALAH. Jika
Anda ingin mengatur profil pada aplikasi maka Anda dapat melakukannya di file yang
terletak di application / config / profiler.php
Sebagai contoh, perintah berikut ini akan memungkinkan profil profil untuk seluruh aplikasi.
$config['queries'] = TRUE;

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 68


Modul Pelatihan Pemrograman Framework

Dalam tabel berikut, kuncinya adalah parameter, yang dapat diatur dalam array konfigurasi untuk
mengaktifkan atau menonaktifkan profil tertentu.

Key Description Default

Elapsed time of Benchmark points and total TRUE


benchmarks
execution time

config CodeIgniterConfig variables TRUE

controller_info The Controller class and method requested TRUE

get Any GET data passed in the request TRUE

http_headers The HTTP headers for the current request TRUE

memory_usage Amount of memory consumed by the current TRUE


request, in bytes

Any POST data passed in the request TRUE


post

Listing of all database queries executed, TRUE


queries
including execution time

uri_string The URI of the current request TRUE

session_data Data stored in the current session TRUE

The number of queries after which the query 25


query_toggle_count
block will default to hidden.

Profiler yang diatur dalam file di application / config / profiler.php dapat diganti dengan
menggunakan fungsi set_profiler_sections () di controller seperti yang ditunjukkan di bawah ini.

$sections = array(

'config' => TRUE,

'queries' => TRUE

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 69


Modul Pelatihan Pemrograman Framework

);

$this->output->set_profiler_sections($sections);

22. BENCHMARKING
Pengaturan Poin Benchmark
Jika Anda ingin mengukur waktu yang diperlukan untuk mengeksekusi serangkaian baris atau
penggunaan memori, Anda dapat menghitungnya dengan menggunakan titik-titik Pembandingan
di CodeIgniter. Ada kelas "Pembandingan" yang terpisah untuk tujuan ini di CodeIgniter.
Kelas ini dimuat secara otomatis; Anda tidak harus memuatnya. bisa digunakan di mana saja di
kelas controller, view, dan model Anda. Yang harus Anda lakukan adalah menandai titik awal dan
titik akhir dan kemudian menjalankan fungsi elapsed_time () antara dua titik yang ditandai ini dan
Anda bisa mendapatkan waktu yang diperlukan untuk mengeksekusi kode itu seperti yang
ditunjukkan di bawah ini.

<?php

$this->benchmark->mark('code_start');

// Some code happens here

$this->benchmark->mark('code_end');

echo $this->benchmark->elapsed_time('code_start', 'code_end');

?>

Untuk menampilkan penggunaan memori, gunakan fungsi memory_usage () seperti yang


ditunjukkan pada kode berikut.

<?php

echo $this->benchmark->memory_usage();

?>

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 70


Modul Pelatihan Pemrograman Framework

Contoh :
Buat pengontrol yang disebut Profiler_controller.php dan simpan di application / controller /
Profiler_controller.php

class Profiler_controller extends CI_Controller {

public function index() {

//enable profiler

$this->output->enable_profiler(TRUE);

$this->load->view('test');

public function disable() {

//disable profiler

$this->output->enable_profiler(FALSE);

$this->load->view('test');

?>

Buat file view bernama test.php dan simpan di application / views / test.php

<!DOCTYPE html>

<html lang = "en">

<head>

<meta charset = "utf-8">

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 71


Modul Pelatihan Pemrograman Framework

<title>CodeIgniter View Example</title>

</head>

<body>

CodeIgniter View Example

</body>

</html>

Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk controller
di atas dan tambahkan baris berikut di akhir file.

$route['profiler'] = "Profiler_controller";

$route['profiler/disable'] = "Profiler_controller/disable"

Setelah itu, Anda dapat mengetik URL berikut di bilah alamat browser Anda untuk menjalankan
contoh.
http://yoursite.com/index.php/profiler

URL di atas akan memungkinkan profiler dan itu akan menghasilkan output seperti yang
ditunjukkan pada screenshot berikut.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 72


Modul Pelatihan Pemrograman Framework

23. ADDING JS AND CSS


Menambahkan file JavaScript dan CSS (Cascading Style Sheet) dalam CodeIgniter
sangat sederhana. Anda harus membuat folder JS dan CSS di direktori root dan menyalin semua
file .js di folder JS dan file .css di folder CSS seperti yang ditunjukkan pada gambar.
Misalnya, mari kita asumsikan, Anda telah membuat satu file JavaScript sample.js dan satu file

CSS style.css. Sekarang, untuk menambahkan file-file ini ke dalam pandangan Anda, muat URL
helper di controller Anda seperti yang ditunjukkan di bawah ini.
$this->load->helper('url');

Setelah memuat URL helper di controller, cukup tambahkan baris yang diberikan di
bawah ini di file tampilan, untuk memuat file sample.js dan style.css dalam tampilan seperti yang
ditunjukkan di bawah ini.

<link rel = "stylesheet" type = "text/css"

href = "<?php echo base_url(); ?>css/style.css">

<script type = 'text/javascript' src = "<?php echo base_url();

?>js/sample.js"></script>

Contoh :
Buat pengontrol yang disebut Test.php dan simpan di application / controller / Test.php

<?php

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 73


Modul Pelatihan Pemrograman Framework

class Test extends CI_Controller {

public function index() {

$this->load->helper('url');

$this->load->view('test');

?>

Buat file view bernama test.php dan simpan di application / views / test.php

<!DOCTYPE html>

<html lang = "en">

<head>

<meta charset = "utf-8">

<title>CodeIgniter View Example</title>

<link rel = "stylesheet" type = "text/css"

href = "<?php echo base_url(); ?>css/style.css">

<script type = 'text/javascript' src = "<?php echo base_url();

?>js/sample.js"></script>

</head>

<body>

<a href = 'javascript:test()'>Click Here</a> to execute the javascript function.

</body>

</html>

Buat file CSS bernama style.css dan simpan di css / style.css

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 74


Modul Pelatihan Pemrograman Framework

body {

background:#000;

color:#FFF;

Buat file JS yang disebut sample.js dan simpan di js / sample.js

function test() {

alert('test');

Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk
controller di atas dan tambahkan baris berikut di akhir file.

$route['profiler'] = "Profiler_controller";

$route['profiler/disable'] = "Profiler_controller/disable"

24. INTERNATIONALIZATION
Kelas bahasa di CodeIgniter menyediakan cara mudah untuk mendukung banyak bahasa
untuk internasionalisasi. Hingga taraf tertentu, kita dapat menggunakan file bahasa yang berbeda
untuk menampilkan teks dalam banyak bahasa yang berbeda. Kita dapat meletakkan file bahasa
yang berbeda di direktori aplikasi / bahasa. File bahasa sistem dapat ditemukan di direktori sistem
/ bahasa, tetapi untuk menambahkan bahasa Anda sendiri ke aplikasi Anda, Anda harus membuat
folder terpisah untuk setiap bahasa dalam direktori aplikasi / bahasa.

24.1. Membuat file Bahasa


Untuk membuat file bahasa, Anda harus mengakhirinya dengan _lang.php. Misalnya, Anda
ingin membuat file bahasa untuk bahasa Perancis, maka Anda harus menyimpannya dengan
french_lang.php. Dalam file ini Anda dapat menyimpan semua teks bahasa Anda di kunci,
kombinasi nilai dalam $ lang array seperti yang ditunjukkan di bawah ini.
$lang[‘key’] = ‘val’;

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 75


Modul Pelatihan Pemrograman Framework

24.2. Memuat file bahasa


Untuk menggunakan bahasa apa pun dalam aplikasi Anda, Anda harus terlebih dahulu
memuat file dari bahasa tertentu untuk mengambil berbagai teks yang tersimpan dalam file
itu. Bisa menggunakan kode berikut untuk memuat file bahasa.
$this->lang->load('filename', 'language');

• filename - Ini adalah nama file yang ingin Anda muat. Jangan gunakan ekstensi file di
sini tetapi hanya nama file.
• Bahasa - Ini adalah set bahasa yang berisi itu.

24.3. Mengambil Teks Bahasa


Untuk mengambil garis dari file bahasa cukup jalankan kode berikut.

$ this-> lang-> line ('language_key');

Di mana language_key adalah parameter kunci yang digunakan untuk mengambil nilai kunci
dalam file bahasa yang dimuat.

24.4. Muat Ulang Otomatis Bahasa


Jika Anda membutuhkan bahasa secara global, maka Anda dapat memuatnya secara otomatis
dalam file application / config / autoload.php seperti yang ditunjukkan di bawah ini.

| -----------------------------------------------------------------------

| Auto-load Language files

| -----------------------------------------------------------------------

| Prototype:

| $autoload['language'] = array('lang1', 'lang2');

| NOTE: Do not include the "_lang" part of your file. For example

| "codeigniter_lang.php" would be referenced as array('codeigniter');

*/

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

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 76


Modul Pelatihan Pemrograman Framework

Sederhananya, lewati berbagai bahasa yang akan dimuat secara otomatis oleh CodeIgniter.
Contoh :
Buat pengontrol yang disebut Lang_controller.php dan simpan di application / controller /
Lang_controller.php

<?php

class Lang_controller extends CI_Controller {

public function index(){

//Load form helper

$this->load->helper('form');

//Get the selected language

$language = $this->input->post('language');

//Choose language file according to selected lanaguage

if($language == "french")

$this->lang->load('french_lang','french');

else if($language == "german")

$this->lang->load('german_lang','german');

else

$this->lang->load('english_lang','english');

//Fetch the message from language file.

$data['msg'] = $this->lang->line('msg');

$data['language'] = $language;

//Load the view file

$this->load->view('lang_view',$data);

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 77


Modul Pelatihan Pemrograman Framework

?>

Buat file tampilan bernama lang_view.php dan simpan di application / views / lang_view.php

<!DOCTYPE html>

<html lang = "en">

<head>

<meta charset = "utf-8">

<title>CodeIgniter Internationalization Example</title>

</head>

<body>

<?php

echo form_open('/lang');

?>

<select name = "language" onchange = "javascript:this.form.submit();">

<?php

$lang =
array('english'=>"English",'french'=>"French",'german'=>"German");

foreach($lang as $key=>$val) {

if($key == $language)

echo "<option value = '".$key."' selected>".$val."</option>";

else

echo "<option value = '".$key."'>".$val."</option>";

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 78


Modul Pelatihan Pemrograman Framework

?>

</select>

<br>

<?php

form_close();

echo $msg;

?>

</body>

</html>

Buat tiga folder yang disebut Inggris, Prancis, dan Jerman dalam aplikasi / bahasa seperti yang
ditunjukkan pada gambar di bawah.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 79


Modul Pelatihan Pemrograman Framework

Salin kode yang diberikan di bawah ini dan simpan dalam file english_lang.php di folder
application / language / english.

<?php

$lang['msg'] = "CodeIgniter Internationalization example.";

?>

Salin kode yang diberikan di bawah ini dan simpan dalam file french_lang.php di folder
application / language / French.

<?php

$lang['msg'] = "Exemple CodeIgniter internationalisation.";

?>

Salin kode yang diberikan di bawah ini dan simpan dalam file german_lang.php di folder
application / language / german.

<?php

$lang['msg'] = "CodeIgniter Internationalisierung Beispiel.";

?>

Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk controller
di atas dan tambahkan baris berikut di akhir file.
$route['lang'] = "Lang_controller";

Jalankan URL berikut di browser untuk menjalankan contoh di atas.


http://yoursite.com/index.php/lang

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 80


Modul Pelatihan Pemrograman Framework

Ini akan menghasilkan output seperti yang ditunjukkan pada tangkapan layar berikut. Jika Anda
mengubah bahasa di daftar dropdown, bahasa kalimat yang ditulis di bawah dropdown juga akan
berubah seperti gambar dibawah ini.

25. SECURITY
25.1. Pencegahan XSS
XSS berarti skrip lintas situs. CodeIgniter dilengkapi dengan keamanan penyaringan XSS.
Filter ini akan mencegah kode JavaScript berbahaya atau kode lain apa pun yang mencoba
membajak cookie dan melakukan kegiatan berbahaya. Untuk memfilter data melalui filter
XSS, gunakan metode xss_clean () seperti yang ditunjukkan di bawah ini.

$data = $this->security->xss_clean($data);
Anda harus menggunakan fungsi ini hanya ketika Anda mengirim data. Parameter Boolean
kedua opsional juga dapat digunakan untuk memeriksa file gambar untuk serangan XSS. Ini
berguna untuk fasilitas unggah file. Jika nilainya benar, berarti gambar aman dan jika tidak
maka sebaliknya.

25.2. Pencegahan Injeksi SQL


Injeksi SQL adalah serangan yang dilakukan pada permintaan basis data. Dalam PHP, kita
menggunakan fungsi mysql_real_escape_string () untuk mencegah hal ini bersama dengan
teknik lain tetapi CodeIgniter menyediakan fungsi inbuilt dan pustaka untuk mencegah hal
ini.
Ada 3 cara mencegah SQL Injection di CodeIgniter yaitu :
• Lolos Pertanyaan
• Tawaran Kueri
• Kelas Rekaman Aktif

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 81


Modul Pelatihan Pemrograman Framework

25.3. Escaping Queries

<?php
$username = $this->input->post('username');
$query = 'SELECT * FROM subscribers_tbl WHERE user_name = '.
$this->db->escape($email);
$this->db->query($query);
?>
$ this-> db-> escape () berfungsi secara otomatis menambahkan tanda kutip tunggal di
sekitar data dan menentukan tipe data sehingga hanya bisa keluar dari data string.

25.4. Query Biding

<?php
$sql = "SELECT * FROM some_table WHERE id = ? ANDstatus = ?
AND author = ?";
$this->db->query($sql, array(3, 'live', 'Rick'));
?>

Pada contoh di atas, tanda tanya (?) Akan digantikan oleh larik di parameter kedua fungsi
query (). Keuntungan utama membangun kueri dengan cara ini adalah bahwa nilai-nilai
secara otomatis keluar yang menghasilkan kueri aman. Mesin CodeIgniter melakukannya
untuk Anda secara otomatis, sehingga Anda tidak harus mengingatnya.

25.5. Active Record Class

<?php
$this->db->get_where('subscribers_tbl',array
('status'=> active','email' => '[email protected]'));
?>
Menggunakan catatan aktif, sintaks kueri dihasilkan oleh setiap adaptor basis data. Hal Ini
juga memungkinkan permintaan yang lebih aman, karena nilai-nilai keluar secara otomatis.

25.6. Menyembunyikan Kesalahan PHP


Saat aplikasi sudah jadi, kami sering tidak ingin menampilkan pesan kesalahan apa pun
kepada pengguna. Baik jika diaktifkan di lingkungan pengembangan untuk keperluan
debugging. Pesan-pesan kesalahan ini mungkin berisi beberapa informasi, yang tidak boleh
kami perlihatkan kepada pengguna situs karena alasan keamanan.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 82


Modul Pelatihan Pemrograman Framework

Ada tiga file CodeIgniter yang terkait dengan kesalahan, yaitu :


• Level Pelaporan Kesalahan PHP
Lingkungan yang berbeda memerlukan tingkat pelaporan kesalahan yang berbeda. Secara
default, pengembangan akan menunjukkan kesalahan tetapi pengujian dan live akan
menyembunyikannya. Ada file bernama index.php di direktori root CodeIgniter, yang
digunakan untuk tujuan ini. Jika kita memberikan nol sebagai argumen ke fungsi
error_reporting () maka itu akan menyembunyikan semua kesalahan.
• Kesalahan Database
Bahkan jika Anda telah mematikan kesalahan PHP, kesalahan MySQL masih terbuka.
Anda dapat mematikannya di application / config / database.php. Atur opsi db_debug
dalam array $ db ke FALSE seperti yang ditunjukkan di bawah ini.

$db['default']['db_debug'] = FALSE;

• Catatan eror
Cara lain adalah dengan mentransfer kesalahan ke file log. Jadi, itu tidak akan ditampilkan
kepada pengguna di situs. Cukup, atur nilai log_threshold dalam $ config array menjadi
1 pada file application / cofig / config.php seperti yang ditunjukkan di bawah ini.

$config['log_threshold'] = 1;

25.7. Pencegahan CSRF


CSRF singkatan dari pemalsuan permintaan lintas situs. Anda dapat mencegah serangan ini
dengan mengaktifkannya di file aplikasi / config / config.php seperti yang ditunjukkan di
bawah ini.

$config['csrf_protection'] = TRUE;

Saat Anda membuat formulir menggunakan fungsi form_open (), itu akan secara otomatis
memasukkan CSRF sebagai bidang tersembunyi. Anda juga dapat menambahkan CSRF
secara manual menggunakan fungsi get_csrf_token_name () dan get_csrf_hash (). Fungsi
get_csrf_token_name () akan mengembalikan nama CSRF dan get_csrf_hash () akan
mengembalikan nilai hash CSRF.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 83


Modul Pelatihan Pemrograman Framework

Token CSRF dapat diregenerasi setiap kali untuk pengiriman atau Anda juga dapat tetap
sama sepanjang umur cookie CSRF. Dengan mengatur nilai TRUE, dalam array konfigurasi
dengan kunci ‘csrf_regenerate’ akan membuat token seperti yang ditunjukkan di bawah ini.

$config['csrf_regenerate'] = TRUE;

Anda juga dapat membuat daftar putih URL dari perlindungan CSRF dengan mengaturnya
di array konfigurasi menggunakan kunci ‘csrf_exclude_uris’ seperti yang ditunjukkan di
bawah ini. Anda juga dapat menggunakan ekspresi reguler.

$config['csrf_exclude_uris'] = array('api/person/add');

25.8. Penanganan Kata Sandi


Banyak pengembang tidak tahu bagaimana menangani kata sandi dalam aplikasi web, yang
mungkin mengapa banyak peretas merasa begitu mudah untuk masuk ke sistem. Orang harus
mengingat hal-hal berikut saat menangani kata sandi.
• JANGAN menyimpan kata sandi dalam format teks biasa.
• Selalu ingat kata sandi Anda.
• JANGAN gunakan Base64 atau penyandian serupa untuk menyimpan kata sandi.
• JANGAN gunakan algoritma hashing yang lemah atau rusak seperti MD5 atau SHA1.
Gunakan hanya algoritma hashing kata sandi yang kuat seperti BCrypt, yang digunakan
dalam fungsi Hashing Kata Sandi PHP sendiri.
• JANGAN menampilkan atau mengirim kata sandi dalam format teks biasa.
• JANGAN menempatkan batasan yang tidak perlu pada kata sandi pengguna Anda.

UNIVERSITAS TEKNOLOGI SUMBAW @ 2021 84

Anda mungkin juga menyukai