Selamat Datang di Jagocoding.com

Please Login

Jagocoding.com adalah situs tutorial pemrograman no 1 di Indonesia yang berbasis jejaring sosial (social network). Bagikan tulisanmu ke semua penjuru dunia. Pelajari semua tutorial di sini untuk menjadi seorang yang "jago coding".

Member Login

Lupa password

Belum jadi Anggota?

PHP Tutorial CakePHP Dasar Part I

by Cecep Yusuf (Cheyuz) ORI | Apr 30th, 2012
  • Dilihat 6098
  • Komentar 20
  • Love 4

    Detail Tutorial

  • Tingkat Kesulitan: Baby
  • Waktu Pengerjaan: 60 menit
  • Tutorial Section: CakePHP , Framework , OOP
  • Download PDF
Tutorial CakePHP Dasar Part I

Inilah tutorial pertama yang ada dalam situs Jagocoding.com. Ya, selama 2 bulan pengembangan situs mulai dari analisis, desain, dan coding akhirnya  kami bisa meluncurkan juga situs ini. Untuk mendapatkan berita apapun tentang Jagocoding.com, kamu boleh buka http://blog.jagocoding.com, semua berita tentang Jagocoding.com dapat dilihat di sana.

Pada tutorial pertama ini saya suguhkan tutorial dasar untuk mempelajari salah satu framework populer di dunia PHP, yaitu Cakephp, yang mana situsnya dapat kamu kunjungi di cakephp.org. Jika dulu di harian.cheyuz.com sebelumnya saya sering membuat tutorial tentang Codeigniter, kali ini di sini saya akan buat tutorial framework lain. Yah kita jangan mempelajari sesuatu itu hanya satu, karena ilmu tentang bahasa pemrograman itu sangat luas jadi alangkah baiknya kita mempelajari ilmu yang lain juga.

Silakan pelajari tutorial ini dengan sebaik-baiknya, berhubung tutorial Cakephp itu publikasi dokumentasinya sangat sedikit (mungkin di Indonesia) jadi saya di sini akan mengupas tuntas tutorial mulai dari tahap instalasi hingga menjadi sebuah aplikasi, tentunya aplikasi dasar ya masih berupa CRUD, yang nantinya kita kembangkan menjadi aplikasi yang luar biasa, hehehe.. Nah, aplikasi yang akan kita buat adalah aplikasi blog. Nah lho, pertanyaannya kenapa setiap tutorial framework pasti membuat aplikasi blog? soalnya membuat blog itu cukup mewakili kasus CRUD dan juga proses lainnya. Blog yang akan kita buat juga terdapat kategori, excerpt, dan slug. Jadi, nanti kita akan belajar banyak bagaimana membuat blog yang sederhana.

OK, kita lanjut ke tutorial.

Instalasi

Untuk server, kita gunakan XAMPP dan diasumsikan bahwa OS yang digunakan adalah Windows, bukan Linux (berhubung kebanyakan memakai Windows). Kemudian install XAMPP di C:\, jadi diasumsikan juga bahwa folder htdocs itu terdapat di path C:\xampp\htdocs\. Untuk tahap pertama adalah download framework Cakephp terbaru di sini:

github.com/cakephp/cakephp/zipball/2.1.1

kemudian, setelah itu file zip tersebut diextract ke C:\xampp\htdocs\ dan ganti folder cakephp-cakephp-xxxxxxx menjadi nama aplikasi kamu, misalnya blogku

Kemudian, setelah itu kamu akan melihat warning/notice berikut ini:

Notice (1024): Please change the value of 'Security.salt' in app/Config/core.php to a salt value specific to your application [CORE\Cake\Utility\Debugger.php, line 806]

Notice (1024): Please change the value of 'Security.cipherSeed' in app/Config/core.php to a numeric (digits only) seed value specific to your application [CORE\Cake\Utility\Debugger.php, line 810]

