Featured Links

Jokam.Com

My Photos Album

Menu

Warung

Untuk prosedur pemesanan, bisa dilihat di sini Kerudung/Jilbab Bermotif (25)

List All Products


Advanced Search

Counters

Visits today: 36
Visits yesterday: 127
Visits month: 1212
Visits total: 92073
Pages today: 214
Pages this month: 4455
Pages total: 316290
Data since: 2007-10-01
Yahoo Messenger

Membuat Blog dengan Code Igniter
Monday, 10 November 2008

Diterjemahkan secara bebas dari http://codeigniter.com/tutorials/

Untuk mengikuti tutorial ini, Anda harus membaca dulu bagian awalnya di sini

Mengakses database MySQL

Kita buat dahulu database dan tabel menggunakan perintah berikut:

CREATE DATABASE ci; DROP TABLE IF EXISTS `entries`; CREATE TABLE IF NOT EXISTS `entries` ( `id` int(11) unsigned NOT NULL auto_increment, `title` varchar(128) default NULL, `body` text, PRIMARY KEY  (`id`) ) ENGINE=MyISAM;

Untuk mengatur koneksi ke database, bukalah file system/application/config/database.php dan ubah variabel-variabel yang diperlukan. Dalam hal ini, $db['default']['database'] = "ci"; dan $db['default']['dbdriver'] = "mysql";

Perlu diketahui bahwa secara default database tidak diaktifkan. Kita perlu mengaktifkannya dari file system/application/config/autoload.php. Untuk mengaktifkan database, atur variabel $autoload['libraries'] seperti berikut:

$autoload['libraries'] = array('database');

Catatan: Untuk versi CI di bawah 1.7.0 (CI 1.6.3 ke bawah), gunakan variabel $autoload['core'].

$autoload['core'] = array('database');

Refresh halaman http://localhost/ci/. Jika tidak ada error, berarti koneksi berhasil. Jika ada error, cek lagi pengaturan di file database.php dan autoload.php.

Scaffolding

CI menyediakan fasilitas untuk menambah, mengubah, dan menghapus isi dari suatu tabel pada database yang dinamakan dengan scaffolding. Perlu diingat bahwa scaffolding hanya berlaku untuk tabel yang memiliki sebuah primary key. Juga, jangan lupa untuk menonaktifkan fasilitas scaffolding ini jika Anda mem-publish website Anda, karena sangat rentan untuk masalah keamanan. Untuk mengaktifkan scaffolding, buka file system/application/config/routes.php dan isi variabel $route['scaffolding_trigger'] dengan alamat scaffolding Anda. Misalnya:

$route['scaffolding_trigger'] = "db_manage";

Selanjutnya, untuk mengaktifkan fasilitas scaffolding pada tabel entries yang baru kita buat, ubah sedikit constructor pada class Blog(), yaitu function Blog() pada file blog.php menjadi seperti berikut:

function Blog() { parent::Controller(); $this->load->scaffolding('entries'); }

Buka http://localhost/ci/index.php/blog/db_manage (tidak bisa menggunakan http://localhost/ci/db_manage) dan Anda sudah bisa mengelola dari web browser. Masukkanlah 2-3 data untuk bisa ditampilkan di web browser dengan script yang akan kita buat nantinya. Setelah memasukkan data, jangan lupa menghapus baris $this->load->scaffolding('entries'); di file blog.php untuk mematikan fasilitas scaffolding.

Mengelola Database

Selanjutnya kita akan mengambil data dari database. Ubahlah function index() yang ada di file blog.php menjadi seperti berikut:

function index() { $data['title'] = "My Blog Title"; $data['heading'] = "My Blog Heading"; $data['query'] = $this->db->get('entries'); $this->load->view(‘blog_view’, $data); }

Baris baru tersebut digunakan untuk mengambil data dari tabel bernama entries. Selanjutnya buka file blog_view.php untuk menampilkan data.

<h1><?=$heading?></h1> <?php foreach ($query->result() as $row): ?> <h3><?=$row->title?></h3> <p><?=$row->body?></p> <hr /> <?php endforeach; ?>

Kode-kode baru di atas digunakan untuk menampilkan data di browser. Silakan masuk ke http://localhost/ci/ dan lihatlah hasilnya.

Helper

