Mengenal Framework Codeigniter Dan Memecahkan Masalah Serta Mencari Solusi Codeigniter

1.1.Latar belakang

Codeigniter adalah sebuah framework PHP. Framework itu sendiri adalah suatu kerangka kerja yang berupa sekumpulan folder yang membuat file-file php yang menyediakan class libraries,helpers,plugins dan lainnya.

1.2.Mendapatkan codeigniter

Codeigniter dapat diperoleh secara gratis dengan mendownladnya di www.codeigniter.com

Instalasi codeigniter

Cara menginstal codeigniter cukup mudah,setelah mendapat file kompresi yang didapat dari situs www.codeigniter.com dan menempatkannya didalam folder directory web server anda. Kemudian edit file config.php yang ada diaplication/config/config.php dan set URL anda.

Setelah dilakukan instalasi dan setting,tes codeigniter anda dihalaman browser dengan mengetikan url yang anda taruh di file config.php, misal :http://localhost/ci. Jika muncul halaman welcome ala codeigniter,maka codeigniter telah siap digunakan.

1.3. konsep model-view-controler (MVC)

konsep MVC adalah konsep pemisahan antara logic dengan tampilan dan databasenya. Manfaat konsep ini adalah membuat coding logic lebih simple,karena sudah dipisah dengan code untuk tampilan dan membuat programmer dapat bekerja secara terpisah dengan designer. Programmer mengerjakan logic sedangkan designer berkutat dengan design dan tampilan.

Model => merupakan code struktur data. Model berisi fungsi di dalam pengolahan database

View => merupakan code untuk menampilkan tampilan program. Tampilan dapat berupa web

Page,header,footer dan apa saja yang berjenis tampilan

Controller => merupakan code untuk logic,algoritma dan sebagai penghubung antara model,view,dan sumber lain yang diperlukan untuk mengolah HTTP request dan generate web page.

1.4. coding dengan codeigniter

Membuat “Hello World” di CI

Berikut adalah cara menampilkan tulisan “Hello World” kedalam browser kita.

Langkah-langkahnya adalah sebagai berikut :

a. buka Text Editor anda. Lalu buatlah sebuah controller didalam directory CI anda,yaitu di : system/application/controllers.

b. Tulis code beikut :

<?php

Class Hello extends controller

{

Function index()

}

$this->load->view(‘helloview’);

}

}

?>

Beri nama file hello.php

Yang perlu diperhatikan

Nama class harus diawali dengan huruf bersar. Nama class harus sama dengan nama file.

Function index adalah function default. Di url tidak perlu dituliskan nama function index nya. Kalua nama function selain index,perlu ditulis di urlnya.

c. buat file baru dengan nama helloview.php system/application/views . tulis kode berikut :

<?

Echo “Hello World”;

?>

d. Misal base_url : http://localhost/ci , maka jalankan di url anda menjadi : http://localhost/ci/hello. Maka akan muncul hasilnya.

2.1. Codeigniter Mengenal Kesalahan dan Cara Mengatasi Kesalahan

Didalam menjalankan program berbasis codeigniter tentunya ada kesalahan dan error yang sering kita jumpai, karena jika menjumpai kesalahan atau error warning maka program akan tidak jalan sesuai yang kita inginkan, berikut beberapa kesalahan yang tampil ketika membuat program menggunakan codeigniter dan bagaimana cara mengatasinya:

Kesalahan Fatal error: Call to undefined function redirect()

Apa itu kesalahan function redirect()?. kalau terjadi kesalahan seperti ini biasanya didalam file controller yang kita punya memiliki kode redirect() untuk melakukan perintah yang kita inginkan, coba dilihat didalam file controller yang kita punya, jika ada bukan kesalahan pada kode yang ada di controller kita, karena kita inginkan perintah redirect ini untuk dijalankan, namun kesalahan ini terjadi karena tidak bisa memanggil file url_helper.php yang ada didalam file system\helpers\ (silahkan dilihat difolder system\helpers\), yang mana isi dari url_helper.php memiliki kode atau function redirect yang berguna untuk menjalankan perintah redirect lihat kodenya dibawah ini

if ( ! function_exists(‘redirect’))