Jangan khawatir, itu normal kok hehe... itu menandakan Security.salt belum kita setting di file app/Config/core.php, silakan ubah security salt dan security cipherseed di file C:\xampp\htdocs\blogku\app\Config\core.php.

Kemudian pengecekan lainnya yang dilakukan oleh Cakephp adalah versi PHP kamu, pastikan versi PHP kamu adalah PHP 5 atau lebih tinggi, soalnya Cakephp tidak mendukung PHP 4. Setelah itu, pengecekan lainnya adalah folder tmp pastikan writtable. Dan pengecekan terakhir adalah database. Akan ada tulisan seperti ini berlatar belakang kuning:

Your database configuration file is NOT present. Rename APP/Config/database.php.default to APP/Config/database.php

Cakephp menyuruh kita supaya menghilangkan ekstensi .default pada file /blogku/app/Config/database.php.default menjadi database.php supaya Cakephp dapat mengakses database kita. Dan jangan lupa edit file database.php menjadi seperti berikut ini:

<?php
...
...

class DATABASE_CONFIG {

  public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => '',
    'database' => 'db_blog',
    'prefix' => '',
    //'encoding' => 'utf8',
  );

  public $test = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => '',
    'database' => 'db_blog',
    'prefix' => '',
    //'encoding' => 'utf8',
  );
}
?>

Diasumsikan bahwa nama database yang akan kita buat nanti bernama db_blog, username root, dan password kosong (default XAMPP).

Database

OK silakan buat database di mysql kamu dengan nama database db_blog dan execute SQL berikut pada mySQL kamu:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

CREATE TABLE IF NOT EXISTS `artikel` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`judul` varchar(125) NOT NULL,
`slug` varchar(125) NOT NULL,
`konten` text NOT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

