1. Materi Struktur CodeIgniter
• Kelompok NP 10-01
Nama : Cicilia Natalia (30210115)
Wildan Putra Delianda (30210158)
Andika cherry Serano (30210167)
2. Struktur aplication or module
(controller)
Codeigniter memiliki struktur direktori
tersendiri. Direktori utama CI berada
di direktori system/application.
3. System
• Di dalam folder system, kita akan
sering bekerja dengan folder
controllers, models, dan views (dari
konsep MVC, Model <-> Views <->
Controller)
4. Folder Application
• Dalam folder ini,berisi kode-kode
yang kita buat nantinya akan
disimpan didalam folder yang sesuai.
Model disimpan di folder
models,controller di folder controller
dan view di folder views.
5. Folder application
• Folder-folder yang ada direktori
application adalah
• 1. models => menyimpan model yang
dibuat
• 2. controller => tempat menyimpan semua
file controller.
• 3. Folder config : tempat menyimpan
semua file konfigurasi yang ada di aplikasi
mulai dari database, router dan autoload
dari aplikasi
6. Folder Application
• 4. Folder errors : tempat menyimpan
semua template error aplikasi
• 5. Folder helpers : tempat menyimpan
helper-helper yang bukan berasal dari CI
• 6. Folder hooks : tempat menyimpan
hook yang digunakan untuk mengubah
alur fungsi dari core CI
• 7. Folder language : tempat menyimpan
bahasa-bahasa yang akan di gunakan
• 8. Folder libraries : tempat menyimpan
semua library buatan kita sendiri
8. folder-folder selanjutnya
• cache, untuk meyimpan caching dari
website.
• 3. codeigniter, berisi file-file yang
akan me-load inti dari framework.
• 4. database, berisi class-class yang
akan digunakan untuk bekerja
dengan
• basis data, termasuk didalamnya
driver-driver untuk beberapa server
9. • basis data yang didukung oleh
CodeIgniter.
• 5. fonts, digunakan untuk menyimpan font
yang nanti akan kita gunakan di
• dalam website.
• 6. helpers, berisi helper.
• 7. language, digunakan untuk menyimpan
file-file dukungan bahasa.
• .
10. • 8. libraries, berisi pustaka-pustaka
yang disediakan untuk digunakan
untuk
• pembuatan website.
• 9. logs, berisi file-file catatan yang
mencatat log dari website kita.
• 10.plugins, untuk menyimpan plugin.
• 11.scafollding, berisi file-file untuk
keperluan scafollding
11. Spesifikasi plugin
Plugin pada dasarnya hampir sama dengan helper. Perbedaan utama
antara plugin dan helper terletak pada jumlah fungsi. Sebuah helper dapat
terdiri dari beberapa fungsi, sedangkan sebuah plugin hanya mengandung
satu buah fungsi. Helper juga biasanya dianggap sebagai bagian dari
system utama dan dibuat oleh Tim pengembang CodeIgniter, sedangkan
plugin dimaksudan untuk dibuat dan disebarkan oleh komunitas.
Tata cara penggunaan plugin juga sama dengan cara penggunaan helper,
dimana untuk dapat menggunakan plugin dapat dilakukan dengan cara
konfigurasi pada file autoload.php atau melakukan proses loading pada
setiap controller yang akan menggunakan plugin. Konfigurasi pada
autoload.php adalah sebagai berikut:
$autoload['plugin'] = array(‘captcha’, ‘js_calendar’);
Untuk melakukan loading pada setiap controller yang akan menggunakan
plugin, dilakukan dengan sintak sebagai berikut:
$this->load->plugin(‘namaplugin’);
Namaplugin diambil dari nama file plugin, dikurangi ekstensi .php dan _pi.
Contoh apabila kita ingin me-load file captcha_pi.php, maka sintaknya
a
adalah sebagai berikut:
$this->load->plugin(‘captcha’);
12. Spesifikasi Library
• Library adalah sekumpulan kelas dan fungsi yang dibuat
untuk membantu pengembang aplikasi untuk dapat
membangun aplikasi dengan lebih cepat dan lebih efisien.
Beberapa kelas sangat dibutuhkan dan hampir selalu
digunakan setiap kita membangun aplikasi web,
sedemikian sehingga kelas-kelas tersebut selalu kita atur
supaya secara otomatis di-load oleh sistem dan dapat
langsung digunakan. Contoh library yang hampir selalu
digunakan dalam suatu web dinamis diantaranya adalah
library database, session, input dan security.
Di dalam CodeIgniter, library terbagi menjadi dua macam,
yaitu library yang bersifat global dan library yang kita buat
sendiri sesuai dengan kebutuhan. Library global terdiri dari
kelas dan fungsi-fungsi yang telah disediakan oleh
CodeIgniter, dan terletak pada folder system/libraries.
Sedangkan library yang kita buat sendiri sesuai dengan
kebutuhan ditempatkan pada folder application/libraries.
13. • Beberapa library yang wajib diketahui oleh setiap
pengembang diantaranya adalah:
• Database, library ini menyediakan serangkaian fungsi-
fungsi yang digunakan untuk mengakses database dan
melakukan pengolahan data yang ada di dalam
database.
• Input, library ini merupakan library yang digunakan
untuk menangani dan memproses data-data yang
berasal dari form. Misalkan apabila kita menggunakan
form untuk memasukkan data maka library ini harus di-
load supaya kita dapat melakukan pemrosesan data
form.
• File Uploading, library ini merupakan library yang
digunakan apabila kita akan membangun web yang
dapat mengunggah (upload) file ke dalam web.
Misalkan kita menginginkan supaya di dalam web kita
ada fitur yang dapat digunakan untuk memasukkan file
gambar ke dalam aplikasi web kita, maka digunakanlah
library ini.
14. • Session, library ini merupakan library yang digunakan untuk
memelihara informasi status mengenai pengguna. Sebagai
contoh misalkan kita membangun suatu website dimana
pengunjung website tersebut harus melakukan proses login
terlebih dahulu untuk masuk ke dalam suatu halaman, maka
pada situasi seperti ini, library session harus di-load supaya
kita dapat memelihara state dari pengunjung, sampai
pengunjung tersebut logout.
• URI Class, library ini berisi fungsi-fungsi yang membantu
kita untuk mendapatkan informasi dari URI pada alamat web
kita.
• Validation, library ini digunakan untuk melakukan validasi
terhadap form input yang ada pada aplikasi web kita.
• Pagination, library ini berguna pada saat kita memiliki
banyak data yang harus ditampilkan. Misalkan kita memiliki
100 data, dimana ke-100 data ini akan ditampilkan ke dalam
10 halaman (10 data / halaman). Untuk membuat 10 halaman
yang masing-masing memuat 10 data dan masing-masing
halaman terhubung satu sama lain, maka pagination
merupakan library yang tepat untuk digunakan.
15. Spesifikasi Model
• Model adalah komponen CodeIgniter yang dirancang untuk bekerja dengan
informasi dalam database. Melalui model kita bisa membuat fungsi-fungsi yang
dapat mengambil (retrieve), memasukkan (insert), menghapus (delete), maupun
memutakhirkan (update) data.
• Model dibuat dengan format sebagai berikut:
•
• <? php class Nama_model extends Model {
• function Nama_model()
{
parent::Model();
}
function nama_fungsi()
{
• }
} ?>
• Nama_model merupakan nama dari class yang kita buat. Nama dari class untuk
model harus diawali dengan huruf capital. Pastikan bahwa setiap kita membuat
class model, kita melakukan ‘extends’ terhadap class dasar dari Model. Nama
konstruktor juga sama dengan nama dari class. Untuk nama fungsi biasanya diawali
dengan huruf kecil.
• File-file model yang kita buat, harus disimpan di dalam folder application/models.
File-file ini seperti biasa disimpan dengan ekstensi .php, dimana nama file sama
dengan nama class, tetapi semuanya menggunakan huruf kecil.
16. Spesifikasi Model
• Fungsi-fungsi dalam model, dapat kita gunakan setelah kita
melakukan proses loading terhadap model yang telah kita
buat. Proses loading ini dilakukan di dalam controller,
sesuai dengan fungsi controller sebagai penghubung
diantara komponen-komponen CodeIgniter. Sebaiknya
model di-load di dalam konstruktor dari controller.
Tujuannya supaya sekali di-load, semua fungsi yang ada di
dalam controller dapat menggunakan model tersebut tanpa
harus melakukan loading di setiap fungsi. Berikut sintak
untuk melakukan loading suatu model:
• $this->load->model(‘nama_model’);
• Apabila model yang akan kita load berada pada folder
tertentu, maka sintaknya:
• $this->load->model(‘nama_folder/nama_model’);
•
• Setelah model di-load, maka kita dapat mengakses fungsi-
fungsi yang ada pada model dengan menggunakan sintak
sebagai berikut:
• $this->nama_model->nama_fungsi();
•
17. Spesifikasi view
• View dapat berupa satu tampilan utuh atau bisa juga terdiri dari beberapa
view, dimana view-view ini merupakan bagian-bagian dari suatu halaman
web seperti header, footer, sidebar, dan lainnya.
• Sesuai dengan konsep MVC yang mendasari CodeIgniter, Controller
berperan sebagai penghubung antara berbagai komponen yang
dibutuhkan CodeIgniter untuk memproses request dari browser. Oleh
karenanya view tidak bisa langsung dipanggil untuk melakukan sesuatu,
tetapi harus dipanggil melalui controller.
• Untuk melihat keterkaitan antara controller dan view dalam menampilkan
suatu halaman web, mari kita buat suatu file dengan nama testview.php
dengan kode seperti berikut ini:
• <html>
<head>
<title>Testing View</title>
</head>
<body>
<h1>Hallo. Anda telah sukses membuat view</h1>
</body>
</html>
• Simpan kode di atas ke dalam folder application/views.
18. Controller
• Controller berfungsi sebagai penghubung antara komponen-komponen
yang dibutuhkan untuk memproses HTTP request dan menghasilkan
halaman web. Terkait dengan fungsinya tersebut, maka controller akan
berhubungan langsung dengan URI. Perhatikan contoh URI berikut ini:
• http://localhost/index.php/test/
• Pada contoh di atas, CodeIgniter akan mencoba mencari controller yang
bernama test.php dan kemudian mengeksekusi file controller tersebut.
Untuk membuktikannya, mari kita buat file test.php. File test.php dapat
dibuat dengan menggunakan aplikasi text editor seperti Notepad, Notepad+
+, Wordpad, EditPlus, Macromedia Dremweaver, dsb. Di dalam text editor
yang kita gunakan, tuliskan kode berikut:
• <?php
class Test extends Controller {
• function index()
{
echo ‘Hello World!’;
}
}
?>
19. • Perlu selalu diingat bahwa nama dari setiap classcontroller
yang kita buat harus diawali dengan huruf kapital.
Setiapclass yang kita buat juga harus extends Controller
supaya mewarisi fungsi-fungsi classcontroller dan dikenali
sebagai controller. File controller yang kita buat harus
disimpan dengan format .phpdimana nama file harus sama
dengan nama class tetapi nama file harus dimulai dengan
huruf kecil. Seperti pada contoh di atas, nama class adalah
Test dimana class ini extends Controller dan disimpan
dengan nama test.php.
• Setiap controller minimal terdiri dari satu fungsi. Pada
controller Test yang baru saja kita buat, fungsi yang kita
buat adalah fungsi index(). Fungsi index() merupakan
fungsi yang secara default akan dipanggil apabila argumen
kedua pada URL kosong. Jadi ketika kita mengakses
alamat http://localhost/index.php/test maka sebenarnya
kita sedang mengakses fungsi index() padacontroller test.
Hasil yang sama akan didapatkan apabila kita mengakes
alamat http://localhost/index.php/test/index
20. • Berikut kode dari fungsi tersebut:
• <?php
class Test extends Controller {
• function index()
{
echo ‘Hello World!’;
}
function welcome()
{
echo ‘Selamat anda telah membuat fungsi!’;
}
}
?>
21. Aliran data
• Gambar berikut ini menggambarkan aliran data dalam sistem:
• Berikut penjelasan dari gambar di atas:
• ‘index.php’ berperan sebagai controller terdepan, memulai sumber
daya utama untuk menjalankan CodeIgniter.
• Router memeriksa request HTTP untuk menentukan apa yang
seharusnya dilakukan.
• Jika terdapat file cache, maka file tersebut langsung dikirim ke
browser, melampaui eksekusi sistem secara normal.
22. • Sebelum controller aplikasi dijalankan, request
HTTP dan setiap data yang dimasukkan user
disaring untuk keperluan keamanan.
• Controller memanggil model, library, plugin,
helper dan sumber daya lainnya yang diperlukan
untuk memproses request.
• Data dari controller kemudian dirender di View
dan dikirim ke browser.