Codeigniter untuk pemula, eps 2

Setelah sukses, semoga, dengan instalasi Codeigniter (CI), maka sekarang saatnya menjajal framework ini. Oh, ya, sebagai bantuan, saya aing menggunakan IDE Netbeans.

Pertama kita akan membuat controller dan view yang akan menampilkan hello world.

  1. Buat berkas hello.php di ci/application/controllers/.
    <?php
    
    //membuat kelas Hello
    class Hello extends Controller{
        //membuat fungsi default yang akan dipanggil kelas ini
        public function index(){
            //buat variabel $vars yang merupakan array
            //dimana key text berisi teks "Halo Dunia"
            $vars['text'] = "Halo Dunia";
            //controller ini meload tampilan dari file
            //hello_view.php yang terdapat dalam folder
            //ci/application/views/, yang digunakan cukup
            //nama berkas, tidak perlu ekstensi berkas.
            //dalam menampilkan file hello_view, variabel
            //$vars diikutsertakan
            $this->load->view('hello_view', $vars);
        }
    
    ?>
  2. Buat berkas hello_view.php di ci/application/views/.
    <?php
    
    //tampilkan variabel $text
    //variabel ini berasal dari $vars['text']
    //yang terdapat dalam controller hello.php
    echo $text;
    
    ?>
    
  3. Buka alamat http://localhost/ci/index.php/hello melalui browser Anda. Hasilnya kurang lebih seperti ini.
    CI Eps 2 Img 1

    Hello World

     

Lihat, kita butuh minimal dua berkas hanya untuk menampilkan hello world. Dengan metode lama, aing hanya butuh satu berkas, katakanlah, hello.php saja. Tapi dengan pattern MVC, aing bisa memisahkan antara bagaimana mengelola yang akan ditampilkan, dan bagaimana menampilkan. Terhindar dari spaghetti code dan segala macam masalah turunannya, bisa membuat template tampilan, dan pada akhirnya terasa betul memangkas waktu membuat situs/aplikasi dengan PHP. Mari kita lanjutkan.

Kedua, buat url situs/aplikasi kita lebih cantik dengan menghilangkan index.php.

  1. Buat berkas .htaccess di ci/.
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /ci/index.php/$1 [L]
    
        ErrorDocument 404 /ci/index.php
    
  2. Buka berkas config.php di ci/application/config/. Rubah baris yang berisi:
    $config['index_page'] = "index.php";

    Menjadi:

    $config['index_page'] = "";
  3. Melalui browser, buka http://localhost/ci/hello.

    CI Eps 2 Img 2

    Tanpa index.php

Lebih rapi kan, url kita sekarang? Hoho.

Mengenai controller, kita dapat membuat banyak fungsi di dalamnya. Misalnya selain fungsi index, kita ingin menambahkan fungsi fungsi1 yang dapat diakses melalui http://localhost/ci/hello/fungsi1/, hello adalah nama controller, fungsi1 adalah nama fungsi.

  1. Tambahkan ini ke dalam controller hello (ci/application/controllers/hello.php).
        //membuat fungsi default yang akan dipanggil kelas ini
        public function index(){
            //bagian ini tidak diubah
        }
    
        //membuat fungsi fungsi1
        public function fungsi1($parameter1, $parameter2){
            //membuat variabel $vars dengan key param1
            //yang berisi sama dengan variabel $parameter1 yang
            //diinput oleh user
            $vars['param1'] = $parameter1;
            //membuat variabel $vars dengan key param2
            //yang isinya sama dengan nilai variabel $parameter2
            $vars['param2'] = $parameter2;
            //fungsi fungsi1 meload tampilan dari file
            //hello_fungsi1_view.php variabel $vars diikutsertakan
            //fungsi fungsi1 bisa saja meload tampilan dari file
            //hello_view.php, sama seperti fungsi index, namun kali
            //ini kita gunakan saja file yang berbeda
            $this->load->view('hello_fungsi1_view', $vars);
        }
  2. Buat berkas file hello_fungsi1_view.php di ci/application/views/.
    //tampilkan variabel $param1
    echo 'Parameter 1: ' . $param1 . '<br />';
    //tampilkan variabel $param2
    echo 'Parameter 2: ' . $param2;
    
    ?>
  3. Buka http://localhost/ci/hello/fungsi1.
    CI Eps 2 Img 3

    Fungsi1

    Ups, sepertinya ada yang keliru, Missing argument dan Undefined variable. Oh, ya, fungsi1 membutuhkan 2 parameter, parameter1 dan parameter2.

        //membuat fungsi fungsi1
        public function fungsi1($parameter1, $parameter2){
    
  4. Buka http://localhost/ci/hello/fungsi1/peremeter1/peremeter2.

    CI Eps 2 Img 4

    Fungsi1 dengan 2 Parameter

Yap, url yang benar adalah http://localhost/ci/hello/fungsi1/peremeter1/peremeter2. Sekarang kita bisa menerka, hello adalah nama controller, fungsi1 adalah nama fungsi yang terdapat dalam controller hello, peremeter1 adalah nilai parameter pertama yang dibutuhkan oleh fungsi fungsi1, peremeter2 adalah nilai parameter kedua yang dibutuhkan oleh fungsi fungsi1. Untuk menyiasati ketiadaan parameter yang diberikan oleh pengguna, kita dapat mendefinisikan nilai parameter pada controller.

  1. Ubah controller hello.php.
        //membuat fungsi fungsi1
        public function fungsi1($parameter1 = 0, $parameter2 = 'pemereter2'){
    
  2. Buka http://localhost/ci/hello/fungsi1.

    CI Eps 2 Img 5

    Fungsi1 Setelah Diperbaharui

  3. Sekarang kita coba memasukkan parameter pada url, buka http://localhost/ci/hello/fungsi1/1001.
    CI Eps 2 Img 6

    Fungsi1 dengan Nilai Parameter1

    Kita memasukkan nilai 1001 sebagai nilai parameter1, sedang parameter2 karena tidak diberi nilai, tetap menampilkan nilai default yang kita tentukan dalam controller.

Sepertinya cukup sekian episode 2 dari perkenalan kita dengan Codeigniter. Saran dan kritik sangat diharapkan. Episode depan sepertinya akan berisi tentang M dari pattern MVC, semoga.

    • gong
    • Maret 23rd, 2011

    thans buat “/” nya!!

      • aing
      • Maret 23rd, 2011

      “/” yang mana, yah?

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: