Friday, July 30, 2010

Aliran data sistem

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.

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

Konfigurasi CodeIgniter

Setelah sukses menginstall CodeIgniter dan memahami folder-folder yang ada pada CodeIgniter, langkah selanjutnya sebelum kita membangun aplikasi web adalah memahami konfigurasi yang harus dilakukan. Seperti telah dijelaskan sebelumnya, di dalam CodeIgniter terdapat folder system/application/config, yang berisi file-file untuk mengendalikan konfigurasi dari CodeIgniter. File-file konfigurasi utama yang perlu untuk dipahami adalaha file config.php, autoload.php, database.php, dan routes.php.

Tahapan konfigurasi yang biasa dilakukan pada pengembangan aplikasi CodeIgniter adalah sebagai berikut:

  1. Konfigurasi base_url

Base_url adalah nama dari situs kita. Dalam masa pengembangan, nama base_url biasanya kita isi dengan nama localhost. Tetapi apabila aplikasi web kita, akan kita unggah ke dalam web server dengan domain tertentu, maka kita harus mengisinya dengan nama dari website kita. Jika tidak maka akan terjadi error yang menyebabkan aplikasi web kita tidak jalan.

Konfigurasi base_url ini terdapat pada file config.php, dengan sintak sebagai berikut:

$config['base_url'] = "http://nama-situs-kita.com/";
  1. Konfigurasi routing

Konfigurasi routing dilakukan untuk menentukan controller mana yang akan dipanggil pada saat kita menuliskan alamat website pada web browser. Misalkan ketika kita memanggil http://localhost, maka sistem akan mencari controller mana yang merupakan controller yang harus pertama kali dipanggil.

Konfigurasi routing terdapat pada file routes.php, dengan sintak sebagai berikut:

$route['default_controller'] = "welcome";

Dengan sintak seperti di atas, maka controller yang pertama kali dipanggil ketika alamat website kita dipanggil adalah controller welcome. Apabila kita menginstall CodeIgniter, CodeIgniter akan menyertakan satu buah controller yang dinamakan controller welcome. Apabila kita sudah membuat suatu controller, dan controller tersebut akan kita jadikan sebagai controller yang pertama kali dipanggil, maka ganti nama controller welcome dengan nama controller yang telah kita buat. Misalkan controller yang kita buat namanya adalah berita, maka ganti controller welcome dengan controller berita.

$route['default_controller'] = "berita";

  1. Konfigurasi library

CodeIgniter telah menyediakan berbagai macam library, helper, plugin untuk membantu pengembang dalam mengembangkan aplikasi web dengan cepat dan efisien. Untuk dapat menggunakan library-library ini, pengembang bisa melakukan proses loading terhadap library-library ini di dalam controller. Pengembang juga dapat mengatur supaya library-library tersebut dapat secara otomatis digunakan tanpa harus selalu melakukan proses loading. Biasanya untuk library-library yang selalu digunakan seperti library untuk database, selalu diatur supaya secara otomatis dapat digunakan tanpa harus selalu melakukan proses loading di controller. Konfigurasi untuk mengatur supaya library dapat secara otomatis digunakan terdapat pada file autoload.php. Contoh sintak untuk melakukan proses autoloading terhadap library, plugin, helper adalah sebagai berikut:

$autoload['libraries'] = array(“database”,”input”,”session”);

$autoload['helper'] = array(“array”,”date”,”form”);

$autoload['plugin'] = array('captcha', 'js_calendar');


  1. Konfigurasi database

Konfigurasi database dilakukan untuk menentukan jenis database apa yang akan kita gunakan dan data-data terkait yang dibutuhkan untuk dapat menjalankan database tersebut (misal username dan password). Konfigurasi database ini terdapat pada file database.php. Berikut setingan utama yang harus dilakukan pada database:


$db['default']['hostname'] = "localhost"; //diisi dengan nama hostname dari database kita.
//Biasanya cukup dengan localhost.
$db['default']['username'] = ""; //diisi dengan nama dari username database kita
$db['default']['password'] = ""; // diisi dengan password
$db['default']['database'] = ""; //diisi dengan nama database
$db['default']['dbdriver'] = "mysql"; //diisi dengan jenis database yang kita gunakan.
//Pada contoh ini digunakan database dengan jenis mysql





