Hotel Terbaik Di Indonesia Tahun 2015 (Luxury Hotel Awards 2015)


Dikutip artikel dari travel.detik.com, akhir pekan kemarin baru saja diumumkan para pemenang World Luxury Hotel Awards 2015 di Hong Kong. Selain yang mewah terbaik di dunia, ada juga yang terbaik di benuanya dan negaranya masing-masing.

Ada 23 hotel dan resor mewah di Indonesia jadi yang terbaik dalam beragam kategori. Ditengok dari situs resminya, Kamis (29/10/2015), mulai dari kategori resor villa mewah terbaik sampai hotel bulan madu mewah terbaik ada di sini. Tak hanya di Bali, hotel dan resor di Jakarta juga masuk ke dalam kategorinya. Mantap!!! Inilah daftar lengkap hotel dan resor mewah terbaik di Indonesia menurut Luxury Hotel Awards 2015 : Continue reading

Perumahan Bandung Utara


Pencarian pertama kami fokuskan terlebih dahulu ke arah Bandung Utara. Salah satu keuntungan tinggal di daerah Bandung Utara yaitu udaranya yang masih bersih dan tidak terlalu crowded oleh kemacetan. Salah satu ‘kerugiannya’ yaitu jauh ke pusat kota dan sepi, walaupun tidak semua perumahan di Bandung Utara tidak seperti yang saya sebutkan. Untuk menuju daerah Bandung Utara, kita bisa mengarahkan kendaraan menuju jl.Setiabudhi -> jl. Gegerkalong. Untuk perumahan bandung utara biasanya terletak di daerah sarijadi, gegerkalong, desa ciwaruga, parompong, sariwangi dan cihanjuang.

GEGERKALONG + SARIJADI

Untuk perumahan daerah gegerkalong, masuk ke arah KPAD tepatnya di daerah gegerkalong wetan ada beberapa perumahan, salah satunya Pondok Hijau, Papyrus Garden, Riviera, dan untuk harga kyknya berkisar diatas 500jt-an.  Untuk daerah sarijadi, perumahan yang cukup terkenal yaitu perumahan SetraDuta dengan harga yang sangat mahal, keknya hitungannya udah diatas 1 M. Jalan utama perumahan SetraDuta bisa dilalui warga sekitar, soalnya menghubungkan antara sarijadi atas dengan sarijadi bawah.

CIWARUGA + PAROMPONG

Untuk daerah desa ciwaruga, terdapat perumahan di depan kampus POLBAN yaitu Setra Regency. Untuk daerah parompong, terdapat perumahan PRV (Parahyangan Rumah Villa), Gerlong Residence, BellaCasa, Griya Amanda 3 dan beberapa perumahan lain jika kita meneruskan ke daerah atas, tapi saya lupa namanya. Perumahan PRV termasuk perumahan lama, keknya sudah ga ada perumahan yg langsung dijual sama developernya, dan harga nya cukup mahal, mungkin diatas 1 M. Perumahan Gerlong Residence salah satu perumahan yang akan kita lewati jika menuju kampus POLBAN, dan unit yang dijual juga tidak terlalu banyak, mungkin dibawah 15 unit dengan harga mulai 800jt, quite expensive. Perumahan BellaCasa tidak terlalu banyak unit yang dijual, mungkin sekitar dibawah 15 unit. Kalo perumahan Griya Amanda 3 juga tidak terlalu besar, mungkin dibawah 20 unit.

SARIWANGI + CIHANJUANG

Perumahan yang terletak didaerah gegerkalong, sarijadi, parompong, dan desa ciwaruga harus diakui memang memiliki harga yang cukup mahal, dalam arti diatas ‘rata-rata’. Untuk mencari perumahan yang lebih murah, bisa kita arahkan kedaerah sariwangi dan cihanjuang. Perumahan di sariwangi, saya bagi 2 yaitu sariwangi atas dan sariwangi bawah dimana biasanya harga di sariwangi bawah lebih mahal daripada sariwangi atas. Perumahan di sariwangi bawah ada 3 yaitu, Bumi Sariwangi 1, Bumi Sariwangi 2 dan Graha Sariwangi.  Sedangkan perumahan sariwangi atas lebih banyak, diantaranya : Green Sariwangi, Puri Sariwangi, Sariwangi City View, Sariwangi Regency, Lembah Sariwangi dan Selaras Alam. Untuk perumahan sariwangi atas, jika kita teruskan ke atas tidak akan tembus kemana-mana, tapi mungkin akan tembus ke arah lembang dengan jalan yang semakin lama semakin kecil. Sedangkan untuk sariwangi bawah nantinya akan tembus ke daerah Cihanjuang.

Untuk perumahan di daerah cihanjuang ada beberapa yaitu : Harmoni Cihanjuang, Selaras Cihanjuang, Taman Cihanjuang 1, dan Taman Cihanjuang 2. Selaras Cihanjuang termasuk perumahan lama soalnya sudah tidak ada pembangunan kavling, dan kyknya sudah sold out semua, dan cukup rame di perumahan ini. Kalo harmoni cihanjuang terletak didepan Selaras Cihanjuang, untuk tipe2 kecilnya sudah terjual semua yang tersisa hanya tipe2 besar, sangat cepat sekali sold outnya. Untuk Taman Cihanjuang 1 unit2nya sudah sold out semua. Untuk Taman Cihanjuang 2, masuknya dari Taman CIhanjuang 1. Kalo disini, masih ada pembangunan kavling2 baru.

