Slide struktur codeigneter

22
Materi Struktur CodeIgniter Kelompok NP 10-01 Nama : Cicilia Natalia (30210115) Wildan Putra Delianda (30210158) Andika cherry Serano (30210167)

Transcript of Slide struktur codeigneter

Page 1: Slide struktur codeigneter

Materi Struktur CodeIgniter

• Kelompok NP 10-01 Nama : Cicilia Natalia (30210115)

Wildan Putra Delianda (30210158)

Andika cherry Serano (30210167)

Page 2: Slide struktur codeigneter

Struktur aplication or module (controller)

Codeigniter memiliki struktur direktori tersendiri. Direktori utama CI berada di direktori system/application.

Page 3: Slide struktur codeigneter

System

• Di dalam folder system, kita akan sering bekerja dengan folder controllers, models, dan views (dari konsep MVC, Model <-> Views <-> Controller)

Page 4: Slide struktur codeigneter

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.

Page 5: Slide struktur codeigneter

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

Page 6: Slide struktur codeigneter

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

Page 7: Slide struktur codeigneter

Folder application

• 9. Folder views tempat menyimpan semua file view applikasi.

Page 8: Slide struktur codeigneter

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

Page 9: Slide struktur codeigneter

• 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.

• .

Page 10: Slide struktur codeigneter

• 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

Page 11: Slide struktur codeigneter

Spesifikasi pluginPlugin 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 adalah sebagai berikut:a

$this->load->plugin(‘captcha’);

Page 12: Slide struktur codeigneter

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.

Page 13: Slide struktur codeigneter

• 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.

Page 14: Slide struktur codeigneter

• 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.

Page 15: Slide struktur codeigneter

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.

Page 16: Slide struktur codeigneter

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();

Page 17: Slide struktur codeigneter

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.

Page 18: Slide struktur codeigneter

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:

• <?phpclass Test extends Controller {

• function index(){echo ‘Hello World!’;}}?>

Page 19: Slide struktur codeigneter

• 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

Page 20: Slide struktur codeigneter

• Berikut kode dari fungsi tersebut:• <?php

class Test extends Controller {• function index()

{echo ‘Hello World!’;}function welcome(){echo ‘Selamat anda telah membuat fungsi!’;}}?>

Page 21: Slide struktur codeigneter

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.

Page 22: Slide struktur codeigneter

• 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.