Menghubungkan CodeIgniter dengan database IBM DB2 Express-C
Bermula dari pelajaran Current Populer IT 2 di Binus yang diajarkan oleh ko Michael Yoseph Ricky, S.Kom., MM (D3553) Dimana tugas akhir kami sebelum UAS adalah membuat projek website yang berisikan tutorial DB2 dalam Bahasa Indonesia. Websitenya boleh blog misal wordpress atau blogspot, ataupun boleh buat sendiri tapi dengan koneksi database DB2.
Terlintas pengen buat web blog sederhana dengan menggunakan database DB2. Projek ini terdiri dari 5 orang dalam 1 tim. Semua terdiri dari aku, candra, hale, tanto, adnan. Kami berencana membuat menggunakan framework codeigniter yang baru 2.1.0. Rencana awal aku yang merancang dasar dari kodingannya. Candra katanya ingin bagian programmingnya. Jadinya aku hanya membuat desain dari layar putih menjadi menarik hehe… Disini juga aku berusahan mencari cara koneksi dengan DB2 nya. Hale bertugas membuat database nya menggunakan DB2. Tanto dan Adnan bertugas membuat kontennya.
Konsep blog kami dengan detail setiap pengunjung bisa melihat list pertemuan tentang tutorial DB2. Misal pertemuan 1, pertemuan 2, dst. Setiap pertemuan tentunya mempunyai deskripsi tentang apa dan di dalamnya terdapat kumpulan materi dari setiap pertemuan. Materi tersebut bisa dibaca langsung atau pun di download menggunakan tombol “Unduh Materi”. Untuk download, filenya memang ada misal .doc
Kurang lebih 2 hari aku merancang desainnya untuk blog sederhana, kira-kira begini tampilannya …
Halaman tentang situs
Halaman list pertemuan
Jika list pertemuan diklik terdapat materi pembelajaran
Detail dari kontennya, terdapat unduh materi
Sangat sederhana tapi saya berharap elegan hehe. Meski tidak menggunakan template, cukup rapi juga ternyata haha . Langsung saja kita buka DB2 nya. DB2 yang kami pakai adalah versi 9.7.400.501. Hanya terdapat 2 tabel yang menyusun struktur website ini
Setelah tabel selesai dibuat, saya mendownload codeigniter dari websitenya. Pada saat itu yang paling baru adalah versi 2.1.0. Untuk driver yang diperlukan menggunakan DB2 Cataloged Connections – Updated by David Bates 05/19/2009. Website untuk dokumentasi dari penggunaan driver terdapat di http://codeigniter.com/wiki/DB2_Database_Driver/revision/11023 .
Jadi karena saya menggunakan xampp versi 1.7.3, maka langsung saja saya edit configurasi drivernya di [project_anda]\application\config\database.php
1
2
3
4
5
|
$db [ 'default' ][ 'username' ] = "username" ; $db [ 'default' ][ 'password' ] = "password" ; $db [ 'default' ][ 'database' ] = "DBNAME" ; $db [ 'default' ][ 'dbdriver' ] = "db2c" ; $db [ 'default' ][ 'options' ] = array ( 'i5_lib' => 'TSTDTA' ); |
Setelah mendownload file db2c.zip tadi, pindahkan seluruh isi dari folder db2c nya ke system\database\drivers\ jadi lokasi sekarang adalah system\database\drivers\db2c\[isi dari file zipnya]
Kita perlu extension db2nya untuk php. Untuk extension yang dijalankan oleh xampp, saya lihat di http://stackoverflow.com/questions/2001210/connecting-to-db2-through-php . Dari jawaban Pascal MARTIN, dia menjawab “There is a recent version of some extensions .dll available from http://downloads.php.net/pierre/ ” langsung saja buka website pierre itu…
Saya download langsung versi php_ibm_db2-1.8.2-5.3-nts-vc6-x86.zip (2009-12-01 02:14 -0800)
MD5 (php_ibm_db2-1.8.2-5.3-nts-vc6-x86.zip) = 0d3438866a0e17de9b5a08e9a41f7c19
Setelah dapat, saya kopi kan ke \xampp\php\ext\ jadi nanti menjadi \xampp\php\ext\php_ibm_db2.dll . Untuk menambahkan extensi tersebut buka file php.ini di xampp\php. Tambahkan
1
|
extension=php_ibm_db2.dll |
dibaris yang ada [PECL]. Terserah di bagian mana tapi jgn di kasi titik dua.
Restart apache kamu…. maka langsung terkoneksi dengan DB2 nya . Sisanya lakukan pengkodingan dari codeigniter seperti biasa menggunakan modelnya. Ohya beberapa active record dari codeigniter tidak support untuk db2 misalnya
1
|
$this ->db->order_by(...); |
Kebanyakan pakai langsung
1
|
$this ->db->query(...); |
Oh ya yg db->query itu hanya berlaku untuk SELECT statement, sedangkan untuk insertnya kami memakai db2_exec, berikut contoh model
1
2
3
4
5
6
|
function add_materi( $id , $judul , $desc , $tanggal , $waktu , $materi , $pertemuan_id ) { $conn = db2_connect( 'tuts_ori' , '' , '' ); db2_exec( $conn , "INSERT INTO MATERI VALUES( '" . $id . "','" . $judul . "', '" . $desc . "','" . $tanggal . "','" . $waktu . "','" . $materi . "','" . $pertemuan_id . "')" ); } |
Yak seperti itulah kodingan kami yang sangat sederhana. Untuk timeline pembuatan projek ini kira-kira begini :
- Design web : aku (jefri) kurang lebih 20 jam kerja (sekitar aktual 2 hari pada jam kerja). Disini aku juga mempersiapkan fungsi dasar, pembagian model view controller agar dapat dilanjutkan oleh candra
- Koding : candra, semalam katanya . Start mulai dari jam 9 malam (tepat malam sebelum pengumpulan projek) wkwk. Sempat tidur katanya jam 3 tapi bangun lagi jam 5 lanjut koding. Jadi jam 7.20 kami sudah masuk kuliah, pada saat mau berangkat kan demonya pake laptop aku tuh… ternyata DB nya gak bisa di export begitu aja, beda Schema (ya sejenis beda user di komp). Jadinya kami kuliah jam 8 wkwk gara2 baiki eror dan pindahin tabel manual. Total time untuk koding kira-kira 7-8 jam.
- Database : hale, bbrp jam doank sepertinya
- Konten : tanto dan adnan sent by email
Gud luck buat teman-teman yang akan mencobanya… Thanks to ko Michael Yoseph, jadi cukup mengerti DB2 dengan adanya projek ini . Jadi belajar sedikit untuk sertifikasi IBM DB2 satu kelas yang akan diadakan tanggal 26 januari 2012 ini.
Penulis : Jefriyanto Guang
Tutorial ini re-published dari http://blog.jflinq.com/2012/01/18/menghubungkan-codeigniter-dengan-database-ibm-db2-express-c/
Terima kasih