1. BellaCasa
LT/LB/Harga : Unknown
Alamat : Ciwaruga, Polban Telp : (022) 95860413

2. Bumi Asri Cihanjuang
LT/LB/Harga : Unknown
Alamat : Cihanjuang

3. Bumi Sariwangi 1
LT/LB/Harga : 40/78 – 40/153 : 309 – 477 jtan60/112 – 60/179 :478 – 632 jtan80/107 – 80/136 : 611 – 685 jtan
Alamat : Jl. Raya Sariwangi, Desa Sariwangi. Kec. Parongpong – Bandung.Telp : 022 – 2019165, Fax : 022 – 82025425.
Website : http://bumisariwangi.com/
Ket : Booking fee minimal 5jt, sudah termasuk uang muka. Harga blum termasuk biaya AJB, BBN, BPHTB, PPN, proses KPR. Harga penambahan bangunan 3jt/m2 (1 lantai), 4jt/m2(2 lantai). *Harga per 15 Maret 2011

4. Bumi Sariwangi 2
LT/LB/Harga : 36/96 – 36/128 : 285 jtan – 351 jtan45/62 – 45/156 : 246 jtan – 469 jtan70/92 – 189 : 450 jtan – 633 jtan (2 lantai)
Alamat : Jl. Sariwangi Raya, Terusan Gerlong Hilir.Telp : (022) 8202 5394, (022) 6090 8505
Website : http://bumisariwangi.com/
Ket : Booking fee minimal 5jt, sudah termasuk uang muka.Harga blum termasuk biaya AJB, BBN, BPHTB, PPN, proses KPR. *Harga per 27 Sep 2010.

5. Griya Amanda 3
LT/LB/Harga : 36/73 – 66/151 : 290 – 540 jtan
Alamat : Desa Ciwaruga, Kec Parongpong. Telp (022) 70044441

6. Green Sariwangi
LT/LB/Harga : Unknown
Alamat : Sariwangi, Cihanjuang

7. Harmoni Cihanjuang
LT/LB/Harga : 37/84 : 273 jtan48/105 : 346 jtan84/84 : 560 jtan (2 lantai)
Alamat : Cihanjuang, didepan Selaras Cihanjuang
Ket : Booking fee minimal 5jt, sudah termasuk uang muka. Harga blum termasuk biaya AJB, BBN, BPHTB, PPN, proses KPR. Pada saat survey (31/03/2011) kavling tipe 37 dan 48 sudah sold out, hanya tersisa tipe 84.

8. Puri Sariwangi
LT/LB/Harga : Unknown
Alamat : Jl. sariwangi km. 1,4 telp. 82025819 – 82025951

9. Sariwangi City View
LT/LB/Harga : 22/64 – 70/120 : 148 – 330 jtan.
Alamat : Jl. Sariwangi Bandung. Telp : (022) 70213103, (022) 92248905, (022) 70749475

10. Sariwangi Regency
LT/LB/Harga : Unknown
Alamat : Sariwangi, Bandung

11. Setra Regency
LT/LB/Harga : Kavling 158 m2 – 513m2
Alamat : JL.Raya Polban

12. Selaras Cihanjuang
LT/LB/Harga : 37/80 : 189 jt-an, 45/95 : 227 jt-an, 60/117 : 292 jt-an
Alamat : Cihanjuang
Ket : Tampaknya tidak ada kavling yang dijual, sudah terisi semua.

13. Taman Cihanjuang 1
LT/LB/Harga : Unknown
Alamat : Cihanjuang
Ket : Tampaknya sudah sold out semua, tidak ada kavling yang sedang dibangun.

14. Taman Cihanjuang 2
LT/LB/Harga : Kavling type 30-36-45
Alamat : Cihanjuang, Telp : 022-71232399, 022-7103246, 081320277784

Untuk daftar perumahan di kota bandung yang pernah saya kunjungi, dapat dilihat di link ini.

Creating Menu di CakePHP


Untuk membuat menu dari aplikasi CRUD yang telah kita buat, dapat dilakukan dengan mengedit file default.ctp yang bisa ditemukan di …\nm_aplikasi\views\layouts. Yang harus kita ubah terletak diantara <div id="header"> dan </div>. Misalkan kita ingin menambahkan 4 menu, jika kita klik menu tersebut akan mengarah ke suatu controller yang kita inginkan. Contohnya seperti berikut :

<div id="header">
<h1><?php echo $this->Html->link(__('CakePHP: the
rapid development php framework', true),
'http://cakephp.org'); ?>
</h1>
</div>
<div id="header">
<div id="menu">
<ul>
<li><?php echo $html->link( 'Home', '/' );
?></li>
<li><?php echo $html->link( 'Master', '/master'
); ?></li>
<li><?php echo $html->link( 'Transaksi',
'/transaksi' ); ?></li>
<li><?php echo $html->link( 'Report', '/report'
); ?></li>
</ul>
</div>
</div>
Before After

Kemudian kita ubah CSS yang digunakan oleh CakePHP, yaitu cake.generic.css yang bisa kita temukan di …\nm_aplikasi\webroot\css. Kemudian tambahkan script CSS seperti dibawah ini :

/* Menu */
#menu {
float: left;
width: 1800px;
height: 45px;
}


#menu ul {
margin: 0;
padding: 0px 0px 0px 5px;
list-style: none;
line-height: normal;
}

#menu li {
display: block;
float: left;
}