{

function redirect($uri = ‘’, $method = ‘location’, $http_response_code = 302)

{

if ( ! preg_match(‘#^https?://#i’, $uri))

{

$uri = site_url($uri);

}

switch($method)

{

case ‘refresh’ : header(“Refresh:0;url=”.$uri);

break;

default : header(“Location: “.$uri, TRUE, $http_response_code);

break;

}

exit;

}

}

Lalu bagaimana supaya function redirect yang ada didalam file url_helper.php bisa dijalankan?. Untuk bisa menjalankan fungsi atau function redirect ini melalui file autoload.php yang ada didalam folder application\config\ (silahkan dilihat) karena file autoload.php ini memerintahkan secara otomatis function-function yang ada didalam file url_helper.php. jadi untuk kasus seperti ini bagaimana cara mengatasi kesalahan Fatal error: Call to undefined function redirect()? ini, berikut caranya:

Buka file autoload yang ada didalam folder application\config\

Tambahkan fungsi ‘url’ kedalam array helper, lihat seperti kode dibawah ini

$autoload[‘helper’] = array();

Menjadi

$autoload[‘helper’] = array(‘url’);

Maka dengan menambahkan kode url seperti di atas maka akan menjalankan perintah function redirect yang ada di url_helper.php
 Kesalahan Berikutnya:

Kesalahan : Message: Undefined property: C_Pagination::$db

Jenis kesalahan dengan mendapatkan pesan seperti ini adalah jika didalam controller kita adanya perintah kode pagination seperti contoh dibawah ini:

$this->pagination->initialize($config);

Kode ini bahwa controller.php memerintahkan untuk menjalankan atau meload database.php dengan perintah “function initialize” yang ada didalam file Pagination.php yang ada didalam folder system\libraries\ (lihat kodenya).

function initialize($params = array())

{

if (count($params) > 0)

{

foreach ($params as $key => $val)

{

if (isset($this->$key))

{

$this->$key = $val;

}

}

}

}

Lalu bagaimana cara mengatasi kesalahan dengan pesan Message: Undefined property:C_Pagination::$db ini, yaitu dengan cara membuka file autoload.php yang ada didalam folder application\config\. maka tambahkan kode ‘database’ dan ‘pagination’ kedalam array. lihat seperti dibawah ini:

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

Menjadi

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

Maka dengan menambahkan autoload database.php yang ada didalam folder application\config\ dan pagination.php yang ada didalam foler system\libraries\ maka kedua file ini secara otomatis dibuka untuk melakukan perintah yang kita inginkan untuk menjalankan function-function yang ada didalam file pagination.php dan database.php
 Kesalahan Berikutnya:

Kesalahan A Database Error Occured No database selected

Kesalahan ini adalah kesalahan yang terjadi tidak connect atau terhubungnya database yang dengan program codeigniter sehingga tidak bisa memanggil perintah yang dilakukan oleh program codeigniter. lalu bagaimana cara mengatasi jika terjadi kesalahan seperti ini, berikut caranya:

Buka file database.php yang ada didalam folde application\config\

Lalu isi username dan password serta nama database sesuai dengan username password dan nama database yang ada dilocalhost anda lihat contoh

$db[‘default’][‘hostname’] = ‘localhost’;

$db[‘default’][‘username’] = ‘’;

$db[‘default’][‘password’] = ‘’;

$db[‘default’][‘database’] = ‘’;

Menjadi

$db[‘default’][‘hostname’] = ‘localhost’;

$db[‘default’][‘username’] = ‘root’;

$db[‘default’][‘password’] = ‘mysql’;

$db[‘default’][‘database’] = ‘db_pagination’;
 Maka dengan menambahkan username, password localhost serta menambahkan nama database yang ingin kita gunakan, maka program codeigniter dapat terhubung atau dapat connect sehingga perintah yang ada di dalam folder application\model\ yang meminta tabel database bisa dijalankan.
 Kesalahan Berikutnya:

Kesalahan Fatal Error: call to a member function set_userdata() on a non object dengan Message: Undefined property: C_ontroller::$session

Kesalahan ini adalah ketika controller anda memiliki kode seperti ini

$this->session->set_userdata(‘row’, $this->uri->segment(3));

Yang mana perintah kode ini untuk menjalankan “function set_userdata” yang ada didalam file session.php yang mana file ini berada didalam folder system\libraries\ lihat kodenyanya dibawah ini:

function set_userdata($newdata = array(), $newval = ‘’)

{

if (is_string($newdata))

{

$newdata = array($newdata => $newval);

}

if (count($newdata) > 0)

{

foreach ($newdata as $key => $val)

{

$this->userdata[$key] = $val;

}

}

$this->sess_write();}

Maka kalau kita amati “function set_userdata” ini diperintahkan untuk dijalankan didalam controller yang kita isi dengan kode this-session=set_userdata, sehingga meminta me-load file session.php yang ada didalam folder system\libraries\ oleh karena itu untuk mengatasi masalah ini adalah dengan merintahkan load secara otomatis files session.php dengan menambahkan kode ‘session’ yang ada didalam file autoload.php yang ada didalam folder application\config\ lihat kodenya dibawah ini:

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

Menjadi

$autoload[‘libraries’] = array(‘database’,’pagination’,’session’);
 Maka dengan menambahkan kode ‘session’ didalam array ini maka otomatis menjalankan file session.php, sehingga semua function yang ada didalam file session bisa dijalankan ketika kita inginkan.
 Kesalahan Berikutnya:

Kesalahan : An Error Was Encountered In order to use the Session class you are required to set an encryption key in your confiq file

Kesalahan ini karena salah satu atau beberapa function yang kita gunakan didalam file session.php meminta kunci atau key seperti lihat kode dibawah ini:

function set_userdata($newdata = array(), $newval = ‘’)

{

if (is_string($newdata))

{

$newdata = array($newdata => $newval);

}

if (count($newdata) > 0)

{

foreach ($newdata as $key => $val)

{

$this->userdata[$key] = $val;

}

}

$this->sess_write();

}
 Coba lihat kode diatas yang mana “function set_userdata” dalam menjalankan fungsinya meminta key dalam menjalankan perintahnya. lalu bagaimana cara mengatasi kesalahan seperti ini?.
 Untuk kesalahan seperti ini dapat dilakukan dengan menambahkan key di dalam file config.php yang ada didalam folder application\config\ lihat seperti dibawah ini.

$config[‘encryption_key’] = ‘’;

Menjadi $config[‘encryption_key’] = ‘1234567890’;