Thursday, July 29, 2010

Struktur file CodeIgniter


Setelah berhasil menginstall CodeIgniter, mari kita lihat struktur file dari CodeIgniter tersebut.

Dari gambar di atas, dapat kita lihat bahwa file-file framework Codeigniter yang digunakan untuk mengembangkan aplikasi web terdapat pada folder system. Folder-folder ini dapat digolongkan ke dalam tiga kelompok besar sebagai berikut:

  • Kelompok pertama adalah kelompok folder yang akan kita isi dengan file-file aplikasi web yang akan kita buat. Kelompok folder ini terdiri dari folder Model, View, dan folder Controller. Ketiga folder ini terdapat pada folder Application.

  • Kelompok kedua adalah kelompok folder yang berisi file-file untuk menjalankan system. Folder-folder ini terdiri dari folder system/codeigniter, system/libraries, system/database. Kita bisa membaca dan merubah file-file tersebut, tetapi ingat bahwa merubah file-file ini bisa menyebabkan perubahan pada bagaimana system berjalan. Jadi hati-hati ketika berniat untuk merubah file-file ini.

  • Kelompok ketiga adalah kelompok folder yang sudah ditulis oleh pengembang CodeIgniter, tetapi mungkin memerlukan penambahan atau perubahan. Folder-folder ini terdiri dari folder language, config, error. Pada dasarnya folder-folder ini sudah diatur pada setingan default, tetapi kita perlu untuk merubah beberapa file yang ada pada folder config begitu selesai menginstall CodeIgniter, untuk menentukan beberapa setingan penting.

Lengkapnya penjelasan mengenai folder-folder yang ada pada folder system/ adalah sebagai berikut:

  • application adalah folder yang berisi aplikasi yang kita bangun. Pada dasarnya folder ini berisi model-model, view-view, controller-controller dan lainnya (seperti helper dan plugin). Dengan kata lain folder ini tempat dimana kita akan meletakkan hampir semua kode yang kita buat.

  • cache adalah folder yang berisi semua halaman yang di-cache untuk aplikasi kita.

  • codeigniter adala folder tempat dimana kode utama dari CodeIgniter berada. Sebaiknya kita tidak merubah isi dari folder ini.

  • database adalah folder yang berisi driver-driver database dan yang berkaitan dengan database. Sekali lagi sebaiknya tidak merubah isi dari folder ini.

  • fonts adalah folder yang berisi informasi dan hal yang terkait dengan font.

  • helpers adalah folder yang berisi helper-helper standar yang ada di CodeIgniter (seperti date, cookie, dan URL helper).

  • language adalah folder yang berisi file-file bahasa. Kita bisa mengabaikan folder ini.

  • libraries adalah folder yang berisi librari-librari standar yang ada pada CodeIgniter untuk membantu membuat calendar, mengunggah file, dan lainnya. Kita bisa membuat librari kita sendiri atau mengembangkan librari yang sudah ada, bahkan menggantikan librari yang sudah ada, tetapi librari-librari ini sebaiknya disimpan pada folder application/libraries untuk memisahkan dari librari-librari standar yang ada pada direktori ini.

  • logs adalah folder yang digunakan CodeIgniter untuk menulis error dan log-log yang lain

  • plugins adalah folder yang berisi plugin. Plugin dan helper pada dasarnya sama, yang membedakan adalah plugin biasanya terdiri dari satu fungsi sementara helper sering memiliki banyak fungsi dalam satu file.