#menu a {
display: block;
float: left;
height: 20px;
margin-right: 3px;
padding: 14px 25px 15px 25px;
background: url(../images/img09.jpg) no-repeat left 18px;
text-decoration: none;
text-transform: capitalize;
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
color: #FFFFFF;
}

#menu a:hover { text-decoration: underline; }

Kemudian jalankan aplikasi melalui link url seperti berikut : http://localhost/nm_aplikasi/buku maka tampilannya akan seperti berikut ini :

Menu di CakePHP

Menu di CakePHP

CAKE BAKE ALL without naming convention di CakePHP


Seperti yang sama-sama kita ketahui, CakePHP memiliki aturan naming convention yang sangat ketat. Jadi jika ingin mendapatkan semua feature yang disediakan, harus taat dengan naming convention tersebut. Salah satu naming convention yang sangat ketat yaitu masalah penamaan nama table haruslah jamak/plural yang ditandai dengan akhiran s/es, jadi jika kita mempunyai table BUKU penamaannya harus menjadi BOOKS atau BUKUS. Sebagai orang Indonesia, hal ini tidaklah mengenakkan. Trus bagaimana caranya jika kita mempunyai table BUKU dan tetap disimpan dengan nama BUKU?? Caranya dengan mengatur file bootsrap.php, Langkah2nya sebagai berikut :