Helper merupakan kumpulan function yang sudah dibuat oleh para programmer CI untuk memudahkan pekerjaan kita. Helper terdapat dalam file-file di dalam folder system/helpers (perhatikan, bukan system/application/helpers) dan di belakang nama file tersebut diberi akhiran _helper.php. Misalnya function untuk array ada di array_helper.php. Dalam tutorial ini kita akan menggunakan url_helper dan form_helper sebagai fasilitas untuk memasukkan komentar pada blog.

Aktifkan url_helper dan form_helper dengan mengubah isi constructur Blog() di file blog.php seperti berikut:

function Blog() { parent::Controller(); $this->load->helper('url'); $this->load->helper('form'); }

Selanjutnya, ubah file blog_view.php

<?php foreach ($query->result() as $row): ?> <h3><?=$row->title?></h3> <p><?=$row->body?></p> <p><?=anchor('blog/comments', 'Comments');?></p> <hr /> <?php endforeach; ?>

Function anchor('blog/comments', 'Comments'); mirip seperti <a href=’blog/comments’>Comments</a>. Alamat ini nantinya akan menuju ke http://localhost/ci/index.php/blog/comments. Perhatikan penjelasan di awal mengenai controller, maka berarti comments di sana merupakan function yang nantinya akan kita buat pada file blog.php.

Selanjutnya buka halaman http://localhost/ci/ untuk menampilkan link Comments. Saat di-klik, link ini akan menghasilkan Error 404 karena halaman yang dimaksud memang belum ada. Namun hal ini menunjukkan kalau url helper sudah berjalan.

Ubah kembali baris <p><?=anchor('blog/comments/'.$row->id, 'Comments');?></p> pada file blog_view.php menjadi seperti berikut:

<p><?=anchor('blog/comments/'.$row->id, 'Comments');?></p>

Buka halaman http://localhost/ci/, dan jika Anda klik link Comments, Anda akan melihat menuju link seperti http://localhost/ci/index.php/blog/comments/1, di mana angka 1 merupakan id dari entry blog yang sudah kita buat. Selanjutnya tambahkan function comments di file blog.php seperti berikut ini:

<?php class Blog extends Controller { function Blog() { parent::Controller(); $this->load->helper('url'); $this->load->helper('form'); } function index() { $data['title'] = "My Blog Title"; $data['heading'] = "My Blog Heading"; $data['query'] = $this->db->get('entries'); $this->load->view('blog_view', $data); } function comments() { echo "testing.."; } } ?>

Buka halaman http://localhost/ci/ dan masuklah ke salah satu link Comments yang ada. Jika Anda menjumpai teks testing… di browser, berarti script sudah berjalan dengan baik. Namun perlu diingat, bahwa controller comments di sini belum dihubungkan dengan file view, sehingga kita tidak bisa menampilkan fomat HTML yang baik. Oleh karena itu, seperti yang kita lakukan pada index controller, kita akan menghubungkan controller comments ini ke file view, yaitu comment_view.php

Ubahlah file blog.php, sehingga di dalam function comments() menjadi seperti berikut:

function comments() { $data['title'] = "My Comment Title"; $data['heading'] = "My Comment Heading"; $this->load->view('comment_view', $data); }

Buatlah file comment_view.php pada folder system/application/views dan masukkan kode berikut:

<html> <head> <title><?=$title?></title> </head> <body> <h1><?=$heading?></h1> </body> </html>

Buka halaman http://localhost/ci/ dan masuklah ke salah satu link Comments yang ada. Seharusnya Anda akan mendapatkan halaman My Comment yang baru.

Pembuatan Form Komentar

Untuk memberikan komentar, kita akan menggunakan satu tabel baru yang diberi nama comments. Query-nya adalah sebagai berikut:

