Memahami Konsep MVC dan Routing

Mengenal Struktur Direktori Codeigniter 

Jika kamu baru pertama kali belajar Codeigniter, 

maka wajib hukumnya mengetahui apa saja isi direktori 

dan file yang ada di dalam project codeigniter. 

Silahkan buka teks Editor VS Code, lalu pilih 

File->Open Folder. Cari folder beritacoding. 

Maka kita akan mendapatan struktur direktori seperti ini:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tedapat dua direktori penting di dalam CI yang harus

 kamu perhatikan, yakni: 

 application dan  system. 

 Selain itu terdapat juga direktori  user_guide 

dan beberapa file lainnya.

 

 

 

 

 

 

 

 

 

 

Berikut ini penjelasannya: 

1.  application berisi semua kode aplikasi. 

     Di dalam direktori inilah kita akan menulis 

     semua kode aplikasi kita. 

2.  system berisi kode-kode inti dari Codeigniter. 

     Jangan mengubah apapun di dalam direktori ini. 

     Jika kita ingin upgrade versi, kita cukup 

     me-replace direktori ini dengan yang baru. 

3.  tests berisi kode untuk melakukan testing. 

     Folder ini memang belum ada di project kita saat ini, 

     tapi kita bisa buat nanti saat melakukan testing.

 4.  user_guide berisi dokumentasi codeigniter. 

      Kita bisa menghapus direktori ini saat web sudah jadi. 

      a.  .editor_config berisi konfigurasi untuk teks editor. 

      b.  .gitignore berisi daftar file dan folder yang akan diabaikan oleh Git. 

      c.   comspoer.json adalah file yang berisi keterangan project 

           dan keterangan library yang digunakan. 

           File ini dibutuhkan oleh composer. 

     d.  contributing.md adalah file yang berisi penjelasan 

          cara berkontribusi di proyek CI. 

          Kita bisa menghapus file ini, apabila web sudah jadi.

     e. license.txt adalah file yang berisi keterangan lisensi 

        dari CI. Kita juga bisa menghapus file saat web 

        sudah jadi. 

     f.  readme.rst sama seperti file 

    g.  contributing.md file ini berisi penjelasan dan

         informasi tentang project CI. 

        Kita juga bisa menghapus file ini saat web sudah selesai. 

    h.  index.php adalah file utama dari CI. 

        File yang akan dibuka pertamakali saat aplikasi

        dibuka. Selanjutnya silahkan buka direktori 

5.  application dan perhatikan direktori yang ada di sana. 

6.  cache berisi cache dari aplikasi. 

7.  config berisi konfigurasi aplikasi. 

  •  autoload.php tempat kita mendefinisikan autoload; 
  •  config.php konfigurasi aplikasi; 
  •  constants.php berisi konstanta; 
  •  database.php konfigurasi database aplikasi; 
  •  doctypes.php berisi definisi untuk doctype HTML; 
  •  foreign_chars.php berisi karakter dan simbol; 
  •  hooks.php berisi konfigurasi hooks; 
  •  index.html untuk mencegah direct access; 
  •  memcached.php berisi konfigurasi untuk memcached; 
  •  migration.php konfigurasi untuk migrasi; 
  •  mimes.php berisi definisi tipe file; 
  •  profiler.php konfigurasi untuk profiler; 
  •  routers.php tempat kita menulis route aplikasi; 
  •  smileys.php berisi kode untuk emoji; 
  •  user_agents.php berisi definisi untuk user agents. 

 8.  controller berisi kode untuk controller. 

 9.  core berisi kode untuk custom core. 

10.  helpers berisi fungsi-fungsi helper. 

11.  hooks berisi kode untuk script hook. 

12.  language berisi string untuk bahasa, apabila web 

       mendukung multibahasa. 

13.  libraries berisi library. 

14.  logs berisi logs dari aplikasi. 

15.  models berisi kode untuk model. 

16.  thrid_party berisi library dari pihak ketiga. 

17.  views berisi kode untuk view. 

  •  index.html file html untuk mencegah direct access. 

Mengenal Konsep MVC pada Codeigniter 

Codeigniter sejak awal menganut konsep MVC. 

Karena itu, ia begitu terkenal. 