INSERT INTO `artikel` (`id`, `judul`, `slug`, `konten`, `created`, `modified`) VALUES
(1, '7 Jenis Makanan yang Baik untuk Kesehatan', '', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sagittis pharetra urna ac hendrerit. Sed posuere consequat metus vestibulum interdum. Quisque vitae ullamcorper sapien.', '2012-05-02 20:29:27', '0000-00-00 00:00:00'),
(2, '20 Binatang Super Aneh', '', 'Nunc lacinia magna velit, eget luctus ligula. Vestibulum at elementum metus. Praesent sodales, nunc nec ullamcorper accumsan, ipsum tellus malesuada nunc, vel commodo tortor massa ut nibh.', '2012-05-02 20:29:27', '0000-00-00 00:00:00'),
(3, '10 Makanan Tidak Sehat', '', 'Aenean nec justo nec lectus imperdiet elementum quis ac sem. Phasellus augue mi, auctor quis elementum a, tincidunt in nulla. Donec feugiat arcu et mi dignissim lobortis.', '2012-05-02 20:30:59', '0000-00-00 00:00:00');

Maka sekarang terdapat satu table yaitu artikel. Karena masih basic, untuk sementara kita bekerja dengan satu tabel terlebih dahulu, jangan dulu memakai kategori. Nanti di tutorial bagian berikutnya kita akan bekerja dengan relasi model, yaitu dengan model kategori yang nanti akan kita buat. Berikut ini adalah bentuk struktur tabel artikel.

FieldType
id INT
judul VARCHAR( 125 )
slug VARCHAR( 125 )
konten TEXT
created TIMESTAMP
modified TIMESTAMP

Setting MVC di CakePHP

Ok sekarang kita akan belajar bagaimana cara membuat Controller, View, dan Model yang akan kita pakai dengan menggunakan CakePHP. Jika kamu sudah terbiasa menggunakan framework, tentu sudah tidak asing lagi mendengar istilah-istilah tersebut.

Pertama, kita buat Model terlebih dahulu. Sebelumnya, perhatikan aturan-aturan penamaan pada CakePHP. Secara default, penamaan tabel di CakePHP menggunakan bahasa Inggris dan harus plural. Tetapi karena kita menggunakan ejaan bahasa Indonesia, kita akan menggunakan variable-variable yang kita definisikan. Secara aturan, nama model adalah sama dengan (=) nama table tetapi tidak plural (single). Misalnya, nama tabel adalah articles, maka nama model adalah Article. Tetapi, kita tidak terpaku harus mematuhi aturan tersebut. Karena tabel kita bahasa Indonesia (artikel), maka kita abaikan aturan tersebut dan memakai variable namanya $useTable.

Kita buat model yang bernama Artikel.php di dalam direktori /app/Model/. Isi dari file Artikel.php adalah:

<?php

class Artikel extends AppModel
{
  public $useTable = 'Artikel';
}

Kita menggunakan $useTable karena kita tidak memakai aturan default, jika tidak maka kita harus membuat table yang namanya "Artikels", dan itu tidak wajar karena berbahasa Indonesia.

Setiap field id secara default akan menjadi Primary Key, tetapi kita bisa menentukan sendiri jika primary key kita bukan id, misalnya id_artikel, maka tinggal menambahkan public $primaryKey = 'id_artikel'. Pada kasus ini, kita tidak perlu menambahkan variable tersebut.

Ok, membuat model sudah selesai, walaupun belum sempurna. Kita belum menambahkan validasi dan relasi terhadap model lain. Nanti di tutorial berikutnya akan kita lakukan pengembangan dari model ini.

Setelah model dibuat, selanjutnya buatlah Controller.

Kita buat controller yang bernama ArtikelController.php di dalam direktori /app/Controller/. Isi dari file ArtikelController.php adalah:

<?php

class ArtikelController extends AppController
{

  public $uses = array('Artikel');

  function index()
  {
    
  }

}

Kita sudah membuat controller bernama 'artikel' dan function index. Jika kamu ingin mengecek apakah controller dan model sudah bisa diakses, silakan buka di browser kamu: http://localhost/blogku/artikel/index atau http://localhost/blogku/artikel (sama saja). Struktur url yang ada pada CakePHP adalah: http://[nama_aplikasi]/[controller]/[action]/[parameter1]/[parameter2]/[parameter3]/... Jika kita buka, maka akan keluar pesan sebagai berikut:

"The view for ArtikelController::index() was not found."

Berarti kita belum membuat view untuk controller tersebut. Ayo kita buat viewnya! Caranya adalah dengan membuat direktori Artikel dan membuat file index.ctp ke dalam direktori /app/View/Artikel/. Secara default, nama view harus sama dengan nama function, jadi kita buat namanya index.ctp. Nama direktori harus sama dengan nama Controller. Isikan kode html sebagai berikut:

<h1>Data Artikel</h1>

Jika sudah, silakan direfresh halaman yang tadi. Kini keluar tulisan heading 1 "Data Artikel". Selamat, Kamu berhasil membuat MVC sederhana dengan menggunakan CakePHP. Sekarang, ayo kita tampilkan data di dalam table artikel.

Menampilkan Data

Kode untuk mengambil semua data sangat mudah dengan menggunakan CakePHP, cukup dengan memanggil function find('all'). Buka file /app/Controller/ArtikelController.php dan tambahkan kode php untuk mengambil semua data.

<?php

class ArtikelController extends AppController
{

  public $uses = array('Artikel');

  function index()
  {
    $artikel = $this->Artikel->find('all');
    $this->set('artikel', $artikel);
  }

}

Kita mengisikan hasil seleksi data untuk tabel artikel ke dalam variable $artikel, yang selanjutnya set variable $artikel untuk bisa diakses di view. $this->set() adalah function bawaan CakePHP untuk mengeset variable yang ada di view dari controller.

Untuk menampilkan data di View, ubah file /app/View/Artikel/index.ctp tadi menjadi sebagai berikut:

<h1>Data Artikel</h1>

<table>
  <thead>
    <tr>
      <th>ID</th>
      <th>Judul</th>
      <th>Konten</th>
      <th>Tanggal Dibuat</th>
    </tr>
  </thead>
  <tbody>
    <?php foreach ($artikel as $a): ?>
      <tr>
        <td><?php echo $a['Artikel']['id'] ?></td>
        <td><?php echo $a['Artikel']['judul'] ?></td>
        <td><?php echo $a['Artikel']['konten'] ?></td>
        <td><?php echo $a['Artikel']['created'] ?></td>
      </tr>
    <?php endforeach ?>
  </tbody>
</table>
<?php debug($artikel) ?>

Jreng jreng, data yang ada di dalam tabel artikel muncul semua, hehe..
variable $artikel kini menjadi sebuah array yang bentuknya adalah:

array(
    0 => array(
  'Artikel' => array(
      'id' => '1',
      'judul' => '7 Jenis Makanan yang Baik untuk Kesehatan',
      'slug' => '',
      'konten' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sagittis pharetra urna ac hendrerit. Sed posuere consequat metus vestibulum interdum. Quisque vitae ullamcorper sapien.',
      'created' => '2012-05-02 20:29:27',
      'modified' => '0000-00-00 00:00:00'
  )
    ),
    1 => array(
  'Artikel' => array(
      'id' => '2',
      'judul' => '20 Binatang Super Aneh',
      'slug' => '',
      'konten' => 'Nunc lacinia magna velit, eget luctus ligula. Vestibulum at elementum metus. Praesent sodales, nunc nec ullamcorper accumsan, ipsum tellus malesuada nunc, vel commodo tortor massa ut nibh.',
      'created' => '2012-05-02 20:29:27',
      'modified' => '0000-00-00 00:00:00'
  )
    ),
    2 => array(
  'Artikel' => array(
      'id' => '3',
      'judul' => '10 Makanan Tidak Sehat',
      'slug' => '',
      'konten' => 'Aenean nec justo nec lectus imperdiet elementum quis ac sem. Phasellus augue mi, auctor quis elementum a, tincidunt in nulla. Donec feugiat arcu et mi dignissim lobortis.',
      'created' => '2012-05-02 20:30:59',
      'modified' => '0000-00-00 00:00:00'
  )
    )
);

Jadi untuk mengaksesnya dengan menggunakan foreach seperti tadi.

Cukup untuk tutorial kali ini, nanti di tutorial selanjutnya kita akan belajar untuk menambahkan data, mengubah, dan menghapus dengan menggunakan CakePHP.

Stand by with me,
Follow saya supaya kamu tetap berlangganan dengan artikel saya. 

Penulis

cheyuz
Cecep Yusuf ORI

Hi, my name is Cecep Yusuf. However, in the virtual world I am more likely to use the name Cheyuz, which is an abbreviation of two words "Cecep" and "Yusuf". I am founder of Jagocoding.com, u can view more of me in Cheyuz.com

Komentar dan Diskusi Komentar dan Diskusi

  • fadlil

    canggihnya narik data di cakephp

    kumendan!!! cuman mau memperkuat asiknya ngoding pake cakephp itu waktu narik data cuman butuh satu bari ini :: $artikel = $this->Artikel->find('all'); keterangan struktur :: ($varPenampung) = $this->(ModelTable)->find('all'); dengan satu baris diatas,, kita bisa mendapatkan seluruh isi data dari satu table dan juga table2 lain yang berelasi.. luar binasa!!! yg mau menyelami canggihnya cakephp klik dimari :: http://book.cakephp.org/2.0/en/models/retrieving-your-data.html bravo cakephp!!!

    Oct 4th
    • cheyuz
      Cecep Yusuf

      Mantaap.. ok tengkyu Fadlil komentarnya.. emang CakePHP itu powerfull

      Oct 5th
  • dany

    Terima kasih nih web keren banget...saya masih belajar coding .....sangat banyak membantu...oh ya kok pdf nya ga bisa didonlot ya,,kalo mau dikirimin lewat email bisa ga ya

    Oct 8th
    • cheyuz
      Cecep Yusuf

      Thanks ya mas dany ip, pdfnya iya nih lagi error, nanti saya cek kenapa kok bisa error.. sebelumnya padahal lancar..

      Oct 19th
  • hariya21

    Pdf da bisa di download bro

    Maaf bro pdfnya ga bisa di download ..tolong diperbaiki dung... saya butuh nih tutorialnya

    Nov 13th
    • cheyuz
      Cecep Yusuf

      iya nih gan errornya belum ketemu, secepatnya ane benerin gan..

      Nov 13th
  • bono

    pdf nya rusak mas

    ijin download mas, saya mao belajar framework cake php tolong pdf nya di betulkan terima kasih

    Nov 22nd
  • fian

    Artikel

    Gagal saya om, di bagian cake/Artikel Not Found The requested URL /cake/Artikel was not found on this server. kenapa itu ya ?

    Dec 1st
    • cheyuz
      Cecep Yusuf

      kok pake cake gan? langsung aja http://localhost/nama_aplikasi/artikel (huruf kecil)

      Dec 1st
    • fian
      ZULFIANTO

      http://localhost/cake/Artikel huruf besar atau kecil sama error nya om... isi index.ctp yang d folder : www\cake\app\View\Artikel apa om ?

      Dec 1st
    • cheyuz
      Cecep Yusuf

      oh i see.. pake servernya apa? linux ya? itu masalah konfigurasi override sama rewrite di httpd.config nya.. jadi routing tidak berjalan dengan baik, bukan masalah file, soalnya file udah bener kok..

      Dec 3rd
    • fian
      ZULFIANTO

      masih d localhost kok. windows... ane pake AppServ

      Dec 4th
    • cheyuz
      Cecep Yusuf

      Berarti masih salah di configurasi override-nya gan, coba set override none menjadi override all.

      Dec 7th
  • iriswanto

    wih nice share gan

    Dec 4th
  • yadiyose

    Gagal

    Saya mencoba tetapi gagal dengan pesan error demikian " Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\blogku\lib\Cake\Error\ErrorHandler.php on line 155".....terima kasih

    Jan 8th
    • cheyuz
      Cecep Yusuf

      gagalnya ketika apa gan? itu mungkin dari server agannya yg bermasalah

      Jan 10th
    • yadiyose
      Yadi Yose Safari

      Error saat dijalankan "http://localhost:81/blogku/artikel", kebetulan port 80 sudah dipergunakan, tetapi sekarang sudah bisa, setelah disetting lagi core.php dan httpd.conf, terima kasih....maaf baru respons baru login lagi........

      Jan 14th
    • cheyuz
      Cecep Yusuf

      sip, syukurlah kalo udah bisa tetap semangat gan

      Jan 14th
  • gearboxxx

    Parse error

    Alo mas cecep, salam kenal mas nama saya Thomas, saya sudah mengikuti dan mencoba tutorial yang mas paparkan diatas, tapi saya mengalami kendala seperti ini : [code=CODE_LANG] Parse error: syntax error, unexpected T_STRING in C:\xampplite\htdocs\gearboxxx\app\Controller\ArtikelController.php on line 9 [/code] Satelah saya cek semua ok2 aja mas cecep, mohon penjelasannya, thanks rgds, gearboxxx

    Feb 11th
    • cheyuz
      Cecep Yusuf

      Itu salah syntax mas, coba lihat line 9 mas cek lagi ada yg tidak sama ga? biasanya error itu adalah error tanda kutip atau salah kurung.. silakan cek lagi mas

      Feb 12th

Berikan Komentar

Kamu masuk sebagai GUEST. Kamu dapat memberikan komentar, tetapi tidak dapat berlangganan, download PDF, dan membuat tutorial.
Klik di sini untuk login, GRATISS!

Komentar

Bold Italic Underline Insert Image Insert Link Insert Code Insert Smiley
  • Tentang Penulis

    • Lovers

      4 orang menyukai artikel ini.

    • oriza
    • cheyuz
    • zaenuriafif
    • Dhendhan
  • Daftar di situs Jagocoding.com
  • Tags

    #framework #tutorial-cheyuz #tutorial-dasar #cakephp