Belajar CodeIgniter 3 – Pemula

Sudah lama keinginan saya di sini mengajarkan CodeIgniter 3 atau biasa di singkat CI. Seperti biasa saya di sini tidak akan menerangkan pengertian apa itu CI secara mendetail, akan tetapi CI ini adalah salah satu PHP Framework yang paling banyak digunakan di Indonesia, mengapa? Karena konsep PHP Framework di CI itu sangat mudah dipelajari bagi Anda yang sudah terbiasa dengan PHP Native atau Procedural, karena meskipun CI menggunakan konsep OOP, akan tetapi ia fleksibel, Anda masih bisa memakai kodingan style Anda yakni PHP Procedural tersebut di CI. Oleh karena itu CI lebih banyak diminati bagi kalangan pemula.

Sebelumnya, jujur saja saya juga masih pemula dan bukan seorang master atau senior dipemrogaman PHP ini. Akan tetapi di sini, kita sama-sama belajar dan saya menuliskan tutorial ini juga pada dasarnya hanya mencatat apa yang telah saya pelajari, dalam hal ini CI itu sendiri.

Oke saya rasa cukup untuk pembukaanya, langsung saja kita mulai belajar 🙂

Tahap Sebelum Menggunakan CI

Ada tahapan dimana sebelum menggunakan framework, yang paling penting adalah:

  1. Anda harus menguasai PHP Procedural itu sendiri.
  2. Anda harus menguasai PHP OOP silahkan baca: Konsep Dasar PHP OOP.
  3. Pemahaman tentang M-V-C (Model, View, Controller) silahkan baca: Konsep Dasar MVC
  4. Minimal Anda mengerti tentang CRUD (Create, Read, Update, Delete).

Jika syarat itu sudah Anda penuhi Anda boleh mempelajari CI ini.