Soalnya, implementasi MVC di CI mudah dipahami.

Apa itu MVC? MVC adalah singkatan dari 

Model–View–Controller. MVC merupakan sebuah 

pola desain arsitektur yang umum digunakan dalam

pengembangan aplikasi.

1 Masih ingat latar belakang mengapa kita harus

   pakai framework? 

  Yap, biar kode program lebih konsisten dan tersetruktur. 

   Sehingga kita akan mudah kolaborasi dengan tim. 

   Nah, si MVC ini adalah pola penulisan kode yang 

   umum dipakai..dimana kode untuk Model 

    di taruh dalam folder yang sama, begitu juga dengan 

    kode untuk View dan Controller. 

   Coba perhatikan gambar berikut:

 

 

 

 

 

 

 

 

 

Gambar ini menyatakan bagaimana hubungan 

kode pada MVC

Apa itu Model? 

Model adalah kode yang bertugas untuk membuat 

pemodelan data

Kadang juga dipakai untuk pemodelan bisnis. 

Model bisa mengakses data dari Database dan juga 

sumber lainnya.

 Intinya   : 

Kalau berkaitan tentang data, itu tugasnya model.

 Apa itu View? 

View adalah kode yang bertugas 

untuk membuat tampilan aplikasi

 

 Ingat: 

Fokusnya untuk membuat tampilan aplikasi, 

bukan yang lain. 

Kita tidak boleh query data 

dari view, meskipun itu bisa dilakukan. 

Kadang juga kita akan membuat sedikit 

ogika di dalam view, seperti logika untuk 

menampilkan dan menghilangkan elemen tertentu. 

Apa yang kita lihat di aplikasi, itu adalah 

kode dari View.

 

 

 

 

 

 

 

 

 

Bagaimana bentuk MVC di Codeigniter? 

Secara gambaran besar, kita akan berpikir.. 

kalau di Codeigniter itu cuma ada tiga kelompok 

kode yakni Model, View, dan Controller. 

Akan tetapi, dalam praktiknya.. 

kita akan membutuhkan juga kode-kode yang lain 

seperti library, utility, cofigurasi, dll. 

Berikut ini flowchart arsitektur aplikasi Codeigniter:

 

 

 

 

 

 

Alur kerjanya seperti ini:

2.  Mulai User mengirim request ke web

   File yang pertama kali dieksekusi 

   adalah index.php

   Lalu dari index.php, request akan diteruskan

   oleh routers.php

   routers.php akan mencari cache di server,

   apabila tedapat cache maka cache itu yang 

   akan dikirim sebagai balasan (response). 

Apabila tidak ada cache barulah request 

diteruskan ke Controller; 

Sebelum diteruskan ke Controller 

di sini ada lapisan Security untuk keamanan; 

Controller akan bertanggunag jawab untuk 

mengambil data dari Model dan me-rendernya ke 

dalam View dengan menggunakan library, 

plugin, dan helper yang ada. 

Hasil render (view) dikirim ke pengguna dan 

disimpan dalam cache, apabila fitur cache aktif; 

Selesai. 

 

Memahami Router pada Codeigniter 

Router pada Codeigniter bertugas untuk menentukan 

controller dan method/fungsi yang akan dieksekusi.

P.S: 

 

Contoh project yang digunakan pada penjelasan ini 

adalah project bernama tokobuah sama seperti project 

beritacoding yang baru saja kita buat. 

Ketika kita membuka, http://localhost/tokobuah/

maka fungsi yang akan dieksekusi adalah fungsi index() 

yang berada di dalam controller welcome

class Welcome extends CI_Controller 

{ public function index() { $this->load->view('welcome_message'); } } 

Kenapa bisa begitu?

Ini karena konfigurasi router defaultnya adalah 

controller welcome.

Coba saja buka pada file  config/routers.php.

Fungsi index() adalah fungsi yang akan dieksekusi 

saat kita mengakses controller welcome. 

Sekarang coba buka  : 


 

 

 

 

 

 

 

 

 http://localhost/tokobuah/index.php/welcome/index,


maka kita akan mendapatkan hal yang sama 

seperti membuka  http://localhost/tokobuah/.

Latihan: 

Membuat Beberapa Router Sebagai latihan, 