DROP TABLE IF EXISTS `comments`; CREATE TABLE IF NOT EXISTS `comments` ( `id` int(11) unsigned NOT NULL auto_increment, `entry_id` int(11) unsigned default '0', `body` text, `author` varchar(100) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM;

Di sini kita akan menggunakan form helper untuk membuat suatu form, yaitu form untuk memasukkan komentar. Ketikkanlah baris-baris kode di bawah ini di file comment_view.php

<body> <h1><?=$heading?></h1> <?=form_open('blog/comment_insert');?> <?=form_hidden('entry_id', $this->uri->segment(3));?> <p><textarea name="body" rows="10"></textarea></p> <p><input type="text" name="author" /></p> <p><input type="submit" value="Submit Comment" /></p> </form> </body>

Keterangan kode tersebut adalah sebagai berikut:

  • <?=form_open('blog/comment_insert');?> berfungsi untuk awal form. Adapun parameter pertama adalah tujuan (action) form.
  • <?=form_hidden('entry_id', $this->uri->segment(3));?> berfungsi untuk menampilkan hiiden input bernama entry id dengan value adalah segment ketiga dari URI http://localhost/ci/index.php/blog/comments/1. Segment pertama adalah blog, segment kedua adalah comments, dan segment ketiga adalah angka 1.

Bukalah halaman http://localhost/ci/, masuk ke salah satu link Comments, dan klik Submit Comment. Hasilnya memang Error 404, karena memang halaman tujuan untuk memasukkan data belum ada. Namun perhatikan URL tujuan, sudah menjadi http://localhost/ci/index.php/blog/comment_insert. Ini berarti <?=form_open('blog/comment_insert');?> bekerja dengan baik. Tentu saja, untuk memastikan, Anda bisa melihat kode HTML yang dihasilkan dengan melihatnya dari View -> Source.

Memasukkan Komentar

Untuk memasukkan komentar, buatlah function comment_insert() di dalam file blog.php yang isinya sebagai berikut:

function comment_insert() { $this->db->insert('comments', $_POST); redirect('blog/comments/'.$_POST['entry_id']); }

Berikut penjelasan dari function di atas:

  • $this->db->insert('comments', $_POST); digunakan untuk memasukkan data dari form ke database. Parameter pertama merupakan nama database, sedangkan parameter kedua merupakan variabel yang digunakan untuk mengirim data. Perlu diingat bahwa key dari variabel $_POST ini haruslah sama dengan nama-nama field pada tabel.
  • redirect('blog/comments/'.$_POST['entry_id']); digunakan untuk redirect halaman ke halaman yang dimaksud.

Sekarang bukalah http://localhost/ci/index.php/blog/comments/1 untuk mulai memasukkan komentar. Masukkan komentar dan nama pengirim di sana, dan klik Submit Comment. Jika tidak ada pesan error, seharusnya script sudah berjalan dengan baik. Belum ada data yang ditampilkan karena kita memang belum menampilkan data yang dikirimkan.

Menampilkan Komentar

Untuk menampilkan komentar, ubahlah function comments() yang ada di file blog.php

function comments() { $data['title'] = "My Comment Title"; $data['heading'] = "My Comment Heading"; $this->db->where('entry_id', $this->uri->segment(3)); $data['query'] = $this->db->get('comments'); $this->load->view('comment_view', $data); }

Di antara dua baris yang baru ditambahkan tersebut, baris yang kedua mirip dengan yang ada pada function index(). Perbedaannya hanya pada nama database yang diambil, yaitu comments. Namun karena kita hanya memerlukan komentar untuk entry_id yang bernilai tertentu (tergantung nomor blog yang diberikan komentar), maka kita memerlukan baris di atasnya, yaitu $this->db->where('entry_id', $this->uri->segment(3));. Baris tersebut mem-filter SELECT dengan nilai entry_id tertentu.

Selanjutnya ubahlah file blog_view.php dengan menambah data yang ingin ditampilkan.

<h1><?=$heading?></h1> <?php if ($query->num_rows() > 0): ?> <?php foreach($query->result() as $row): ?> <p><?=$row->body?></p> <p><?=$row->author?></p> <hr /> <?php endforeach; ?> <?php endif; ?> <p><?=anchor('blog', 'Back to Blog');?></p> <?=form_open('blog/comment_insert');?>

Kode di atas sudah pernah diterangkan sebelumnya saat menampilkan daftar blog sehingga tidak akan saya terangkan lagi di sini. Bukalah halaman http://localhost/ci/index.php/blog/comments/1 dan masukkan komentar baru. Anda akan melihat data baru ditampilkan. Untuk mengisi komentar di entry blog yang lain, klik Back to Blog dan klik Comments di blog yang lain.

sheila_gank IP:125.161.171.19 | 2008-12-12 08:18:35
thanx berguna bgt bwt kita yg pemula
gungz IP:202.150.131.194 | 2009-01-21 01:44:41
Nice tutorial...
Kalau ada kesempatan, mohon diteruskan tutorial CI nya dengan pengimplementasian JQuery, Flexigrid & library lainnya.Biar tambah mantab!

ajkk...
devi IP:125.167.43.192 | 2009-02-23 04:36:40
Mohon dibantu dong...cara membuat halaman link
ogo IP:125.161.212.214 | 2009-03-22 10:31:57
thx bgd y
Arya Febiyan IP:118.96.56.127 | 2009-04-14 11:02:11
jawaban untuk devi :

1. lo load dulu helper untuk url, lo taruh script ini di controller :

$this->load->helper('url');

2. kalau tag link html biasa seperti ini :
Click Here

... tapi di codeigniter lo bisa pakai fungsi anchor()....

jadi seperti ini :



===> artinya :



Selamat Mencoba ...
Oia, di kantor saya pakai Zend, ATK, dan Djamoer Framework ^_^
Anonymous IP:118.96.56.127 | 2009-04-14 11:04:39
untuk devi maaf ya ... di situs ini tag html nya di hilangkan ...

jadi nda kelihatan deh jawaban saya ^_^

hehehe...

add saja facebook saya : masterweb37@yahoo.com

email :
arya@xituz.com

ym :
arya_febiyan@yahoo.com
yus IP:202.129.189.163 | 2009-04-29 15:19:51
iya bro, bahas penggunaan JQuery, Flexigrid dan pembuatan template di CI. satu lagi bro, kalo mo implementasi Flexigrid pake Sqlserver 2000 utk paging halaman nya g mn yach bro?
thnx...
Anonymous IP:125.167.19.186 | 2009-05-28 03:59:23
sayang belum bisa ke selain MySQL..
coba bisa ada koneksi pake adoDB atau apa kek... sayang banget CI ini...
wiwid IP:118.98.232.122 | 2009-05-28 04:36:12
CI itu bisa berbagai macam database, bukan MySQL saja. Silakan buka folder system/database/drivers. Di situ akan terlihat, CI bisa menggunakan database apa saja.

Saya sendiri sudah menggunakan CI dengan MySQL dan PostgreSQL
restu IP:202.70.61.6 | 2009-06-06 07:27:09
kenapa y waktu nampilin databasenya malah muncul:


An Error Was Encountered

You have specified an invalid database connection group.

terima kasih sebelumnya
Arya Febiyan IP:114.59.181.56 | 2009-06-17 07:39:05
Coba Lo Periksa Settingan Config Lo.
ben IP:125.160.17.23 | 2009-07-07 09:21:03
waktu saya coba koq ada error:
A PHP Error was encountered

Severity: Notice

Message: Undefined property: stdClass::$author

Filename: views/blog_view.php

Line Number: 11

knapa ya kira2?
lunarbee IP:118.136.108.197 | 2009-07-28 05:13:30
@ ben : itu yang di file blog.php
ganti baris di fungsi index()

jadi :
function index() {
$data['title'] = "My Blog Title";
$data['heading'] = "My Blog Heading";
$data['query'] = $this->db->get('comments');
$this->load->view('blog_view', $data);
}


coba deh cuma salah nama table doang kq itu....
ia kan mas...hmmm
Erika IP:125.164.123.43 | 2009-08-05 04:16:01
Saya juga eror waktu nampilin comment

A PHP Error was encountered

Severity: Notice

Message: Undefined property: CI_Loader::$url

Filename: views/comment_view.php

Line Number: 11

kenapa ya itu ?
ayay354 IP:202.93.34.182 | 2009-08-21 08:46:05
kalau settingan adodb di codeigniter gimana mas?
Arya Febiyan - YM : arya_febiy IP:118.96.53.182 | 2009-10-29 05:04:52
1. Download Library ADODB (http://sourceforge.net/project/showfiles.php?group_id=4271, Lalu Extract Di application/libraries/adodb/

2. application/config/autoload.php tambahkan loader untuk library ADODB :
$autoload['libraries'] = array(‘database’, ‘adodbloader’);

----application/config/database.php----


----system/application/init/init_adodb.php----



--cara menggunakan--

$this->load->library('adodb');
$row = $this->adodb->getrow('SELECT * FROM users WHERE user_id = 1');
echo 'hello '.$row['firstname'];
Arya Febiyan IP:114.58.86.198 | 2009-11-30 03:50:58
Assalamu'alaykum semuanya, maaf menumpang posting :

Di buka kelas private :

1. PHP Fundamental (Rp. 500.000, 1 kali pertemuan, 4 jam).

2. PHP Advance (Rp. 500.000, 1 kali pertemuan, 4 jam).

3. Shopping Cart In PHP (Rp. 1.500.000, 3 kali pertemuan, 4 jam).

4. Shopping Cart in Joomla (Rp. 1.000.000, 1 kali pertemuan 5 jam).

5. Shopping Cart in Wordpress (Rp. 1.000.000, 1 kali pertemuan 5 jam).

6. Css Styling Themes Wordpress Or Joomla (Rp. 500.000, 1 kali pertemuan 3 jam).

7. ATK Framework in cms (Rp. 1.000.000, 1 kali pertemuan, 5 jam).

8. Blogging with Codeigniter (Rp. 1.000.000, 1 kali pertemuan 5 jam).

9. Blogging / Portal / Shopping Cart with Zend Framework and Atk Framework (Rp. 2.000.000, 3 kali pertemuan 15jam).

10. Custom (nego).

Jazakumulullah.

Arya Febiyan, 083894404851/02191941514
-web programmer-
ami IP:114.58.90.25 | 2009-11-30 04:07:22
Mas,kelas Shopping Cart In PHP (Rp. 1.500.000, 3 kali pertemuan, 4 jam), bisa tidak 1jt saja ? ada discount tidak jika yang ikut lebih dari 1 orang???"
di tunggu .





mya_07mutz@yahoo.com
monahelisa IP:119.47.93.22 | 2009-12-14 03:11:38
Mas.. Mohon Petunjuk nich.. Kenapa halaman comment saya tidak jalan ya. Ketika saya tambahkan "testing"; pada fungsi comment. Padahall script sebelumnya jalan.. Mohon bantuannya ya mas. Thank`s sebelumnya
Arya Febiyan IP:114.59.237.237 | 2009-12-21 16:10:03
Bisa Saya Melihat Script nya ?
wiwid IP:125.161.132.35 | 2009-12-21 16:43:54
Maaf, saya lama tidak mengecek halaman ini.

Untuk restu, jika ada pesan kesalahan [b]An Error Was Encountered

You have specified an invalid database connection group.
[/b]

Coba baca kembali tulisan saya di atas:

[b]Untuk mengatur koneksi ke database, bukalah file system/application/config/database.php dan ubah variabel-variabel yang diperlukan. Dalam hal ini, $db['default']['database'] = "ci"; dan $db['default']['dbdriver'] = "mysql";

Perlu diketahui bahwa secara default database tidak diaktifkan. Kita perlu mengaktifkannya dari file system/application/config/autoload.php. Untuk mengaktifkan database, atur variabel $autoload['libraries'] seperti berikut:

$autoload['libraries'] = array('database');[/b]
azul IP:203.190.45.138 | 2010-04-18 06:07:49
Hai, untuk artikel yang di sini
http://rhasan.com/blog/2009/09/codeigniter-auto-complete-with-netbeans/

kok autocomplete yang saya praktekan di netbeans 6.8 ga tampil autocompletenya ya?
pas saya coba ketik:
$this->load->v
ga mau kluar autocomplete view(...)

Bisa bantu?
wiwid IP:203.128.250.36 | 2010-04-18 07:37:11
@azul

Yang ini ya?

============
Wiwid Says:
January 19th, 2010 at 3:41 pm

@rakib
I need your permission to store the modified autocomplete_script.php on my host.

@mm
Looks like rakib forgot to add ‘Model ()’ on the end of the code. Please download at http://www.wiwid.org/autocomplete.zip. Extract and copy autocomplete.php to your ‘application/controller’ directory. Run it as http://example.com/autocomplete. Copy and replace the code to old ci_autocomplete.php.

It should be done, and you can see autocomplete of your model.
============

Coba dicek dulu, apa caranya sudah benar?
1. Download http://www.wiwid.org/autocomplete.zip
2. Extract dan masukkan file tersebut ke direktori 'application/controller’
3. Jalankan controller tersebut dengan mengakses http://localhost/autocomplete.
4. Dari langkah 3, akan muncul text. Salin text ini ke file ci_autocomplete.php, dan simpan di folder 'nbproject' di root. Langkah 4 ini yang PALING penting.
5. Kalau netbeans sudah dijalankan, coba tutup dan jalankan ulang.
6. Sekarang coba pakai autocomplete.

Kadangkala, karena Netbeans terlalu berat, atau web Anda terlalu besar, Netbeans lama loadingnya. Untuk mempercepat, gunakan Ctrl+Space saat mengetikkan.

Atau, kalau masih bermasalah, coba downgrade ke Netbeans 6.5. Saya juga downgrade dari Netbeans 6.8 ke Netbeans 6.5 karena autocomplete helper tidak berfungsi.
Write comment
Name:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
Security Image

Powered by JoomlaCommentCopyright (C) 2006 Frantisek Hliva. All rights reserved.Homepage: http://cavo.co.nr/

 
Next >
© 2010 Wiwid Lukiyanto Website