No. Langkah
1. Sebagai contoh, didalam mysql buatlah database dengan nama dbcakephp dan buatlah 1 table dengan nama BUKU. Script create BUKU dapat dilihat dibawah ini :
CREATE TABLE `buku` (
`id` int(11) NOT NULL auto_increment,
`judul_buku` varchar(200) collate latin1_general_ci default NULL,
`pengarang` varchar(200) collate latin1_general_ci default NULL,
`tgl_terbit` date default NULL,
`created` datetime default NULL,
`updated` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
2. Buatlah sebuah project dengan menggunakan fitur CAKE BAKE, beri nama newcake. Step by stepnya bisa dilihat di MEMBUAT PROJEK BARU MENGGUNAKAN FITUR ‘BAKE’.
3. Edit file bootstrap.php yang bisa kita temukan di …\newcake\config\ dan tambahkan script dibawah ini :
Inflector::rules('singular', array('rules' => array(), 'irregular' => array(), 'uninflected' => array('.*')));
Inflector::rules('plural', array('rules' => array(), 'irregular' => array(), 'uninflected' => array('.*')));
4. Kemudian buatlah CRUD application dengan menggunakan fitur CAKE BAKE ALL. Step by stepnya bisa dilihat di CREATING SIMPLE CRUD APPLICATION. Script lengkapnya bisa dilihat dibawah ini : 

C:\xampp2\htdocs\newcake>cake bake all 

PHP Warning:  PHP Startup: Invalid library (maybe not a PHP library) ‘php_pdo_oci8.dll’  in Unknown on line 0
?
Welcome to CakePHP v1.3.7 Console
—————————————————————
App : newcake
Path: C:\xampp2\htdocs\newcake
—————————————————————
—————————————————————
Bake All
—————————————————————
Possible Models based on your current database:
1. Books
2. Buku
3. Categories
4. Posts
5. Roti
6. Students
Enter a number from the list above,
type in the name of another model, or ‘q’ to exit
[q] > 2

Baking model class for Buku…

Creating file C:\xampp2\htdocs\newcake\models\buku.php
Wrote `C:\xampp2\htdocs\newcake\models\buku.php`
Buku Model was baked.
SimpleTest is not installed. Do you want to bake unit test files anyway? (y/n)
[y] > n

Creating file C:\xampp2\htdocs\newcake\controllers\buku_controller.php
Wrote `C:\xampp2\htdocs\newcake\controllers\buku_controller.php`
Buku Controller was baked.
SimpleTest is not installed. Do you want to bake unit test files anyway? (y/n)
[y] > n

Creating file C:\xampp2\htdocs\newcake\views\buku\index.ctp
Wrote `C:\xampp2\htdocs\newcake\views\buku\index.ctp`

Creating file C:\xampp2\htdocs\newcake\views\buku\view.ctp
Wrote `C:\xampp2\htdocs\newcake\views\buku\view.ctp`

Creating file C:\xampp2\htdocs\newcake\views\buku\add.ctp
Wrote `C:\xampp2\htdocs\newcake\views\buku\add.ctp`

Creating file C:\xampp2\htdocs\newcake\views\buku\edit.ctp
Wrote `C:\xampp2\htdocs\newcake\views\buku\edit.ctp`
Buku Views were baked.
Bake All complete
C:\xampp2\htdocs\newcake>

5. Jalankan aplikasi melalui url berikut : http://localhost/newcake/buku dan tampilannya kayak dibawah ini nih : 

CRUD APPLICATION

Sumber postingan saya dari http://www.tumpahruah.com, dan telah saya detailkan lebih lanjut. Mudah2an postingan ini bisa bermanfaat untuk kita semua. Amiiiiiiiiiiiin 😀

Scaffolding CakePHP


Apa itu scaffolding??? Scaffolding adalah salah satu fitur yang disediakan oleh CakePHP sehingga kita bisa melakukan aksi CRUD terhadap suatu data tanpa harus menuliskan script code nya secara eksplisit. Sebagai contoh buatlah satu buah table dengan nama books, script tablenya seperti berikut :

CREATE TABLE `books` (
`id` int(255) NOT NULL auto_increment,
`nm_buku` varchar(100) collate latin1_general_ci default NULL,
`ket` varchar(100) collate latin1_general_ci default NULL,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci

Kemudian buatlah 1 buah controller, dengan nama books_controller.php dan scriptnya seperti dibawah ini :

<?php
class BooksController extends AppController {
var $name = 'Books';
var $scaffold;
}
?>

Buka web browser, dan ketikkan link url berikut : http://localhost/newcake3/books/ maka kita bisa melakukan aplikasi CRUD tanpa kita harus mengetikkan kodenya terlebih dahulu. Fitur scaffolding hanya memberikan gambaran tentang CRUD terhadap suatu data, dan kode yang degenerate oleh CakePHP berupa virtual code.

Scaffolding CakePHP

Scaffolding CakePHP

aaa

Creating Simple CRUD Application Using CakePHP


Untuk membuat aplikasi CRUD (Create-Read-Update-Delete) secara otomatis, sebagai contoh buatlah 1 buah database di mysql dengan nama dbcakephp, kemudian didalam database tersebut buatlah 2 buah table yaitu CATEGORIES dan POSTS. Table CATEGORIES akan berisi data-data kategori, sedangkan di table POSTS akan berisi data-data postingan dengan menampilkan kategorinya. Format foreign key yaitu namatableforeignsingular_id. Konvention penamaan table bisa dilihat di NAMING CONVENTION CAKEPHP. Script buat table bisa dilihat dibawah ini :

CREATE TABLE `categories` (
`id` int(10) NOT NULL auto_increment,
`name` varchar(50) default NULL,
`created` datetime default NULL,
`updated` datetime default NULL,
`keterangan` varchar(50) default NULL,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=utf8
CREATE TABLE `posts` (
`id` int(10) NOT NULL auto_increment,
`title` varchar(100) default NULL,
`content` text,
`created` datetime default NULL,
`updated` datetime default NULL,
`category_id` int(10) default NULL,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
CATEGORIES POSTS

Setelah kita selesai membuat database dan 2 table tersebut, buatlah 1 buah project dengan nama ‘newcake3’. Pembuatan projek bisa dilihat di MEMBUAT PROJEK BARU MENGGUNAKAN FITUR ‘BAKE’. Setelah itu bukalah command prompt, untuk melakukan generate controller, model dan views. Dicontoh ini kita akan mengenerate untuk table CATEGORIES :

C:\xampp2\htdocs\newcake3>cake bake all
PHP Warning:  PHP Startup: Invalid library (maybe not a PHP library) 'php_pdo_oc
i8.dll'  in Unknown on line 0?
Welcome to CakePHP v1.3.7 Console
---------------------------------------------------------------
App : newcake3
Path: C:\xampp2\htdocs\newcake3
---------------------------------------------------------------
---------------------------------------------------------------
Bake All
---------------------------------------------------------------
Possible Models based on your current database:
1. Book
2. Category
3. Post
4. Student
Enter a number from the list above,
type in the name of another model, or 'q' to exit
[q] > 2
 

Baking model class for Category…

Creating file C:\xampp2\htdocs\newcake3\models\category.php
Wrote `C:\xampp2\htdocs\newcake3\models\category.php`
Category Model was baked.
SimpleTest is not installed. Do you want to bake unit test files anyway? (y/n)
[y] >

You can download SimpleTest from http://simpletest.org

Baking test fixture for Category…

Creating file C:\xampp2\htdocs\newcake3\tests\fixtures\category_fixture.php
Wrote `C:\xampp2\htdocs\newcake3\tests\fixtures\category_fixture.php`
Bake is detecting possible fixtures..

Creating file C:\xampp2\htdocs\newcake3\tests\cases\models\category.test.php
Wrote `C:\xampp2\htdocs\newcake3\tests\cases\models\category.test.php`

Creating file C:\xampp2\htdocs\newcake3\controllers\categories_controller.php
Wrote `C:\xampp2\htdocs\newcake3\controllers\categories_controller.php`
Category Controller was baked.
SimpleTest is not installed. Do you want to bake unit test files anyway? (y/n)
[y] >

You can download SimpleTest from http://simpletest.org
Bake is detecting possible fixtures..

Creating file C:\xampp2\htdocs\newcake3\tests\cases\controllers\categories_contr
oller.test.php
Wrote `C:\xampp2\htdocs\newcake3\tests\cases\controllers\categories_controller.t
est.php`

Creating file C:\xampp2\htdocs\newcake3\views\categories\index.ctp
Wrote `C:\xampp2\htdocs\newcake3\views\categories\index.ctp`

Creating file C:\xampp2\htdocs\newcake3\views\categories\view.ctp
Wrote `C:\xampp2\htdocs\newcake3\views\categories\view.ctp`

Creating file C:\xampp2\htdocs\newcake3\views\categories\add.ctp
Wrote `C:\xampp2\htdocs\newcake3\views\categories\add.ctp`

Creating file C:\xampp2\htdocs\newcake3\views\categories\edit.ctp
Wrote `C:\xampp2\htdocs\newcake3\views\categories\edit.ctp`
Category Views were baked.
Bake All complete


Setelah mengenerate table ‘CATEGORIES’, kita akan mengenerate untuk table ‘POSTS’. Tampilan command prompt seperti dibawah ini :

C:\xampp2\htdocs\newcake3>cake bake all
PHP Warning:  PHP Startup: Invalid library (maybe not a PHP library) 'php_pdo_oci8.dll' in Unknown on line 0?
Welcome to CakePHP v1.3.7 Console
---------------------------------------------------------------
App : newcake3
Path: C:\xampp2\htdocs\newcake3
---------------------------------------------------------------
---------------------------------------------------------------
Bake All
---------------------------------------------------------------
Possible Models based on your current database:
1. Book
2. Category
3. Post
4. Student
Enter a number from the list above,
type in the name of another model, or 'q' to exit
[q] > 3
 

Baking model class for Post…

Creating file C:\xampp2\htdocs\newcake3\models\post.php
Wrote `C:\xampp2\htdocs\newcake3\models\post.php`
Post Model was baked.
SimpleTest is not installed. Do you want to bake unit test files anyway? (y/n)
[y] >

You can download SimpleTest from http://simpletest.org

Baking test fixture for Post…

Creating file C:\xampp2\htdocs\newcake3\tests\fixtures\post_fixture.php
Wrote `C:\xampp2\htdocs\newcake3\tests\fixtures\post_fixture.php`
Bake is detecting possible fixtures..

Creating file C:\xampp2\htdocs\newcake3\tests\cases\models\post.test.php
Wrote `C:\xampp2\htdocs\newcake3\tests\cases\models\post.test.php`

Creating file C:\xampp2\htdocs\newcake3\controllers\posts_controller.php
Wrote `C:\xampp2\htdocs\newcake3\controllers\posts_controller.php`
Post Controller was baked.
SimpleTest is not installed. Do you want to bake unit test files anyway? (y/n)
[y] >

You can download SimpleTest from http://simpletest.org
Bake is detecting possible fixtures..

Creating file C:\xampp2\htdocs\newcake3\tests\cases\controllers\posts_controller
.test.php
Wrote `C:\xampp2\htdocs\newcake3\tests\cases\controllers\posts_controller.test.p
hp`

Creating file C:\xampp2\htdocs\newcake3\views\posts\index.ctp
Wrote `C:\xampp2\htdocs\newcake3\views\posts\index.ctp`

Creating file C:\xampp2\htdocs\newcake3\views\posts\view.ctp
Wrote `C:\xampp2\htdocs\newcake3\views\posts\view.ctp`

Creating file C:\xampp2\htdocs\newcake3\views\posts\add.ctp
Wrote `C:\xampp2\htdocs\newcake3\views\posts\add.ctp`

Creating file C:\xampp2\htdocs\newcake3\views\posts\edit.ctp
Wrote `C:\xampp2\htdocs\newcake3\views\posts\edit.ctp`
Post Views were baked.
Bake All complete


Setelah selesai, arahkan url ke http://localhost/newcake3/categories untuk menambahkan data kategori atau arahkan url ke http://localhost/newcake3/posts untuk menambahkan data post lengkap dengan isi category yang terhubung dari data category. Jika kita perhatikan, table dibagian bawah merupakan informasi operasi sql query yang dilakukan oleh CakePHP. Ditampilkan secara otomatis oleh cake karena secara default project berada dalam modus development. Ini berguna untuk melakukan tracing, optimizing, dll, dalam tahap development. Namun jika ingin menghilangkannya sangat mudah ubah saja konfigurasi nya di ...config\core.php dan ganti nilainya menjadi 0 atau 1 seperti berikut : Configure::write('debug', 1);
Trus bagaimana caranya jika kita mengetikkan url http://localhost/newcake3 akan langsung mengarah ke controller categories atau posts?? Caranya cukup simple, dengan modifikasi file ...config\router.php seperti berikut :
//Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
Router::connect('/', array('controller' => 'categories', 'action' => 'index'));

Tampilan Data 'Categories'

Tampilan Data 'Categories'

Tampilan Data 'POSTS'

Tampilan Data 'POSTS'

CakePHP Documentation (Books & API)


Untuk mempelajari CakePHP, tentu saja harus mempelajari dokumentasinya. Dokumentasi CakePHP sebenarnya bisa langsung diakses ke link http://book.cakephp.org/#. Tapi bagaimana dengan dokumentasi offline nya, jadi kita ga harus mengakses ke internet?? Setelah coba-2 guugling, dapatlah file chm dokumentasinya CakePHP dan yang buat itu pun orang luar keknya.

File CHM nya bisa di download di http://peacech.googlepages.com/cakephp-documentation-080817.chm. Setelah kita selesai download, kita bisa melihat dokumentasi CakePHP secara offline. Walapun dokumentasinya baru sampai versi 1.1 dan 1.2 sedangkan versi 1.3 ga ada, tapi dah bisa memberikan gambaran cara kerja CakePHP. kalo file CHM nya ga bisa kebuka/tidak menampilkan apa2, mungkin gara2 http://support.microsoft.com/kb/902225/. Step-by-step nya dah dijelaskan disana. Kalo ada yang punya dokumentasi CakePHP versi 1.3 untuk offline nya (CHM/pdf/doc/etc), minta linknya dunk… 😀

Naming Convension CakePHP


Setelah postingan sebelumnya membahas tentang Tutorial dasar cakePHP dan Penggunaan fungsi Bake, thread kali ini akan mencoba membahas tentang Naming Convension Using CakePhp atau tata acara penamaan didalam CakePHP. Didalam CakePHP, penamaan memegang peranan yang penting dan strict/ketat sekali. Dan aturan tersebut harus dipenuhi. Beberapa aturan tersebut, akan saya coba rangkum seperti dibawah ini :

Database & Table
Beberapa aturan penamaan didalam cakephp untuk database & table, yaitu :
a. Nama table sebaiknya dalam bahasa inggris.
b. Nama dari table harus menggunakan kata jamak (plural) dengan suffix s/es.
c. Jika nama table terdiri dari 2 (dua) nama maka harus menggunakan karakter ‘_’ contohnya: customers, books, authors, line_items.
d. Jika menggunakan join table, maka penamaannya berdasarkan alphabetical order dengan karakter ‘_’ sebagai pemisah. Contohnya: authors_books; bukan books_authors.
e. Tiap table harus memiliki field id sebagai primary key-nya.
f. Tiap table memiliki field created dan updated (Optional). Field ini optional, yang tidak akan mengganggu kinerja dari CakePHP jika field tersebut tidak dibuat. Jika field-field tersebut tersedia di dalam table, maka CakePHP akan mengisinya secara otomatis setiap kali ada operasi create atau update.

Model
Beberapa aturan penamaan didalam cakephp untuk Models, yaitu :
a. Ekstensi file berupa *.php
b. Nama class didalam model harus diberi nama dengan format tunggal/single, CamelCased dan disarankan sama dengan nama tabel yang dikelolanya agar mendapatkan automagic loading variable, function dan sebagainya. Contoh : Blog (nama tabel blogs), Shoe (nama tabel shoes).

View
Beberapa aturan penamaan didalam cakephp untuk Views, yaitu :
a. Ekstensi file berupa *.ctp.
b. Untuk view, file-filenya diletakkan di dalam folder tersendiri sesuai nama controller-nya. Misalkan, posts untuk PostsController. Sedangkan nama file-filenya sesuai nama action (function) yang didefinisikan di controller yang bersangkutan.

Controller
Beberapa aturan penamaan didalam cakephp untuk Controller, yaitu :
a. Ekstensi file berupa *.php
b. Nama class didalam controller harus diberi nama dengan format jamak/plural (diakhiri dengan s/es), CamelCased dan adanya suffix (akhiran) Controller. Contoh : BooksController, NewStudentsController.
c. Nama file harus menggunakan huruf kecil.
d. Nama file mengikuti nama controller dan dipisahkan garis bawah antar katanya. Contoh : books_controller, new_students_controller.

Membuat Project Baru Menggunakan Fitur ‘Bake’ di CakePHP


Ini postingan kedua tentang CakePhp, untuk tutorial dasarnya bisa dilihat di https://toreizen.wordpress.com/2011/03/10/tutorial-dasar-cakephp/. Untuk membuat projek baru dengan menggunakan feature ‘bake’ dengan menggunakan console/command line. Didalam command line akan menggunakan kata kunci cake bake. Disini kita akan membuat project baru dengan nama ‘newcake’ dengan password dikosongkan dan dengan nama database ‘dbcakephp’. Langkah-langkahnya seperti dibawah ini :

1. Pastikan path php telah dimasukkan kedalam environment variable. Jika belum ada, dengan cara berikut :

a. Buka Environment Variable.

b. Didalam System Variables, carilah variable Path.

c. Edit variable Path dan isikan php path kedalamnya.

Setting php path di Environment Variable

2. Menambahkan path cakephp console (cake.bat) kedalam Environment Variable. Caranya seperti diatas, dan value yang akan kita isi yaitu …\xampp\htdocs\cakephp\cake\console.

CakePHP Console

3. Buka command prompt.
4. Arahkan kedalam tempat menaruh folder project, misalnya C:\xampp2\htdocs.

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
C:\xampp2\htdocs>cake bake
Welcome to CakePHP v1.3.7 Console
---------------------------------------------------------------
App : htdocs
Path: C:\xampp2\htdocs
---------------------------------------------------------------
What is the full path for this app including the app directory name?
Example:C:\xampp2\htdocs\myapp
[C:\xampp2\htdocs\myapp] > C:\xampp2\htdocs\newcake
Bake Project
Skel Directory: C:\xampp2\htdocs\cakephp\cake\console\templates\skel
Will be copied to: C:\xampp2\htdocs\newcake
---------------------------------------------------------------
Look okay? (y/n/q)
[y] >
Do you want verbose output? (y/n)
[n] >
---------------------------------------------------------------
Created: newcake in C:\xampp2\htdocs\newcake
---------------------------------------------------------------
Creating file C:\xampp2\htdocs\newcake\views\pages\home.ctp
Wrote `C:\xampp2\htdocs\newcake\views\pages\home.ctp`
Welcome page created
Random hash key created for 'Security.salt'
Random seed created for 'Security.cipherSeed'
CAKE_CORE_INCLUDE_PATH set to C:\xampp2\htdocs\cakephp in webroot/index.php
CAKE_CORE_INCLUDE_PATH set to C:\xampp2\htdocs\cakephp in webroot/test.php
Remember to check these value after moving to production server
Your database configuration was not found. Take a moment to create one.
---------------------------------------------------------------
Database Configuration:
---------------------------------------------------------------
Name:
[default] >
Driver: (db2/firebird/mssql/mysql/mysqli/odbc/oracle/postgres/sqlite/sybase)
[mysql] >
Persistent Connection? (y/n)
[n] >
Database Host:
[localhost] >
Port?
[n] >
User:
[root] >
Password:
>
The password you supplied was empty. Use an empty password? (y/n)
[n] > y
Database Name:
[cake] > dbcakephp
Table Prefix?
[n] >
Table encoding?
[n] >
---------------------------------------------------------------
The following database configuration will be created:
---------------------------------------------------------------
Name:         default
Driver:       mysql
Persistent:   false
Host:         localhost
User:         root
Pass:
Database:     dbcakephp
---------------------------------------------------------------
Look okay? (y/n)
[y] > y
Do you wish to add another database configuration?
[n] >
Creating file C:\xampp2\htdocs\newcake\config\database.php
Wrote `C:\xampp2\htdocs\newcake\config\database.php`
C:\xampp2\htdocs>
5. Karena project dibuat pada direktori htdocs yg merupakan document root web server apache, maka web bisa langsung diakses dari browser. Pastikan apache server telah berjalan, gunakan XAMPP Control Panel. Kemudian akses http://localhost/newcake

NewCake has been made

Tutorial Dasar CakePHP


CakePHP adalah sebuah framework atau kerangka kerja untuk membuat aplikasi CRUD (Create, Read, Update, Delete) berbasis bahasa pemrograman PHP yang dikembangkan oleh Michal Tatarynowicz. CakePHP juga menjadi salah satu framework pilihan yang memungkinkan seorang developer web untuk membuat sebuah aplikasi dengan karakter pengembangan RAD (Rapid Application Development), yang memungkinkan untuk digunakan dan dikembangkan menjadi aplikasi lain yang lebih kompleks. CakePHP memiliki hubungan yang cukup erat dengan Ruby on Rails, sebuah framework pemrograman Ruby.

KELEBIHAN CAKEPHP

Kelebihan CakePHP antara lain :

1. Open Source.
2. Memiliki banyak komunitas dan forum.
3. Dokumentasi yang lengkap. Untuk referensi lebih lengkap (gunakan manual dan API CakePHP), silahkan buka http://www.cakephp.org
4. Kompatibel dengan PHP versi 4 dan 5.
5. Dukungan terhadap banyak database enginge seperti :

mysql – MySQL 4 & 5
mysqli – MySQL 4 & 5 Improved Interface (PHP5 only)
sqlite – SQLite (PHP5 only)
postgres – PostgreSQL 7 and higher
mssql – Microsoft SQL Server 2000 and higher
db2 – IBM DB2, Cloudscape, and Apache Derby
oracle – Oracle 8 and higher
firebird – Firebird/Interbase
sybase – Sybase ASE
adodb-[drivername] – ADOdb interface wrapper
odbc – ODBC DBO driver
6. Menggunakan arsitektur MVC (Model-View-Controller). Model-View-Controller (MVC) adalah sebuah pendekatan arsitektur pengembangan perangkat lunak yang memisahkan model data, antarmuka pengguna, dan logika kontrol sebagai tiga komponen yang berbeda, sehingga pemodifikasian komponen tersebut menjadi lebih mudah. Hal ini juga dimaksudkan agar dapat menghindari terjadinya spagetti code. Adapun penjabarannya yaitu:

  • Model merepresentasikan struktur data yang dibangun. Umumnya kelas model berisi fungsi-fungsi yang membantu developer untuk mengelola, memasukkan, dan mengupdate informasi dalam database.
  • View adalah informasi yang disajikan untuk user, berupa tampilan atau user interface. View umumnya adalah tampilan sebuah halaman web itu sendiri, tetapi dapat juga menjadi bagian-bagian atau penggalan-penggalan halaman seperti header atau footer.
  • Controller bertugas sebagai penghubung antara Model, View, dan beberapa resource lainnya yang dibutuhkan untuk memproses HTTP request dan unuk men-generate sebuah halaman web. Controller biasanya berisi logic utama aplikasi atau proses bisnis.
7. ACL (Access Control List) yang fleksibel. CakePHP memungkinkan pengaturan user dan hak aksesnya dalam aplikasi yang kita kembangkan, dengan sarana yang lebih mudah dipahami.
8. Memiliki fitur scaffolding. Hanya dengan menambahkan pada file controller Anda code : var $scaffold ; maka CakePhp akan secara otomatis mengenerate semua yang dibutuhkan untuk membuat aplikasi CRUD (Create, Read, Update, Delete) secara lengkap.
9. Request dispatcher dengan URL yang custom, rapih dan adanya route.
10. Validasi data yang terintegrasi.
11. Support AJAX dan ORM (Object Relational Model). Library AJAX di dalam CakePHP sudah disediakan, kita tinggal memakainya aja
12. Email, Cookie, Keamanan, Session, dan component request handling.
13. Sanitasi Data.
14. Caching yang fleksibel.
15. Lokalisasi.
16. Dapat bekerja dari direktori web dimana saja, dengan sedikit atau bahkan tanpa perlu melibatkan konfigurasi Apache.
17. Memiliki fitur bake, dimana kita bisa dengan sangat-sangat mudah membangun web dengan fitur ini.

KEKURANGAN CAKEPHP

Kekurangan CakePHP antara lain :

1. Manual yang ada tidak selengkap Code Igniter.
2. Menerapkan konsep MVC secara strict sehingga banyak aturan/convention yang harus dipatuhi.
3. Tidak support EDP (Even Driven Programming).

INSTALASI CAKEPHP

Langkah – langkah dalam meng-install CakePhp :

1. Sediakan web server yang mendukung PHP. Dalam hal ini bisa menggunakan Apache sebagai web server.
2. Sediakan database server (optional). Dalam hal ini bisa menggunakan MySQL sebagai database server.
3. Sediakan php mulai versi 4. Untuk lebih praktis bisa menggunakan XAMPP atau LAMPP yang sudah membundle Apache, PHP dan MySQL menjadi satu paket.
4. Download CakePhp di http://cakephp.org/ dan pilih versi yang stable. Versi terbaru bulan Maret 2011 yaitu 1.3.7

a. Extract source CakePhp dan ganti namanya misal menjadi CakePhp.
b. Letakkan folder CakePhp pada root directory dari web server. Jika menggunakan XAMPP, letakkan didalam folder htdocs.
c. Adapun susunan dari instalasi Cake adalah sebagai berikut :

Susunan Folder CakePhp

Penjelasannya sebegai berikut : Terdapat 4 buah folder utama, yaitu app, cake, plugins dan vendors. Folder app merupakan tempat menyimpan aplikasi yang kita buat, folder cake merupakan library cakephp dan folder ini jangan diutak-atik, folder vendors merupakan tempat menyimpan library tambahan dari pihak ketiga. Didalam folder app terdapat beberapa folder yang harus lebih kita perhatikan dengan seksama, seperti :

config Menyimpan konfigurasi files seperti database, ACL, bootstrap, routes dll.
controllers Menyimpan file-file controllers.
libs
locale Menyimpan file string untuk internasionalisasi.
models Menyimpan models database.
plugins Menyimpan paket plugin.
tests
tmp Menyimpan temporary data.
vendors Tempat menyimpan library pihak ketiga.
views Menyimpan file-file yang berhubungan dengan tampilan.
webroot Menyimpan file-file gambar, CSS, javascript dll.
5. Mengubah nilai Security.salt dan Security.cipherSeed (Optional). Jika tidak dilakukan tidak apa2 sebenarnya, tetapi CakePHP menyarankannya. Secara default Cake PHP sudah memberikan default hashing code, tetapi sangat disarankan agar setiap developer tidak menggunakan default hashing code untuk alasan keamanan. Pengubahan nilai dengan cara :

a. Buka/ubah file core.php di folder CakePhpnya yang biasanya terletak di direktori /app/config/core.php.
b. Ubah pada baris Configure::write(‘Security.salt’, ‘DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi’) misalnya dengan Configure::write(‘Security.salt’, ‘DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9midadan‘);
c. Ubah pada baris Configure::write(‘Security.cipherSeed’, ‘76859309657453542496749683645’) misalnya dengan Configure::write(‘Security.cipherSeed’, ‘768593096574535424967496836452383‘);

6. Load module rewrite_module di file httpd.conf dengan cara :

a. Buka/ubah file httpd.conf dari Apache web server. Bisa ditemukan di dalam folder …/xampp/apache/conf.
b. Hapus tanda # (tanda pagar) pada baris module yang ingin kita load. Dalam hal ini adalah: LoadModule rewrite_module modules/mod_rewrite.so.
c. Restart Apache web server.

MENJALANKAN CAKEPHP

Untuk menjalankan CakePhp dengan cara :

1. Jalankan Apache Web server.
2. Buka web browser.
3. Ketikkan di addressnya dengan format http://localhost/directory_cake/, dicontoh ini dengan mengetikkan http://localhost/CakePhp.

Welcome Page tanpa load module rewrite_module

Welcome Page dengan load module rewrite_module

DATABASE CONNECTION

Untuk melakukan koneksi terhadap database di CakePhp cukup simple. Dicontoh ini menggunakan database enginge MySQL. Buatlah 1 buah database, sebagai contoh dengan nama dbcakephp dengan 1 buah table students dengan kolom ID (Char [3]), NM_SISWA (Varchar [50]) dengan kolom ID sebagai primary keynya. Pembuatan database dan table bisa melalui phpmyadmin atau database tools lainnya. Langkah-langkah koneksi dengan CakePhp sebagai berikut :

1. Jika pertama kali menggunakan CakePhp, ubah nama file database.php.default menjadi database.php. File tersebut terletak di directory /app/config/database.php.default didalam folder CakePhp.
2. Lakukan perubahan pada bagian DATABASE_CONFIG dan isikan nilai $default dan $test dengan parameter-parameter yang dibutuhkan untuk melakukan koneksi ke dalam database yang tersedia.

Driver diisi dengan database enginge yang digunakan, persistent diisi dengan value true/false, host diisi dengan lokasi dari database server, login dan password diisi dengan username dan password yang dapat digunakan untuk melakukan akses ke dalam database, database diisi dengan nama database yang kita gunakan dan prefix bisa juga kita kosongkan.

3. Dicontoh ini mengisi DATABASE_CONFIG dengan value berikut ini :

class DATABASE_CONFIG {
      var $default = array(
            'driver'       => 'mysql',
            'persistent'   => false,
            'host'         => 'localhost',
            'login'        => 'root',
            'password'     => '',
            'database'     => 'dbcakephp',
            'prefix'       => '',
      );
      var $test = array(
            'driver'       => 'mysql',
            'persistent'   => false,
            'host'          => 'localhost',
            'login'        => 'root',
            'password'     => '',
            'database'     => 'dbcakephp',
            'prefix'       => '',
      );
}
4. Jalankan CakePhp, jika berhasil koneksi ke database akan mengirimkan pesan ‘Cake is able to connect to the database.’ dan jika tidak berhasil koneksi ke database akan menampilkan pesan ‘Cake is NOT able to connect to the database.’

Berhasil koneksi ke database

Gagal koneksi ke database

Cukup jelas bukan tutorial dasar cakephp nya?? Untuk membuat projek baru di cakephp cukup simple, dengan menggunakan console/command line dengan memanfaatkan feature bake. Postingan tentang bake bisa dilihat disini!!!. Untuk naming convention di CakePhp bisa diliat di postingan ini sedangkan untuk mendapatkan dokumentasi offline-nya bisa diliat disini nih.