coba tambahkan route /about/ dan /contact/ 

 

 

 

 

 

 

 

 

di dalam Controller Welcome dengan method ini: 

public function about() 

{ // fungsi untuk me-load view about.php $this->load->view('about'); } 

public function contact() 

{ // fungsi untuk me-load view contact.php $this->load->view('contact'); } 

Tambahkan di bawah method index().

 

 

 

 

 

 

 

 

 

Setelah itu tambahkan dua buah file view di dalam direktori ๐Ÿ“ views 

dengan isi sebagai berikut. ๐Ÿ“„ views/about.php

About Us

Ini adalah halaman about

๐Ÿ“„ views/contact.php

 

 

 

 

 

 

 

 

 

 

Route sudah kita tambahkan. Sekarang coba buka: 

http://localhost/beritacoding/index.php/welcome/about/ dan 

http://localhost/beritacoding/index.php/welcome/contact/ 

Atau bisa juga buka dari domain beritacoding.test yang 

sudah kita buat: 

http://beritacoding.test/index.php/about 

http://beritacoding.test/index.php/welcome/contact/ 

Hasilnya:

 

 

 

 

 

 

 

 

 

Apabila kita membuka http://beritacoding.test/index.php/contact,

 maka akan terjadi error 404 not found.

 

 

 

 

 

 

 

 

Kenapa bisa begitu? Ini karena route yang baru saja 

kita buat, belum didaftarkan ke dalam routers.php. 

Sekarang buka file ๐Ÿ“„ config/routers.php, lalu tambahkan

kode berikut. $route['about'] = 'welcome/about'; 

$route['contact'] = 'welcome/contact'; 

Tambahkan di bawah kode route yang sudah ada.

 

 

 

 

 

 

 

 

 

 

Hasilnya:

 

 

 

 

 

 

 

 

Apakah kita harus menambahkan route pada 

routers.php di setiap pembuatan route baru? 

 Jawabannya: Tidak harus, karena CI juga mampu mendeteksi 

otomatis route berdasarkan nama controller dan 

method yang dibuat.3

 

 

 

 

 

 

 

 

Ini formatnya: 

 

 http://example.com/[controller-class]/[controller-method]/[arguments] 

Penambahan route pada ๐Ÿ“„ routers.php dibutuhkan saat kita

 ingin membuat kustom route untuk controller tertentu. 

Latihan: Ubah Controller Welcome Biar enak, kita ubah 

Controller Welcome menjadi Page. 

 Ubah nama Welcome.php menjadi Page.php:

 

 

 

 

 

 

 

 

Lalu ubah, isinya menjadi seperti ini: load->view('home'); } 

public function about() { $this->load->view('about'); }

 public function contact() { $this->load->view('contact'); } } 

Perhatikan! Di Controller Page,

 kita melakukan load view home dan view ini 

belum kita buat. Kita bisa memanfaatkan view 

welcome_message.php untuk menjadi view home. 

Silahkan rename welcome_message.php menjadi home.php:

 

 

 

 

 

 

 

Terakhir.. 

Ubahlah route default di config/routes.php 

menjadi seperti ini: 

$route['default_controller'] = 'page'; 

$route['404_override'] = ''; 

$route['translate_uri_dashes'] = FALSE; 

$route['contact'] = 'page/contact'; 

$route['about'] = 'page/about';

Nah, sekarang kita sudah punya Controller Page

yang berfungsi untuk menampilkan beberapa 

halaman seperti Home, About, dan Contact. 

Apa Selanjutnya? Kita sudah belajar tentang MVC

dan Route. Ini memang masih dasar. 

Selanjutnya nanti kita akan banyak menggunakannya. 

Jadi, harap diphami betul dua hal ini. 

Jika masih bingung, silahkan ditanyakan melalui 

komentar. 

Berikutnya kita akan belajar tentang Controller 

lebih dalam lagi, seperti bagaimana cara 

mengolah input dari form dan aturan 

penulisan Controller.


0 komentar:

Posting Komentar

Kirim ke Dinding Google Plus

TULIS COMENTAR ANDA DISINI

Islam Agamaku

KOSONG

Big Cat Gallery

Baca Al-Qur'an

>