Sebelum menulis CI, saya juga sudah mempostingkan beberapa tutorial PHP Framework lainnya yakni Yii2 (https://www.situsali.com/cara-install-yii2/) dan Laravel 5.1 (https://www.situsali.com/cara-install-laravel-5-1/), saya menyarankan Anda jangan langsung lompat ke Yii2 apalagi Laravel karena itu menyulitkan, pelajari dulu CI, nanti baru Anda bisa mencoba framework yang lain.

Setelah itu, pastikan Anda sudah mengunduh CI 3 di situs resminya (http://www.codeigniter.com/download).

Pemahaman Dasar Struktur Direktori

Sebelum masuk kekodingan pahami terlebih dahulu struktur direktori CI tersebut.

ci3-ss1
Terdapat 3 direktori secara default dari CI tersebut yakni:

  1. application
    Ini adalah tempat Anda menyimpan atau memulai atau membuat aplikasi Anda. Di dalam direktori inilah yang nantinya web kita ditampilkan di browser.
  2. system
    Ini adalah tempat dimana core atau inti dari CI tersebut yang memuat tentang database, library, helper dan lain-lain. Yang mana di direktori ini Anda tidak disarankan merubah code yang ada di dalamnya, kecuali jika Anda sudah benar-benar paham tentang CI. Akan tetapi, jika ada beberapa fungsi core CI tersebut ada yang tidak sesuai dengan kebutuhan Anda, Anda bisa meng-extend beberapa class (nanti ini akan dibahas pada artikel selanjutnya).
  3. user_guide
    Ini adalah tempat dokumentasi CI secara offline yang bisa Anda pelajari ditulis dalam bahasa Inggris.

Yang lain sisanya adalah sebuah berkas (file) semua berkas itu boleh Anda hapus terkecuali index.php atau mungkin composer.json bagi Anda yang sudah familiar dengan composer, jika belum bisa Anda hapus juga file tersebut.

Kemudian Anda masuk ke dalam direktori aplication di mana di sini nanti digunakan sebagai aplikasi web Anda. Berikut ini adalah susunan direktorinya:

ci3-ss2

  1. Cache
    Adalah tempat untuk men-caching web Anda. Ini berfungsi memberikan performa web Anda, yang berefek pada kecepatan load web Anda.
  2. Config
    Adalah tempat untuk mengaturan aplikasi Anda, dari mulai database, routing, mime, hook, config, autoload dan lain sebagainya.
  3. Controllers
    Ini adalah direktori dimana menjadi inti dari aplikasi Anda untuk mengontrol antara model dan views.
  4. Core
    Di sini tempat direktori di mana berfungsi untuk meng-extend class dari system jika dirasa core dari sistem terdapat fungsi yang kurang bagi Anda.
  5. Helpers
    Direktori ini tempat dimana Anda bisa membuat beberapa fungsi (function) tambahan yang nantinya berguna baik untuk controller, model dan view.
  6. Hooks
    Ini adalah tempat di mana Anda bisa menyentuh lebih dalam atau memodifikasi core tanpa harus meng-hack core dari CI tersebut. Berbeda dengan core dalam direktori application --> core, dimana di direktori tersebut Anda hanya mengextendkan class yang sudah ada di core system.
  7. Language
    Tempat Anda bisa membuat website Anda menjadi multibahasa.
  8. Libraries
    Tempat di mana Anda bisa membuat sebuah library baru, atau juga bisa membuat library yang Anda extendkan dari system.
  9. Logs
    Direktori tempat pencatatan log.
  10. Model
    Ini adalah direktori di mana untuk kode pengaturan database Anda yang nantinya akan dihubungkan dari controller yang akan diteruskan ke view.
  11. Third_party
    Direktori pembuatan pihak ketiga.
  12. Views
    Ini adalah direktori di mana tempat yang akan nantinya ditampilkan di browser Anda, di sinilah direktori dimana design front-end web Anda diletakan.

Pemahaman Dasar index.php

Jika struktur direktori CI sudah Anda pahami, langkah selanjutnya masuk ke persoalan dasar di mana akan saya bahas mengenai index.php yang terdapat dalam berkas (file) di awal atau di depan direktori application.

Pertama, Anda set environment terlebih dahulu aplikasi Anda. Yakni pada kode:

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

Anda rubah di kode $_SERVER['CI_ENV'] : 'development' .Di CI ada 3 tahapan environment ini. Yakni:

  1. Development
    Ini adalah sesi di mana di sini Anda mengaktifkan fungsi pengecekan error di apache (error_reporting). Jadi pada tahap development inilah kodingan Anda error seperti masalah variable yang tak terdefinisi, kode yang telah depricated, syntax code yang salah semuanya akan tertampil di browser.
  2. Testing
    Ini adalah disesuaikan dengan pengaturan default apache Anda. Jika pengaturan default Apache Anda error_reporting di aktifkan maka error akan ditampilkan di browser, jika tidak, tidak pula tampil di browser.
  3. Production
    Ini adalah sesi dimana jika kodingan Anda sudah siap diproduksi dan beberapa pengaturan yang menampilkan error dinonaktifkan. Biasanya jika ada error dalam kodingan Anda di browser hanya menampilkan gambar putih tanpa keterangan (white screen). Ini berfungsi untuk menutupi beberapa error seperti variable yang tak terdefinisi, kode yang telah depricated dan lain-lain tidak tampil di browser Anda.

Yang kedua, tentang path dari direktori application dan system Anda. Secara default CI memberikan nama project Anda dengan application dan core dari CI tersebut dengan nama system.

Jika Anda ingin merubah direktori application menjadi nama lain, semisal dengan nama aplikasi_ci_ku Anda dapat merubah direktori application itu kemudian Anda rubah kode pada bagian:

$application_folder = 'application';

Begitu juga dengan direktori system, jika Anda ingin merubahnya menjadi misalnya menjadi sistem_ci, lakukan hal yang sema seperti Anda merubah direktori application tersebut, Anda rubah pada bagian variable berikut:

$system_path = 'system';

Kemudian jika Anda ingin merubah direktori views yang mana defaultnya berada pada direktori application --> views Anda bisa mengubah variable di bawah ini sesuai dengan path direktori yang telah Anda rubah:

$view_folder = '';

Sampai di sini dulu pelajaran kita, semoga ini menjadi pembelajaran dasar dari yang paling dasar Anda mengatahui menggunakan PHP Framework, dalam hal ini framework CodeIgniter 3.

Semoga bermanfaat 😀

Artikel Terkait

25 responses to “Belajar CodeIgniter 3 – Pemula”

  1. idris nurman Avatar
    idris nurman

    mas kalau setiap tabel itu model sama controllernya berbeda2 ya?

    1. Ali Avatar
      Ali

      Satu tabel satu model usahakan, meskipun bisa satu model banyak table. Masalah controller kan bisa memanggil model yang diinginkan mas 🙂

  2. Chandra Ahmad Avatar
    Chandra Ahmad

    mas gimana cara setting index.phpnya ?
    misalnya saya mau nampilin tampilan utama form login

    1. Ali Avatar
      Ali

      Bukan di index.php nya mas, melainkan di default controller nya ada di file, application/config/routes.php
      Bisa baca artikel saya mengenai routing di CI https://situsali.com/belajar-codeigniter-3-dasar-routing/

  3. rdeeceria Avatar
    rdeeceria

    mas, saya mau berbagi ni, ada temuan kalo codeigniter untuk ci_ model bisa manggil beberapa ci_model lagi dengan function berbeda. Namun kalo pake method $_GET dalam satu function itu ga bisa ternyata manggil ci_model lagi. , cmiw

  4. Nanda Merita Avatar

    sangat membantu.
    Terima Kasih.

  5. sucahyoblog Avatar

    Gan ada list untuk pemula banget gak mas, semacam daftar isi khusus CI ?

  6. chika sinaga Avatar

    terima kasih atas infonya gan 🙂
    salam kenal ya..

  7. jaya Avatar

    Thank ilmu yang bermanfaat.

  8. hanafi06 Avatar

    mas, punya pos yg bersangkutan tentang CI lg ga? punten di share.. TQ

  9. Andi S Prabowo Avatar
    Andi S Prabowo

    Sangat membantu pemula seperti saya yang belajar tanpa guru, ,,, ?

  10. radi Avatar
    radi

    posting yang sangat bermanfaat …

  11. Agus Barizi Avatar

    posting yang sangat bermanfaat …

  12. winda Avatar
    winda

    saya pemula belum pernah belajar php, bisa langsung belajar CI ga ya mas? mohon responnya 🙂

    1. Ali Avatar

      Sepertinya tidak bisa, karena salah satu syarat menggunakan PHP framework itu, harus ada basic dari PHP, pelajari saja basic nya terlebih dahulu mas.

  13. Nisa Avatar
    Nisa

    Mas ali masih sekolah ada sudah kerja?terimakasih mas sangat membantu sekali

  14. Maajid Jati Laksamana Avatar

    Terima Kasih Atas Infonya..

  15. no name Avatar
    no name

    terimakasih.. sangat membantu

  16. Maajid Jati laksamana Avatar

    iya menurut saya informasi diwebsite ini sangat menarik

  17. Alghifari Fikri Santoso Avatar

    menarik untuk dibaca, serta dapat membantu menambah pengetahuan.

  18. Lupacode Avatar

    Mantap jiwa pak, terus berkarya selalu pak, saya tunggu tutorial menarik lainnya seputar codeigniter .. Happy coding !

  19. I V Agung Eko Priyono Avatar
    I V Agung Eko Priyono

    Min kalo boleh tau situ ini build pakai wordpress atau CI? hehe

  20. Gusswib Avatar
    Gusswib

    mas , bagaimana cara nya kalau bikin halaman front dan ada halaman backend nya juga?

    terima kasih

    1. Ali Avatar

      tinggal dibikin route dan controller nya aja

Leave a Reply to Lupacode Cancel reply

Your email address will not be published. Required fields are marked *