Seperti sudah disinggung sebelumnya, folder system/application merupakan folder yang sangat penting karena 99% pekerjaan pengembang akan berhubungan dengan folder tersebut. Folder system/application dipecah menjadi beberapa folder yaitu sebagai berikut:

  • config adalah folder yang berisi beberapa file penting yang mengendalikan konfigurasi sistem. File-file ini mengatur mengenai database dan variabel-variabel yang perlu diketahui CodeIgniter.

  • controllers adalah folder yang berisi controller-controller yang kita buat untuk aplikasi kita.

  • errors adalah folder yang berisi template-template error dari CodeIgniter. Kita boleh merubahnya sesuai dengan keinginan kita.

  • Hooks adalah folder yang berisi hook-hook yang kita buat. Hook sendiri adalah cara terbaik untuk memperluas inti dari CodeIgniter.

  • libraries adalah folder yang berisi librari-librari yang kita buat khusus untuk aplikasi kita.

  • models adalah folder yang berisi file-file model yang kita buat untuk aplikasi kita.

  • views adalah folder yang berisi file-file view yang kita buat untuk aplikasi kita.

Instalasi CodeIgniter

Instalasi CodeIgniter pada WAMPServer sangatlah mudah. Ekstrak file CodeIgniter 1.7 yang telah di-download. Copy ke dalam direcotry root dari server. Directory root adalah direktori tempat di mana server akan mencari file-file yang akan ditampilkan pada browser. Directory root pada WAMPServer secara default adalah direktori 'www' .


Secara default, di dalam folder 'www' terdapat file 'index.php'. File ini akan menampilkan halaman pembuka pada saat kita mengecek server seperti pada gambar di atas. Sebelum kita meng-copy file-file CodeIgniter, hapus terlebih dahulu file 'index.php' ini. Setelah meng-copy file-file CodeIgniter, periksa apakah aplikasi framework CodeIgniter sudah terinstall. Caranya sama dengan pada saat kita memeriksa kesiapan server, yaitu dengan memanggil localhost. Apabila tampilan yang keluar pada web browser adalah seperti di bawah ini, maka instalasi dari CodeIgniter berhasil. Kita sekarang sudah siap untuk membangun aplikasi PHP dengan menggunakan framework CodeIgniter.


Wednesday, July 28, 2010

Instalasi WAMPServer

Untuk menginstall CodeIgniter, sebelumnya kita perlu untuk menginstall terlebih dulu web server dan PHP. Aplikasi database dapat ditambahkan untuk mendukung aplikasi web yang dinamis. Dalam hal ini, penulis menggunakan aplikasi database yang umum digunakan di aplikasi web, yaitu aplikasi MySql.
Untuk memudahkan proses instalasi, penulis menggunakan paket aplikasi WAMPServer, yaitu paket aplikasi yang terdiri dari aplikasi web server Apache, Mysql dan PHP yang diperuntukkan untuk lingkungan sistem operasi windows. Dengan menggunakan paket aplikasi WAMPServer ini, kita tidak perlu terlalu banyak melakukan proses konfigurasi untuk dapat mengintegrasikan web server Apache, PHP dan Mysql. File aplikasi WAMPServer, ada di dalam CD, atau apabila ingin mendapatkan versi WAMPServer terbaru dapat mengunduhnya secara gratis (WAMPServer lisensinya adalah GPL) di http://www.wampserver.com.
Untuk menginstall aplikasi WAMPServer ini, klik dua kali file WAMPServer yang ada di CD. Akan muncul tampilan petunjuk instalasi seperti gambar berikut ini:


Kemudian ikuti petunjuk instalasinya dari awal sampai akhir. Untuk tahap pengembangan aplikasi, sebaiknya gunakan settingan default sesuai yang diatur oleh aplikasi. Setelah seluruh tahapan dilalui, klik finish untuk mengakhiri proses instalasi, dengan terlebih dahulu memilih opsi untuk langsung menjalankan aplikasi WampServer.

Untuk mengetahui sukses tidaknya instalasi WampServer, dapat dilihat pada indikator yang ada pada kanan bawah dari tampilan Windows. Tampilan seperti pada gambar berikut ini menunjukkan bahwa WAMPServer telah terinstal:

Selanjutnya untuk mengetahui kesiapan WAMPServer untuk digunakan sebagai server pengembangan aplikasi berbasis PHP, dapat dilakukan dengan mengeklik pada ikon WAMPServer, dan pilih localhost, seperti berikut ini:

Pengecekan kesiapan server juga dapat dilakukan dengan langsung memanggil localhost atau 127.0.0.1. Tampilan pada browser ketika kita mengakses localhost adalah seperti pada gambar berikut ini:

Apa itu MVC?

CodeIgniter didasarkan pada pola pengembangan software yang biasa disebut pola Model-Visual-Controller (MVC). MVC adalah pendekatan pengembangan software yang memisahkan antara logika aplikasi dari presentasi. Maksudnya adalah dengan MVC, kita bisa meminimalisir scripting pada halaman web, karena presentasi terpisah dari scripting PHP. Berikut penjelasan untuk tiap kompoen CodeIgniter:
  • Model merepresentasikan data struktur dari aplikasi yang kita buat. Biasanya kelas-kelas model akan berisi fungsi-fungsi yang membantu untuk mengambil, menambah dan memutakhirkan informasi di dalam database.
  • View adalah informasi yang dipresentasikan ke pengguna. Biasanya view merupakan halaman web, tapi juga bisa berupa bagian dari halaman seperti misalnya header atau footer.
  • Controller berfungsi sebagai penghubung antara model, view dan komponen lainnya yang dibutuhkan untuk memproses HTTP request dan menghasilkan halaman web.

Cara kerja dari pendekatan MVC pada CodeIgniter dapat digambarkan sebagai berikut:

Apa itu Framework CodeIgniter?

Ketika orang mulai melakukan pemrograman, orang menemukan bahwa ketika membangun suatu aplikasi, ada banyak operasi yang dilakukan secara berulang. Misalkan setiap kali melakukan koneksi ke database, maka kita harus selalu menuliskan kode untuk koneksi ke database. Orang kemudian mulai berfikir bagaimana caranya untuk melakukan penyederhanaan proses-proses ini dengan cara membuat fungsi-fungsi yang membantu pemrograman supaya lebih cepat. Dari sinilah kemudian muncul konsep framework, yaitu suatu pendekatan untuk menyederhanakan pengembangan aplikasi dengan menyediakan fungsi-fungsi yang dibutuhkan, dan melakukan strukturisasi dari fungsi-fungsi tersebut.

Framework CodeIgniter merupakan framework pengembangan aplikasi web yang menggunakan PHP. Tujuan dari CodeIgniter adalah untuk memberikan kesempatan kepada orang untuk membuat web lebih cepat dibanding apabila dilakukan dari nol (from scratch), dengan menyediakan sekumpulan library untuk mengerjakan proses-proses yang biasa dilakukan, disertai dengan interface dan struktur logika yang sederhana untuk mengakses library ini.

Beberapa keuntungan yang didapat dari CodeIgniter diantaranya adalah:

  • CodeIgniter ini merupakan framework yang gratis, dimana kita bisa mengunduh dan menginstallnya tanpa harus membayar.

  • CodeIgniter ini sangat ringan, dimana system utamanya hanya memerlukan sedikit sekali library. Berbeda dengan kebanyakan framework yang membutuhkan resources yang lebih banyak. Library tambahan dapat ditambahkan secara dnamis berdasarkan permintaan sehingga system dasar sangat kecil dan cepat.

  • Framework telah banyak dibuktikan sebagai framework yang cepat dibandingkan kebanyakan framework PHP yang ada.

  • CodeIgniter menggunakan pendekatan konsep Model-Visual-Controller (MVC), sehingga pengembangan aplikasi menjadi lebih teratur dan terstruktur.

  • CodeIgniter dapat menghasilkan URL yang bersih.

    Contoh URL yang bersih:

www.contoh.com/berita/tajuk/1
  • CodeIgniter datang dengan sekumpulan library yang biasanya dibutuhkan untuk mengembangkan website, misalnya untuk mengakses database, mengirim email, memvalidasi form data, memelihara session, memanipulasi gambar, dan sebagainya.

  • CodeIgniter dapat dengan mudah diperluas kemampuannya sesuai dengan yang kita inginkan melalui penggunaan plugin dan helper.